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 = 174;
7pub const BN_MINIMUM_CORE_ABI_VERSION: u32 = 174;
8pub const MAX_RELOCATION_SIZE: u32 = 8;
9#[repr(u8)]
10#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11pub enum BNPluginLoadPhase {
12 NativePluginLoadPhase = 0,
13 ScriptingProviderLoadPhase = 1,
14 ScriptPluginLoadPhase = 2,
15}
16#[repr(C)]
17#[derive(Debug, Copy, Clone)]
18pub struct BNDataBuffer {
19 _unused: [u8; 0],
20}
21#[repr(C)]
22#[derive(Debug, Copy, Clone)]
23pub struct BNBinaryView {
24 _unused: [u8; 0],
25}
26#[repr(C)]
27#[derive(Debug, Copy, Clone)]
28pub struct BNBinaryViewType {
29 _unused: [u8; 0],
30}
31#[repr(C)]
32#[derive(Debug, Copy, Clone)]
33pub struct BNBinaryReader {
34 _unused: [u8; 0],
35}
36#[repr(C)]
37#[derive(Debug, Copy, Clone)]
38pub struct BNBinaryWriter {
39 _unused: [u8; 0],
40}
41#[repr(C)]
42#[derive(Debug, Copy, Clone)]
43pub struct BNKeyValueStore {
44 _unused: [u8; 0],
45}
46#[repr(C)]
47#[derive(Debug, Copy, Clone)]
48pub struct BNSnapshot {
49 _unused: [u8; 0],
50}
51#[repr(C)]
52#[derive(Debug, Copy, Clone)]
53pub struct BNDatabase {
54 _unused: [u8; 0],
55}
56#[repr(C)]
57#[derive(Debug, Copy, Clone)]
58pub struct BNFileMetadata {
59 _unused: [u8; 0],
60}
61#[repr(C)]
62#[derive(Debug, Copy, Clone)]
63pub struct BNTransform {
64 _unused: [u8; 0],
65}
66#[repr(C)]
67#[derive(Debug, Copy, Clone)]
68pub struct BNTransformContext {
69 _unused: [u8; 0],
70}
71#[repr(C)]
72#[derive(Debug, Copy, Clone)]
73pub struct BNTransformSession {
74 _unused: [u8; 0],
75}
76#[repr(C)]
77#[derive(Debug, Copy, Clone)]
78pub struct BNArchitecture {
79 _unused: [u8; 0],
80}
81#[repr(C)]
82#[derive(Debug, Copy, Clone)]
83pub struct BNFunction {
84 _unused: [u8; 0],
85}
86#[repr(C)]
87#[derive(Debug, Copy, Clone)]
88pub struct BNBasicBlock {
89 _unused: [u8; 0],
90}
91#[repr(C)]
92#[derive(Debug, Copy, Clone)]
93pub struct BNDownloadProvider {
94 _unused: [u8; 0],
95}
96#[repr(C)]
97#[derive(Debug, Copy, Clone)]
98pub struct BNDownloadInstance {
99 _unused: [u8; 0],
100}
101#[repr(C)]
102#[derive(Debug, Copy, Clone)]
103pub struct BNWebsocketProvider {
104 _unused: [u8; 0],
105}
106#[repr(C)]
107#[derive(Debug, Copy, Clone)]
108pub struct BNWebsocketClient {
109 _unused: [u8; 0],
110}
111#[repr(C)]
112#[derive(Debug, Copy, Clone)]
113pub struct BNTypeParser {
114 _unused: [u8; 0],
115}
116#[repr(C)]
117#[derive(Debug, Copy, Clone)]
118pub struct BNTypePrinter {
119 _unused: [u8; 0],
120}
121#[repr(C)]
122#[derive(Debug, Copy, Clone)]
123pub struct BNFlowGraph {
124 _unused: [u8; 0],
125}
126#[repr(C)]
127#[derive(Debug, Copy, Clone)]
128pub struct BNFlowGraphNode {
129 _unused: [u8; 0],
130}
131#[repr(C)]
132#[derive(Debug, Copy, Clone)]
133pub struct BNFlowGraphLayout {
134 _unused: [u8; 0],
135}
136#[repr(C)]
137#[derive(Debug, Copy, Clone)]
138pub struct BNFlowGraphLayoutRequest {
139 _unused: [u8; 0],
140}
141#[repr(C)]
142#[derive(Debug, Copy, Clone)]
143pub struct BNSymbol {
144 _unused: [u8; 0],
145}
146#[repr(C)]
147#[derive(Debug, Copy, Clone)]
148pub struct BNTemporaryFile {
149 _unused: [u8; 0],
150}
151#[repr(C)]
152#[derive(Debug, Copy, Clone)]
153pub struct BNLowLevelILFunction {
154 _unused: [u8; 0],
155}
156#[repr(C)]
157#[derive(Debug, Copy, Clone)]
158pub struct BNMediumLevelILFunction {
159 _unused: [u8; 0],
160}
161#[repr(C)]
162#[derive(Debug, Copy, Clone)]
163pub struct BNHighLevelILFunction {
164 _unused: [u8; 0],
165}
166#[repr(C)]
167#[derive(Debug, Copy, Clone)]
168pub struct BNLanguageRepresentationFunction {
169 _unused: [u8; 0],
170}
171#[repr(C)]
172#[derive(Debug, Copy, Clone)]
173pub struct BNLanguageRepresentationFunctionType {
174 _unused: [u8; 0],
175}
176#[repr(C)]
177#[derive(Debug, Copy, Clone)]
178pub struct BNHighLevelILTokenEmitter {
179 _unused: [u8; 0],
180}
181#[repr(C)]
182#[derive(Debug, Copy, Clone)]
183pub struct BNType {
184 _unused: [u8; 0],
185}
186#[repr(C)]
187#[derive(Debug, Copy, Clone)]
188pub struct BNTypeBuilder {
189 _unused: [u8; 0],
190}
191#[repr(C)]
192#[derive(Debug, Copy, Clone)]
193pub struct BNTypeLibrary {
194 _unused: [u8; 0],
195}
196#[repr(C)]
197#[derive(Debug, Copy, Clone)]
198pub struct BNFieldResolutionInfo {
199 _unused: [u8; 0],
200}
201#[repr(C)]
202#[derive(Debug, Copy, Clone)]
203pub struct BNStructure {
204 _unused: [u8; 0],
205}
206#[repr(C)]
207#[derive(Debug, Copy, Clone)]
208pub struct BNStructureBuilder {
209 _unused: [u8; 0],
210}
211#[repr(C)]
212#[derive(Debug, Copy, Clone)]
213pub struct BNTagType {
214 _unused: [u8; 0],
215}
216#[repr(C)]
217#[derive(Debug, Copy, Clone)]
218pub struct BNTag {
219 _unused: [u8; 0],
220}
221#[repr(C)]
222#[derive(Debug, Copy, Clone)]
223pub struct BNUser {
224 _unused: [u8; 0],
225}
226#[repr(C)]
227#[derive(Debug, Copy, Clone)]
228pub struct BNNamedTypeReference {
229 _unused: [u8; 0],
230}
231#[repr(C)]
232#[derive(Debug, Copy, Clone)]
233pub struct BNNamedTypeReferenceBuilder {
234 _unused: [u8; 0],
235}
236#[repr(C)]
237#[derive(Debug, Copy, Clone)]
238pub struct BNEnumeration {
239 _unused: [u8; 0],
240}
241#[repr(C)]
242#[derive(Debug, Copy, Clone)]
243pub struct BNEnumerationBuilder {
244 _unused: [u8; 0],
245}
246#[repr(C)]
247#[derive(Debug, Copy, Clone)]
248pub struct BNCallingConvention {
249 _unused: [u8; 0],
250}
251#[repr(C)]
252#[derive(Debug, Copy, Clone)]
253pub struct BNPlatform {
254 _unused: [u8; 0],
255}
256#[repr(C)]
257#[derive(Debug, Copy, Clone)]
258pub struct BNActivity {
259 _unused: [u8; 0],
260}
261#[repr(C)]
262#[derive(Debug, Copy, Clone)]
263pub struct BNAnalysisContext {
264 _unused: [u8; 0],
265}
266#[repr(C)]
267#[derive(Debug, Copy, Clone)]
268pub struct BNWorkflow {
269 _unused: [u8; 0],
270}
271#[repr(C)]
272#[derive(Debug, Copy, Clone)]
273pub struct BNAnalysisCompletionEvent {
274 _unused: [u8; 0],
275}
276#[repr(C)]
277#[derive(Debug, Copy, Clone)]
278pub struct BNDisassemblySettings {
279 _unused: [u8; 0],
280}
281#[repr(C)]
282#[derive(Debug, Copy, Clone)]
283pub struct BNSaveSettings {
284 _unused: [u8; 0],
285}
286#[repr(C)]
287#[derive(Debug, Copy, Clone)]
288pub struct BNScriptingProvider {
289 _unused: [u8; 0],
290}
291#[repr(C)]
292#[derive(Debug, Copy, Clone)]
293pub struct BNScriptingInstance {
294 _unused: [u8; 0],
295}
296#[repr(C)]
297#[derive(Debug, Copy, Clone)]
298pub struct BNMainThreadAction {
299 _unused: [u8; 0],
300}
301#[repr(C)]
302#[derive(Debug, Copy, Clone)]
303pub struct BNBackgroundTask {
304 _unused: [u8; 0],
305}
306#[repr(C)]
307#[derive(Debug, Copy, Clone)]
308pub struct BNRepository {
309 _unused: [u8; 0],
310}
311#[repr(C)]
312#[derive(Debug, Copy, Clone)]
313pub struct BNPlugin {
314 _unused: [u8; 0],
315}
316#[repr(C)]
317#[derive(Debug, Copy, Clone)]
318pub struct BNComponent {
319 _unused: [u8; 0],
320}
321#[repr(C)]
322#[derive(Debug, Copy, Clone)]
323pub struct BNSettings {
324 _unused: [u8; 0],
325}
326#[repr(C)]
327#[derive(Debug, Copy, Clone)]
328pub struct BNMetadata {
329 _unused: [u8; 0],
330}
331#[repr(C)]
332#[derive(Debug, Copy, Clone)]
333pub struct BNReportCollection {
334 _unused: [u8; 0],
335}
336#[repr(C)]
337#[derive(Debug, Copy, Clone)]
338pub struct BNRelocation {
339 _unused: [u8; 0],
340}
341#[repr(C)]
342#[derive(Debug, Copy, Clone)]
343pub struct BNSegment {
344 _unused: [u8; 0],
345}
346#[repr(C)]
347#[derive(Debug, Copy, Clone)]
348pub struct BNSection {
349 _unused: [u8; 0],
350}
351#[repr(C)]
352#[derive(Debug, Copy, Clone)]
353pub struct BNRelocationHandler {
354 _unused: [u8; 0],
355}
356#[repr(C)]
357#[derive(Debug, Copy, Clone)]
358pub struct BNDataRenderer {
359 _unused: [u8; 0],
360}
361#[repr(C)]
362#[derive(Debug, Copy, Clone)]
363pub struct BNDataRendererContainer {
364 _unused: [u8; 0],
365}
366#[repr(C)]
367#[derive(Debug, Copy, Clone)]
368pub struct BNDisassemblyTextRenderer {
369 _unused: [u8; 0],
370}
371#[repr(C)]
372#[derive(Debug, Copy, Clone)]
373pub struct BNLinearViewObject {
374 _unused: [u8; 0],
375}
376#[repr(C)]
377#[derive(Debug, Copy, Clone)]
378pub struct BNLinearViewCursor {
379 _unused: [u8; 0],
380}
381#[repr(C)]
382#[derive(Debug, Copy, Clone)]
383pub struct BNDebugInfo {
384 _unused: [u8; 0],
385}
386#[repr(C)]
387#[derive(Debug, Copy, Clone)]
388pub struct BNDebugInfoParser {
389 _unused: [u8; 0],
390}
391#[repr(C)]
392#[derive(Debug, Copy, Clone)]
393pub struct BNSecretsProvider {
394 _unused: [u8; 0],
395}
396#[repr(C)]
397#[derive(Debug, Copy, Clone)]
398pub struct BNLogger {
399 _unused: [u8; 0],
400}
401#[repr(C)]
402#[derive(Debug, Copy, Clone)]
403pub struct BNSymbolQueue {
404 _unused: [u8; 0],
405}
406#[repr(C)]
407#[derive(Debug, Copy, Clone)]
408pub struct BNTypeArchive {
409 _unused: [u8; 0],
410}
411#[repr(C)]
412#[derive(Debug, Copy, Clone)]
413pub struct BNTypeContainer {
414 _unused: [u8; 0],
415}
416#[repr(C)]
417#[derive(Debug, Copy, Clone)]
418pub struct BNProject {
419 _unused: [u8; 0],
420}
421#[repr(C)]
422#[derive(Debug, Copy, Clone)]
423pub struct BNProjectFile {
424 _unused: [u8; 0],
425}
426#[repr(C)]
427#[derive(Debug, Copy, Clone)]
428pub struct BNExternalLibrary {
429 _unused: [u8; 0],
430}
431#[repr(C)]
432#[derive(Debug, Copy, Clone)]
433pub struct BNExternalLocation {
434 _unused: [u8; 0],
435}
436#[repr(C)]
437#[derive(Debug, Copy, Clone)]
438pub struct BNProjectFolder {
439 _unused: [u8; 0],
440}
441#[repr(C)]
442#[derive(Debug, Copy, Clone)]
443pub struct BNBaseAddressDetection {
444 _unused: [u8; 0],
445}
446#[repr(C)]
447#[derive(Debug, Copy, Clone)]
448pub struct BNCollaborationChangeset {
449 _unused: [u8; 0],
450}
451#[repr(C)]
452#[derive(Debug, Copy, Clone)]
453pub struct BNRemoteFile {
454 _unused: [u8; 0],
455}
456#[repr(C)]
457#[derive(Debug, Copy, Clone)]
458pub struct BNRemoteFolder {
459 _unused: [u8; 0],
460}
461#[repr(C)]
462#[derive(Debug, Copy, Clone)]
463pub struct BNCollaborationGroup {
464 _unused: [u8; 0],
465}
466#[repr(C)]
467#[derive(Debug, Copy, Clone)]
468pub struct BNCollaborationPermission {
469 _unused: [u8; 0],
470}
471#[repr(C)]
472#[derive(Debug, Copy, Clone)]
473pub struct BNRemoteProject {
474 _unused: [u8; 0],
475}
476#[repr(C)]
477#[derive(Debug, Copy, Clone)]
478pub struct BNRemote {
479 _unused: [u8; 0],
480}
481#[repr(C)]
482#[derive(Debug, Copy, Clone)]
483pub struct BNCollaborationSnapshot {
484 _unused: [u8; 0],
485}
486#[repr(C)]
487#[derive(Debug, Copy, Clone)]
488pub struct BNCollaborationUndoEntry {
489 _unused: [u8; 0],
490}
491#[repr(C)]
492#[derive(Debug, Copy, Clone)]
493pub struct BNCollaborationUser {
494 _unused: [u8; 0],
495}
496#[repr(C)]
497#[derive(Debug, Copy, Clone)]
498pub struct BNAnalysisMergeConflict {
499 _unused: [u8; 0],
500}
501#[repr(C)]
502#[derive(Debug, Copy, Clone)]
503pub struct BNAnalysisMergeConflictSplitter {
504 _unused: [u8; 0],
505}
506#[repr(C)]
507#[derive(Debug, Copy, Clone)]
508pub struct BNTypeArchiveMergeConflict {
509 _unused: [u8; 0],
510}
511#[repr(C)]
512#[derive(Debug, Copy, Clone)]
513pub struct BNCollaborationLazyT {
514 _unused: [u8; 0],
515}
516#[repr(C)]
517#[derive(Debug, Copy, Clone)]
518pub struct BNUndoAction {
519 _unused: [u8; 0],
520}
521#[repr(C)]
522#[derive(Debug, Copy, Clone)]
523pub struct BNUndoEntry {
524 _unused: [u8; 0],
525}
526#[repr(C)]
527#[derive(Debug, Copy, Clone)]
528pub struct BNDemangler {
529 _unused: [u8; 0],
530}
531#[repr(C)]
532#[derive(Debug, Copy, Clone)]
533pub struct BNFirmwareNinja {
534 _unused: [u8; 0],
535}
536#[repr(C)]
537#[derive(Debug, Copy, Clone)]
538pub struct BNFirmwareNinjaReferenceNode {
539 _unused: [u8; 0],
540}
541#[repr(C)]
542#[derive(Debug, Copy, Clone)]
543pub struct BNFirmwareNinjaRelationship {
544 _unused: [u8; 0],
545}
546#[repr(C)]
547#[derive(Debug, Copy, Clone)]
548pub struct BNLineFormatter {
549 _unused: [u8; 0],
550}
551#[repr(C)]
552#[derive(Debug, Copy, Clone)]
553pub struct BNRenderLayer {
554 _unused: [u8; 0],
555}
556#[repr(C)]
557#[derive(Debug, Copy, Clone)]
558pub struct BNStringRef {
559 _unused: [u8; 0],
560}
561#[repr(C)]
562#[derive(Debug, Copy, Clone)]
563pub struct BNConstantRenderer {
564 _unused: [u8; 0],
565}
566#[repr(C)]
567#[derive(Debug, Copy, Clone)]
568pub struct BNStringRecognizer {
569 _unused: [u8; 0],
570}
571#[repr(C)]
572#[derive(Debug, Copy, Clone)]
573pub struct BNCustomStringType {
574 _unused: [u8; 0],
575}
576#[repr(C)]
577#[derive(Debug, Copy, Clone)]
578pub struct BNVersionInfo {
579 pub major: u32,
580 pub minor: u32,
581 pub build: u32,
582 pub channel: *mut ::std::os::raw::c_char,
583}
584#[allow(clippy::unnecessary_operation, clippy::identity_op)]
585const _: () = {
586 ["Size of BNVersionInfo"][::std::mem::size_of::<BNVersionInfo>() - 24usize];
587 ["Alignment of BNVersionInfo"][::std::mem::align_of::<BNVersionInfo>() - 8usize];
588 ["Offset of field: BNVersionInfo::major"]
589 [::std::mem::offset_of!(BNVersionInfo, major) - 0usize];
590 ["Offset of field: BNVersionInfo::minor"]
591 [::std::mem::offset_of!(BNVersionInfo, minor) - 4usize];
592 ["Offset of field: BNVersionInfo::build"]
593 [::std::mem::offset_of!(BNVersionInfo, build) - 8usize];
594 ["Offset of field: BNVersionInfo::channel"]
595 [::std::mem::offset_of!(BNVersionInfo, channel) - 16usize];
596};
597impl Default for BNVersionInfo {
598 fn default() -> Self {
599 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
600 unsafe {
601 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
602 s.assume_init()
603 }
604 }
605}
606#[repr(C)]
607#[derive(Debug, Copy, Clone)]
608pub struct BNPluginVersionPlatform {
609 pub name: *mut ::std::os::raw::c_char,
610 pub downloadUrl: *mut ::std::os::raw::c_char,
611 pub untrackedDownloadUrl: *mut ::std::os::raw::c_char,
612}
613#[allow(clippy::unnecessary_operation, clippy::identity_op)]
614const _: () = {
615 ["Size of BNPluginVersionPlatform"][::std::mem::size_of::<BNPluginVersionPlatform>() - 24usize];
616 ["Alignment of BNPluginVersionPlatform"]
617 [::std::mem::align_of::<BNPluginVersionPlatform>() - 8usize];
618 ["Offset of field: BNPluginVersionPlatform::name"]
619 [::std::mem::offset_of!(BNPluginVersionPlatform, name) - 0usize];
620 ["Offset of field: BNPluginVersionPlatform::downloadUrl"]
621 [::std::mem::offset_of!(BNPluginVersionPlatform, downloadUrl) - 8usize];
622 ["Offset of field: BNPluginVersionPlatform::untrackedDownloadUrl"]
623 [::std::mem::offset_of!(BNPluginVersionPlatform, untrackedDownloadUrl) - 16usize];
624};
625impl Default for BNPluginVersionPlatform {
626 fn default() -> Self {
627 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
628 unsafe {
629 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
630 s.assume_init()
631 }
632 }
633}
634#[repr(C)]
635#[derive(Debug, Copy, Clone)]
636pub struct BNPluginVersion {
637 pub id: *mut ::std::os::raw::c_char,
638 pub versionString: *mut ::std::os::raw::c_char,
639 pub longDescription: *mut ::std::os::raw::c_char,
640 pub changelog: *mut ::std::os::raw::c_char,
641 pub minimumClientVersion: u64,
642 pub platforms: *mut BNPluginVersionPlatform,
643 pub platformCount: usize,
644 pub created: *mut ::std::os::raw::c_char,
645}
646#[allow(clippy::unnecessary_operation, clippy::identity_op)]
647const _: () = {
648 ["Size of BNPluginVersion"][::std::mem::size_of::<BNPluginVersion>() - 64usize];
649 ["Alignment of BNPluginVersion"][::std::mem::align_of::<BNPluginVersion>() - 8usize];
650 ["Offset of field: BNPluginVersion::id"][::std::mem::offset_of!(BNPluginVersion, id) - 0usize];
651 ["Offset of field: BNPluginVersion::versionString"]
652 [::std::mem::offset_of!(BNPluginVersion, versionString) - 8usize];
653 ["Offset of field: BNPluginVersion::longDescription"]
654 [::std::mem::offset_of!(BNPluginVersion, longDescription) - 16usize];
655 ["Offset of field: BNPluginVersion::changelog"]
656 [::std::mem::offset_of!(BNPluginVersion, changelog) - 24usize];
657 ["Offset of field: BNPluginVersion::minimumClientVersion"]
658 [::std::mem::offset_of!(BNPluginVersion, minimumClientVersion) - 32usize];
659 ["Offset of field: BNPluginVersion::platforms"]
660 [::std::mem::offset_of!(BNPluginVersion, platforms) - 40usize];
661 ["Offset of field: BNPluginVersion::platformCount"]
662 [::std::mem::offset_of!(BNPluginVersion, platformCount) - 48usize];
663 ["Offset of field: BNPluginVersion::created"]
664 [::std::mem::offset_of!(BNPluginVersion, created) - 56usize];
665};
666impl Default for BNPluginVersion {
667 fn default() -> Self {
668 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
669 unsafe {
670 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
671 s.assume_init()
672 }
673 }
674}
675#[repr(C)]
676#[derive(Debug, Copy, Clone)]
677pub struct BNRemoteFileSearchMatch {
678 pub projectId: *mut ::std::os::raw::c_char,
679 pub projectName: *mut ::std::os::raw::c_char,
680 pub fileId: *mut ::std::os::raw::c_char,
681 pub fileName: *mut ::std::os::raw::c_char,
682}
683#[allow(clippy::unnecessary_operation, clippy::identity_op)]
684const _: () = {
685 ["Size of BNRemoteFileSearchMatch"][::std::mem::size_of::<BNRemoteFileSearchMatch>() - 32usize];
686 ["Alignment of BNRemoteFileSearchMatch"]
687 [::std::mem::align_of::<BNRemoteFileSearchMatch>() - 8usize];
688 ["Offset of field: BNRemoteFileSearchMatch::projectId"]
689 [::std::mem::offset_of!(BNRemoteFileSearchMatch, projectId) - 0usize];
690 ["Offset of field: BNRemoteFileSearchMatch::projectName"]
691 [::std::mem::offset_of!(BNRemoteFileSearchMatch, projectName) - 8usize];
692 ["Offset of field: BNRemoteFileSearchMatch::fileId"]
693 [::std::mem::offset_of!(BNRemoteFileSearchMatch, fileId) - 16usize];
694 ["Offset of field: BNRemoteFileSearchMatch::fileName"]
695 [::std::mem::offset_of!(BNRemoteFileSearchMatch, fileName) - 24usize];
696};
697impl Default for BNRemoteFileSearchMatch {
698 fn default() -> Self {
699 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
700 unsafe {
701 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
702 s.assume_init()
703 }
704 }
705}
706pub type BNProgressFunction = ::std::option::Option<
707 unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void, arg2: usize, arg3: usize) -> bool,
708>;
709#[repr(u8)]
710#[doc = "! Console log levels"]
711#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
712pub enum BNLogLevel {
713 DebugLog = 0,
714 #[doc = "! Debug logging level, most verbose logging level"]
715 InfoLog = 1,
716 #[doc = "! Information logging level, default logging level"]
717 WarningLog = 2,
718 #[doc = "! Warning logging level, messages show with warning icon in the UI"]
719 ErrorLog = 3,
720 #[doc = "! Error logging level, messages show with error icon in the UI"]
721 AlertLog = 4,
722}
723#[repr(u8)]
724#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
725pub enum BNEndianness {
726 LittleEndian = 0,
727 BigEndian = 1,
728}
729#[repr(u8)]
730#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
731pub enum BNModificationStatus {
732 Original = 0,
733 Changed = 1,
734 Inserted = 2,
735}
736#[repr(u16)]
737#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
738pub enum BNTransformType {
739 #[doc = " Two-way transform of data, binary input/output"]
740 BinaryCodecTransform = 0,
741 #[doc = " Two-way transform of data, encoder output is text"]
742 TextCodecTransform = 1,
743 #[doc = " Two-way transform of data, encoder output is Unicode string (as UTF8)"]
744 UnicodeCodecTransform = 2,
745 #[doc = " One-way decode only"]
746 DecodeTransform = 3,
747 #[doc = " One-way encode only, output is binary"]
748 BinaryEncodeTransform = 4,
749 #[doc = " One-way encode only, output is text"]
750 TextEncodeTransform = 5,
751 #[doc = " Two-way encryption"]
752 EncryptTransform = 6,
753 #[doc = " Transform that can be undone by performing twice"]
754 InvertingTransform = 7,
755 #[doc = " Hash function"]
756 HashTransform = 8,
757}
758#[repr(u8)]
759#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
760pub enum BNTransformSessionMode {
761 #[doc = " Open the root file as-is (no unwrapping)"]
762 TransformSessionModeDisabled = 0,
763 #[doc = " Discover all paths (build the full context tree)"]
764 TransformSessionModeFull = 1,
765 #[doc = " Interactively request selection at each level of the container hierarchy"]
766 TransformSessionModeInteractive = 2,
767}
768#[repr(u8)]
769#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
770pub enum BNTransformResult {
771 TransformSuccess = 0,
772 TransformNotAttempted = 1,
773 TransformFailure = 2,
774 TransformRequiresPassword = 3,
775}
776#[repr(u8)]
777#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
778pub enum BNBranchType {
779 UnconditionalBranch = 0,
780 FalseBranch = 1,
781 TrueBranch = 2,
782 CallDestination = 3,
783 FunctionReturn = 4,
784 SystemCall = 5,
785 IndirectBranch = 6,
786 ExceptionBranch = 7,
787 UnresolvedBranch = 127,
788 UserDefinedBranch = 128,
789}
790#[repr(u8)]
791#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
792pub enum BNInstructionTextTokenType {
793 TextToken = 0,
794 InstructionToken = 1,
795 OperandSeparatorToken = 2,
796 RegisterToken = 3,
797 IntegerToken = 4,
798 PossibleAddressToken = 5,
799 BeginMemoryOperandToken = 6,
800 EndMemoryOperandToken = 7,
801 FloatingPointToken = 8,
802 AnnotationToken = 9,
803 CodeRelativeAddressToken = 10,
804 ArgumentNameToken = 11,
805 HexDumpByteValueToken = 12,
806 HexDumpSkippedByteToken = 13,
807 HexDumpInvalidByteToken = 14,
808 HexDumpTextToken = 15,
809 OpcodeToken = 16,
810 StringToken = 17,
811 CharacterConstantToken = 18,
812 KeywordToken = 19,
813 TypeNameToken = 20,
814 FieldNameToken = 21,
815 NameSpaceToken = 22,
816 NameSpaceSeparatorToken = 23,
817 TagToken = 24,
818 StructOffsetToken = 25,
819 StructOffsetByteValueToken = 26,
820 StructureHexDumpTextToken = 27,
821 GotoLabelToken = 28,
822 CommentToken = 29,
823 PossibleValueToken = 30,
824 PossibleValueTypeToken = 31,
825 ArrayIndexToken = 32,
826 IndentationToken = 33,
827 UnknownMemoryToken = 34,
828 EnumerationMemberToken = 35,
829 OperationToken = 36,
830 BaseStructureNameToken = 37,
831 BaseStructureSeparatorToken = 38,
832 BraceToken = 39,
833 ValueLocationToken = 40,
834 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
835 CodeSymbolToken = 64,
836 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
837 DataSymbolToken = 65,
838 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
839 LocalVariableToken = 66,
840 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
841 ImportToken = 67,
842 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
843 AddressDisplayToken = 68,
844 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
845 IndirectImportToken = 69,
846 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
847 ExternalSymbolToken = 70,
848 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
849 StackVariableToken = 71,
850 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
851 AddressSeparatorToken = 72,
852 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
853 CollapsedInformationToken = 73,
854 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
855 CollapseStateIndicatorToken = 74,
856 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
857 NewLineToken = 75,
858}
859#[repr(u8)]
860#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
861pub enum BNInstructionTextTokenContext {
862 NoTokenContext = 0,
863 LocalVariableTokenContext = 1,
864 DataVariableTokenContext = 2,
865 FunctionReturnTokenContext = 3,
866 InstructionAddressTokenContext = 4,
867 ILInstructionIndexTokenContext = 5,
868 #[doc = " For Const Data arrays"]
869 ConstDataTokenContext = 6,
870 #[doc = " For ConstData strings"]
871 ConstStringDataTokenContext = 7,
872 #[doc = " For References to strings"]
873 StringReferenceTokenContext = 8,
874 #[doc = " For String DataVariables"]
875 StringDataVariableTokenContext = 9,
876 #[doc = " For displaying strings which aren't associated with an address"]
877 StringDisplayTokenContext = 10,
878 ContentCollapsedContext = 11,
879 ContentExpandedContext = 12,
880 ContentCollapsiblePadding = 13,
881 DerivedStringReferenceTokenContext = 14,
882}
883#[repr(u8)]
884#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
885pub enum BNLinearDisassemblyLineType {
886 BlankLineType = 0,
887 BasicLineType = 1,
888 CodeDisassemblyLineType = 2,
889 DataVariableLineType = 3,
890 HexDumpLineType = 4,
891 FunctionHeaderLineType = 5,
892 FunctionHeaderStartLineType = 6,
893 FunctionHeaderEndLineType = 7,
894 FunctionContinuationLineType = 8,
895 LocalVariableLineType = 9,
896 LocalVariableListEndLineType = 10,
897 FunctionEndLineType = 11,
898 NoteStartLineType = 12,
899 NoteLineType = 13,
900 NoteEndLineType = 14,
901 SectionStartLineType = 15,
902 SectionEndLineType = 16,
903 SectionSeparatorLineType = 17,
904 NonContiguousSeparatorLineType = 18,
905 AnalysisWarningLineType = 19,
906 CollapsedFunctionEndLineType = 20,
907}
908#[repr(u8)]
909#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
910pub enum BNTokenEscapingType {
911 NoTokenEscapingType = 0,
912 BackticksTokenEscapingType = 1,
913 QuotedStringEscapingType = 2,
914 ReplaceInvalidCharsEscapingType = 3,
915}
916#[repr(u8)]
917#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
918pub enum BNSymbolType {
919 FunctionSymbol = 0,
920 ImportAddressSymbol = 1,
921 ImportedFunctionSymbol = 2,
922 DataSymbol = 3,
923 ImportedDataSymbol = 4,
924 ExternalSymbol = 5,
925 LibraryFunctionSymbol = 6,
926 SymbolicFunctionSymbol = 7,
927 LocalLabelSymbol = 8,
928}
929#[repr(u8)]
930#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
931pub enum BNSymbolBinding {
932 NoBinding = 0,
933 LocalBinding = 1,
934 GlobalBinding = 2,
935 WeakBinding = 3,
936}
937#[repr(u8)]
938#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
939pub enum BNLowLevelILOperation {
940 LLIL_NOP = 0,
941 #[doc = " Not valid in SSA form (see LLIL_SET_REG_SSA)"]
942 LLIL_SET_REG = 1,
943 #[doc = " Not valid in SSA form (see LLIL_SET_REG_SPLIT_SSA)"]
944 LLIL_SET_REG_SPLIT = 2,
945 #[doc = " Not valid in SSA form (see LLIL_SET_FLAG_SSA)"]
946 LLIL_SET_FLAG = 3,
947 #[doc = " Not valid in SSA form (see LLIL_SET_REG_STACK_REL_SSA)"]
948 LLIL_SET_REG_STACK_REL = 4,
949 #[doc = " Not valid in SSA form (expanded)"]
950 LLIL_REG_STACK_PUSH = 5,
951 LLIL_ASSERT = 6,
952 LLIL_FORCE_VER = 7,
953 #[doc = " Not valid in SSA form (see LLIL_LOAD_SSA)"]
954 LLIL_LOAD = 8,
955 #[doc = " Not valid in SSA form (see LLIL_STORE_SSA)"]
956 LLIL_STORE = 9,
957 #[doc = " Not valid in SSA form (expanded)"]
958 LLIL_PUSH = 10,
959 #[doc = " Not valid in SSA form (expanded)"]
960 LLIL_POP = 11,
961 #[doc = " Not valid in SSA form (see LLIL_REG_SSA)"]
962 LLIL_REG = 12,
963 #[doc = " Not valid in SSA form (see LLIL_REG_SPLIT_SSA)"]
964 LLIL_REG_SPLIT = 13,
965 #[doc = " Not valid in SSA form (see LLIL_REG_STACK_REL_SSA)"]
966 LLIL_REG_STACK_REL = 14,
967 #[doc = " Not valid in SSA form (expanded)"]
968 LLIL_REG_STACK_POP = 15,
969 #[doc = " Not valid in SSA form (see LLIL_REG_STACK_FREE_REL_SSA,\n LLIL_REG_STACK_FREE_ABS_SSA)"]
970 LLIL_REG_STACK_FREE_REG = 16,
971 #[doc = " Not valid in SSA from (see LLIL_REG_STACK_FREE_REL_SSA)"]
972 LLIL_REG_STACK_FREE_REL = 17,
973 LLIL_CONST = 18,
974 LLIL_CONST_PTR = 19,
975 LLIL_EXTERN_PTR = 20,
976 LLIL_FLOAT_CONST = 21,
977 #[doc = " Not valid in SSA form (see LLIL_FLAG_SSA)"]
978 LLIL_FLAG = 22,
979 #[doc = " Not valid in SSA form (see LLIL_FLAG_BIT_SSA)"]
980 LLIL_FLAG_BIT = 23,
981 LLIL_ADD = 24,
982 LLIL_ADC = 25,
983 LLIL_SUB = 26,
984 LLIL_SBB = 27,
985 LLIL_AND = 28,
986 LLIL_OR = 29,
987 LLIL_XOR = 30,
988 LLIL_LSL = 31,
989 LLIL_LSR = 32,
990 LLIL_ASR = 33,
991 LLIL_ROL = 34,
992 LLIL_RLC = 35,
993 LLIL_ROR = 36,
994 LLIL_RRC = 37,
995 LLIL_MUL = 38,
996 LLIL_MULU_DP = 39,
997 LLIL_MULS_DP = 40,
998 LLIL_DIVU = 41,
999 LLIL_DIVU_DP = 42,
1000 LLIL_DIVS = 43,
1001 LLIL_DIVS_DP = 44,
1002 LLIL_MODU = 45,
1003 LLIL_MODU_DP = 46,
1004 LLIL_MODS = 47,
1005 LLIL_MODS_DP = 48,
1006 LLIL_NEG = 49,
1007 LLIL_NOT = 50,
1008 LLIL_SX = 51,
1009 LLIL_ZX = 52,
1010 LLIL_LOW_PART = 53,
1011 LLIL_JUMP = 54,
1012 LLIL_JUMP_TO = 55,
1013 LLIL_CALL = 56,
1014 LLIL_CALL_STACK_ADJUST = 57,
1015 LLIL_TAILCALL = 58,
1016 LLIL_RET = 59,
1017 LLIL_NORET = 60,
1018 LLIL_IF = 61,
1019 LLIL_GOTO = 62,
1020 #[doc = " Valid only in Lifted IL"]
1021 LLIL_FLAG_COND = 63,
1022 #[doc = " Valid only in Lifted IL"]
1023 LLIL_FLAG_GROUP = 64,
1024 LLIL_CMP_E = 65,
1025 LLIL_CMP_NE = 66,
1026 LLIL_CMP_SLT = 67,
1027 LLIL_CMP_ULT = 68,
1028 LLIL_CMP_SLE = 69,
1029 LLIL_CMP_ULE = 70,
1030 LLIL_CMP_SGE = 71,
1031 LLIL_CMP_UGE = 72,
1032 LLIL_CMP_SGT = 73,
1033 LLIL_CMP_UGT = 74,
1034 LLIL_TEST_BIT = 75,
1035 LLIL_BOOL_TO_INT = 76,
1036 LLIL_ADD_OVERFLOW = 77,
1037 LLIL_SYSCALL = 78,
1038 LLIL_BP = 79,
1039 LLIL_TRAP = 80,
1040 LLIL_INTRINSIC = 81,
1041 LLIL_UNDEF = 82,
1042 LLIL_UNIMPL = 83,
1043 LLIL_UNIMPL_MEM = 84,
1044 #[doc = " Floating point"]
1045 LLIL_FADD = 85,
1046 #[doc = " Floating point"]
1047 LLIL_FSUB = 86,
1048 #[doc = " Floating point"]
1049 LLIL_FMUL = 87,
1050 #[doc = " Floating point"]
1051 LLIL_FDIV = 88,
1052 #[doc = " Floating point"]
1053 LLIL_FSQRT = 89,
1054 #[doc = " Floating point"]
1055 LLIL_FNEG = 90,
1056 #[doc = " Floating point"]
1057 LLIL_FABS = 91,
1058 #[doc = " Floating point"]
1059 LLIL_FLOAT_TO_INT = 92,
1060 #[doc = " Floating point"]
1061 LLIL_INT_TO_FLOAT = 93,
1062 #[doc = " Floating point"]
1063 LLIL_FLOAT_CONV = 94,
1064 #[doc = " Floating point"]
1065 LLIL_ROUND_TO_INT = 95,
1066 #[doc = " Floating point"]
1067 LLIL_FLOOR = 96,
1068 #[doc = " Floating point"]
1069 LLIL_CEIL = 97,
1070 #[doc = " Floating point"]
1071 LLIL_FTRUNC = 98,
1072 #[doc = " Floating point"]
1073 LLIL_FCMP_E = 99,
1074 #[doc = " Floating point"]
1075 LLIL_FCMP_NE = 100,
1076 #[doc = " Floating point"]
1077 LLIL_FCMP_LT = 101,
1078 #[doc = " Floating point"]
1079 LLIL_FCMP_LE = 102,
1080 #[doc = " Floating point"]
1081 LLIL_FCMP_GE = 103,
1082 #[doc = " Floating point"]
1083 LLIL_FCMP_GT = 104,
1084 #[doc = " Floating point"]
1085 LLIL_FCMP_O = 105,
1086 #[doc = " Floating point"]
1087 LLIL_FCMP_UO = 106,
1088 #[doc = " The following instructions are only used in SSA form"]
1089 LLIL_SET_REG_SSA = 107,
1090 #[doc = " The following instructions are only used in SSA form"]
1091 LLIL_SET_REG_SSA_PARTIAL = 108,
1092 #[doc = " The following instructions are only used in SSA form"]
1093 LLIL_SET_REG_SPLIT_SSA = 109,
1094 #[doc = " The following instructions are only used in SSA form"]
1095 LLIL_SET_REG_STACK_REL_SSA = 110,
1096 #[doc = " The following instructions are only used in SSA form"]
1097 LLIL_SET_REG_STACK_ABS_SSA = 111,
1098 #[doc = " Only valid within an LLIL_SET_REG_SPLIT_SSA instruction"]
1099 LLIL_REG_SPLIT_DEST_SSA = 112,
1100 #[doc = " Only valid within LLIL_SET_REG_STACK_REL_SSA or LLIL_SET_REG_STACK_ABS_SSA"]
1101 LLIL_REG_STACK_DEST_SSA = 113,
1102 LLIL_REG_SSA = 114,
1103 LLIL_REG_SSA_PARTIAL = 115,
1104 LLIL_REG_SPLIT_SSA = 116,
1105 LLIL_REG_STACK_REL_SSA = 117,
1106 LLIL_REG_STACK_ABS_SSA = 118,
1107 LLIL_REG_STACK_FREE_REL_SSA = 119,
1108 LLIL_REG_STACK_FREE_ABS_SSA = 120,
1109 LLIL_SET_FLAG_SSA = 121,
1110 LLIL_ASSERT_SSA = 122,
1111 LLIL_FORCE_VER_SSA = 123,
1112 LLIL_FLAG_SSA = 124,
1113 LLIL_FLAG_BIT_SSA = 125,
1114 LLIL_CALL_SSA = 126,
1115 LLIL_SYSCALL_SSA = 127,
1116 LLIL_TAILCALL_SSA = 128,
1117 #[doc = " Only valid within the LLIL_CALL_SSA, LLIL_SYSCALL_SSA, LLIL_INTRINSIC, LLIL_INTRINSIC_SSA,\n LLIL_MEMORY_INTRINSIC_SSA, LLIL_TAILCALL, LLIL_TAILCALL_SSA instructions"]
1118 LLIL_CALL_PARAM = 129,
1119 #[doc = " Only valid within the LLIL_CALL_SSA or LLIL_SYSCALL_SSA instructions"]
1120 LLIL_CALL_STACK_SSA = 130,
1121 #[doc = " Only valid within the LLIL_CALL_SSA or LLIL_SYSCALL_SSA instructions"]
1122 LLIL_CALL_OUTPUT_SSA = 131,
1123 #[doc = " Only valid within the LLIL_CALL_PARAM instruction"]
1124 LLIL_SEPARATE_PARAM_LIST_SSA = 132,
1125 #[doc = " Only valid within the LLIL_CALL_PARAM or LLIL_SEPARATE_PARAM_LIST_SSA instructions"]
1126 LLIL_SHARED_PARAM_SLOT_SSA = 133,
1127 #[doc = " Only valid within the LLIL_MEMORY_INTRINSIC_SSA instruction"]
1128 LLIL_MEMORY_INTRINSIC_OUTPUT_SSA = 134,
1129 LLIL_LOAD_SSA = 135,
1130 LLIL_STORE_SSA = 136,
1131 LLIL_INTRINSIC_SSA = 137,
1132 LLIL_MEMORY_INTRINSIC_SSA = 138,
1133 LLIL_REG_PHI = 139,
1134 LLIL_REG_STACK_PHI = 140,
1135 LLIL_FLAG_PHI = 141,
1136 LLIL_MEM_PHI = 142,
1137 #[doc = " Reverse byte order of the whole value"]
1138 LLIL_BSWAP = 143,
1139 #[doc = " Population count (number of set bits)"]
1140 LLIL_POPCNT = 144,
1141 #[doc = " Count leading zero bits; clz(0) == 8 * size"]
1142 LLIL_CLZ = 145,
1143 #[doc = " Count trailing zero bits; ctz(0) == 8 * size"]
1144 LLIL_CTZ = 146,
1145 #[doc = " Reverse bit order of the whole value"]
1146 LLIL_RBIT = 147,
1147 #[doc = " Count leading sign bits; number of bits below the sign bit that match it"]
1148 LLIL_CLS = 148,
1149 #[doc = " Signed minimum of left and right"]
1150 LLIL_MINS = 149,
1151 #[doc = " Signed maximum of left and right"]
1152 LLIL_MAXS = 150,
1153 #[doc = " Unsigned minimum of left and right"]
1154 LLIL_MINU = 151,
1155 #[doc = " Unsigned maximum of left and right"]
1156 LLIL_MAXU = 152,
1157 #[doc = " Signed absolute value of src; abs(INT_MIN) == INT_MIN"]
1158 LLIL_ABS = 153,
1159}
1160#[repr(u8)]
1161#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1162pub enum BNLowLevelILFlagCondition {
1163 LLFC_E = 0,
1164 LLFC_NE = 1,
1165 LLFC_SLT = 2,
1166 LLFC_ULT = 3,
1167 LLFC_SLE = 4,
1168 LLFC_ULE = 5,
1169 LLFC_SGE = 6,
1170 LLFC_UGE = 7,
1171 LLFC_SGT = 8,
1172 LLFC_UGT = 9,
1173 LLFC_NEG = 10,
1174 LLFC_POS = 11,
1175 LLFC_O = 12,
1176 LLFC_NO = 13,
1177 LLFC_FE = 14,
1178 LLFC_FNE = 15,
1179 LLFC_FLT = 16,
1180 LLFC_FLE = 17,
1181 LLFC_FGE = 18,
1182 LLFC_FGT = 19,
1183 LLFC_FO = 20,
1184 LLFC_FUO = 21,
1185}
1186#[repr(u8)]
1187#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1188pub enum BNFlagRole {
1189 SpecialFlagRole = 0,
1190 ZeroFlagRole = 1,
1191 PositiveSignFlagRole = 2,
1192 NegativeSignFlagRole = 3,
1193 CarryFlagRole = 4,
1194 OverflowFlagRole = 5,
1195 HalfCarryFlagRole = 6,
1196 EvenParityFlagRole = 7,
1197 OddParityFlagRole = 8,
1198 OrderedFlagRole = 9,
1199 UnorderedFlagRole = 10,
1200 CarryFlagWithInvertedSubtractRole = 11,
1201}
1202#[repr(i8)]
1203#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1204pub enum BNFunctionGraphType {
1205 InvalidILViewType = -1,
1206 NormalFunctionGraph = 0,
1207 LowLevelILFunctionGraph = 1,
1208 LiftedILFunctionGraph = 2,
1209 LowLevelILSSAFormFunctionGraph = 3,
1210 MediumLevelILFunctionGraph = 4,
1211 MediumLevelILSSAFormFunctionGraph = 5,
1212 MappedMediumLevelILFunctionGraph = 6,
1213 MappedMediumLevelILSSAFormFunctionGraph = 7,
1214 HighLevelILFunctionGraph = 8,
1215 HighLevelILSSAFormFunctionGraph = 9,
1216 HighLevelLanguageRepresentationFunctionGraph = 10,
1217}
1218#[repr(C)]
1219#[derive(Debug, Copy, Clone)]
1220pub struct BNFunctionViewType {
1221 pub type_: BNFunctionGraphType,
1222 #[doc = " Only used for HighLevelLanguageRepresentationFunctionGraph"]
1223 pub name: *const ::std::os::raw::c_char,
1224}
1225#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1226const _: () = {
1227 ["Size of BNFunctionViewType"][::std::mem::size_of::<BNFunctionViewType>() - 16usize];
1228 ["Alignment of BNFunctionViewType"][::std::mem::align_of::<BNFunctionViewType>() - 8usize];
1229 ["Offset of field: BNFunctionViewType::type_"]
1230 [::std::mem::offset_of!(BNFunctionViewType, type_) - 0usize];
1231 ["Offset of field: BNFunctionViewType::name"]
1232 [::std::mem::offset_of!(BNFunctionViewType, name) - 8usize];
1233};
1234impl Default for BNFunctionViewType {
1235 fn default() -> Self {
1236 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1237 unsafe {
1238 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1239 s.assume_init()
1240 }
1241 }
1242}
1243#[repr(u8)]
1244#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1245pub enum BNDisassemblyOption {
1246 ShowAddress = 0,
1247 ShowOpcode = 1,
1248 ExpandLongOpcode = 2,
1249 ShowVariablesAtTopOfGraph = 3,
1250 ShowVariableTypesWhenAssigned = 4,
1251 ShowRegisterHighlight = 7,
1252 ShowFunctionAddress = 8,
1253 ShowFunctionHeader = 9,
1254 ShowTypeCasts = 10,
1255 #[doc = " Linear disassembly options"]
1256 GroupLinearDisassemblyFunctions = 64,
1257 #[doc = " Linear disassembly options"]
1258 HighLevelILLinearDisassembly = 65,
1259 #[doc = " Linear disassembly options"]
1260 WaitForIL = 66,
1261 #[doc = " Linear disassembly options"]
1262 IndentHLILBody = 67,
1263 #[doc = " Linear disassembly options"]
1264 DisableLineFormatting = 68,
1265 #[doc = " Debugging options"]
1266 ShowFlagUsage = 128,
1267 #[doc = " Debugging options"]
1268 ShowStackPointer = 129,
1269 #[doc = " Debugging options"]
1270 ShowILTypes = 130,
1271 #[doc = " Debugging options"]
1272 ShowILOpcodes = 131,
1273 #[doc = " Debugging options"]
1274 ShowCollapseIndicators = 132,
1275}
1276#[repr(u32)]
1277#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1278pub enum BNDisassemblyAddressMode {
1279 AbsoluteDisassemblyAddressMode = 0,
1280 RelativeToBinaryStartDisassemblyAddressMode = 1,
1281 RelativeToSegmentStartDisassemblyAddressMode = 2,
1282 RelativeToSectionStartDisassemblyAddressMode = 3,
1283 RelativeToFunctionStartDisassemblyAddressMode = 4,
1284 RelativeToAddressBaseOffsetDisassemblyAddressMode = 5,
1285 RelativeToDataStartDisassemblyAddressMode = 6,
1286 DisassemblyAddressModeMask = 65535,
1287 IncludeNameDisassemblyAddressModeFlag = 65536,
1288 DecimalDisassemblyAddressModeFlag = 131072,
1289 DisassemblyAddressModeFlagsMask = 4294901760,
1290}
1291#[repr(u8)]
1292#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1293pub enum BNDisassemblyCallParameterHints {
1294 NeverShowMatchingParameterHints = 0,
1295 AlwaysShowParameterHints = 1,
1296 NeverShowParameterHints = 2,
1297}
1298#[repr(u8)]
1299#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1300pub enum BNDisassemblyBlockLabels {
1301 NeverShowDefaultBlockLabels = 0,
1302 AlwaysShowBlockLabels = 1,
1303 NeverShowBlockLabels = 2,
1304}
1305#[repr(u8)]
1306#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1307pub enum BNTypeClass {
1308 VoidTypeClass = 0,
1309 BoolTypeClass = 1,
1310 IntegerTypeClass = 2,
1311 FloatTypeClass = 3,
1312 StructureTypeClass = 4,
1313 EnumerationTypeClass = 5,
1314 PointerTypeClass = 6,
1315 ArrayTypeClass = 7,
1316 FunctionTypeClass = 8,
1317 VarArgsTypeClass = 9,
1318 ValueTypeClass = 10,
1319 NamedTypeReferenceClass = 11,
1320 WideCharTypeClass = 12,
1321 FragmentTypeClass = 13,
1322}
1323#[repr(u8)]
1324#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1325pub enum BNNamedTypeReferenceClass {
1326 UnknownNamedTypeClass = 0,
1327 TypedefNamedTypeClass = 1,
1328 ClassNamedTypeClass = 2,
1329 StructNamedTypeClass = 3,
1330 UnionNamedTypeClass = 4,
1331 EnumNamedTypeClass = 5,
1332}
1333#[repr(u8)]
1334#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1335pub enum BNStructureVariant {
1336 ClassStructureType = 0,
1337 StructStructureType = 1,
1338 UnionStructureType = 2,
1339}
1340#[repr(u8)]
1341#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1342pub enum BNMemberScope {
1343 NoScope = 0,
1344 StaticScope = 1,
1345 VirtualScope = 2,
1346 ThunkScope = 3,
1347 FriendScope = 4,
1348}
1349#[repr(u8)]
1350#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1351pub enum BNMemberAccess {
1352 NoAccess = 0,
1353 PrivateAccess = 1,
1354 ProtectedAccess = 2,
1355 PublicAccess = 3,
1356}
1357#[repr(u8)]
1358#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1359pub enum BNReferenceType {
1360 PointerReferenceType = 0,
1361 ReferenceReferenceType = 1,
1362 RValueReferenceType = 2,
1363 NoReference = 3,
1364}
1365#[repr(u8)]
1366#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1367pub enum BNPointerSuffix {
1368 Ptr64Suffix = 0,
1369 UnalignedSuffix = 1,
1370 RestrictSuffix = 2,
1371 ReferenceSuffix = 3,
1372 LvalueSuffix = 4,
1373}
1374#[repr(u8)]
1375#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1376pub enum BNPointerBaseType {
1377 AbsolutePointerBaseType = 0,
1378 RelativeToConstantPointerBaseType = 1,
1379 RelativeToBinaryStartPointerBaseType = 2,
1380 RelativeToVariableAddressPointerBaseType = 3,
1381}
1382#[repr(u8)]
1383#[doc = " Caution: these enumeration values are used a lookups into the static NameTypeStrings in the core\n if you modify this you must also modify the string lookups as well"]
1384#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1385pub enum BNNameType {
1386 NoNameType = 0,
1387 ConstructorNameType = 1,
1388 DestructorNameType = 2,
1389 OperatorNewNameType = 3,
1390 OperatorDeleteNameType = 4,
1391 OperatorAssignNameType = 5,
1392 OperatorRightShiftNameType = 6,
1393 OperatorLeftShiftNameType = 7,
1394 OperatorNotNameType = 8,
1395 OperatorEqualNameType = 9,
1396 OperatorNotEqualNameType = 10,
1397 OperatorArrayNameType = 11,
1398 OperatorArrowNameType = 12,
1399 OperatorStarNameType = 13,
1400 OperatorIncrementNameType = 14,
1401 OperatorDecrementNameType = 15,
1402 OperatorMinusNameType = 16,
1403 OperatorPlusNameType = 17,
1404 OperatorBitAndNameType = 18,
1405 OperatorArrowStarNameType = 19,
1406 OperatorDivideNameType = 20,
1407 OperatorModulusNameType = 21,
1408 OperatorLessThanNameType = 22,
1409 OperatorLessThanEqualNameType = 23,
1410 OperatorGreaterThanNameType = 24,
1411 OperatorGreaterThanEqualNameType = 25,
1412 OperatorCommaNameType = 26,
1413 OperatorParenthesesNameType = 27,
1414 OperatorTildeNameType = 28,
1415 OperatorXorNameType = 29,
1416 OperatorBitOrNameType = 30,
1417 OperatorLogicalAndNameType = 31,
1418 OperatorLogicalOrNameType = 32,
1419 OperatorStarEqualNameType = 33,
1420 OperatorPlusEqualNameType = 34,
1421 OperatorMinusEqualNameType = 35,
1422 OperatorDivideEqualNameType = 36,
1423 OperatorModulusEqualNameType = 37,
1424 OperatorRightShiftEqualNameType = 38,
1425 OperatorLeftShiftEqualNameType = 39,
1426 OperatorAndEqualNameType = 40,
1427 OperatorOrEqualNameType = 41,
1428 OperatorXorEqualNameType = 42,
1429 VFTableNameType = 43,
1430 VBTableNameType = 44,
1431 VCallNameType = 45,
1432 TypeofNameType = 46,
1433 LocalStaticGuardNameType = 47,
1434 StringNameType = 48,
1435 VBaseDestructorNameType = 49,
1436 VectorDeletingDestructorNameType = 50,
1437 DefaultConstructorClosureNameType = 51,
1438 ScalarDeletingDestructorNameType = 52,
1439 VectorConstructorIteratorNameType = 53,
1440 VectorDestructorIteratorNameType = 54,
1441 VectorVBaseConstructorIteratorNameType = 55,
1442 VirtualDisplacementMapNameType = 56,
1443 EHVectorConstructorIteratorNameType = 57,
1444 EHVectorDestructorIteratorNameType = 58,
1445 EHVectorVBaseConstructorIteratorNameType = 59,
1446 CopyConstructorClosureNameType = 60,
1447 UDTReturningNameType = 61,
1448 LocalVFTableNameType = 62,
1449 LocalVFTableConstructorClosureNameType = 63,
1450 OperatorNewArrayNameType = 64,
1451 OperatorDeleteArrayNameType = 65,
1452 PlacementDeleteClosureNameType = 66,
1453 PlacementDeleteClosureArrayNameType = 67,
1454 OperatorReturnTypeNameType = 68,
1455 RttiTypeDescriptor = 69,
1456 RttiBaseClassDescriptor = 70,
1457 RttiBaseClassArray = 71,
1458 RttiClassHierarchyDescriptor = 72,
1459 RttiCompleteObjectLocator = 73,
1460 OperatorUnaryMinusNameType = 74,
1461 OperatorUnaryPlusNameType = 75,
1462 OperatorUnaryBitAndNameType = 76,
1463 OperatorUnaryStarNameType = 77,
1464 OmniCallSigNameType = 78,
1465 ManagedVectorConstructorIteratorNameType = 79,
1466 ManagedVectorDestructorIteratorNameType = 80,
1467 EHVectorCopyConstructorIteratorNameType = 81,
1468 EHVectorVBaseCopyConstructorIteratorNameType = 82,
1469 DynamicInitializerNameType = 83,
1470 DynamicAtExitDestructorNameType = 84,
1471 VectorCopyConstructorIteratorNameType = 85,
1472 VectorVBaseCopyConstructorIteratorNameType = 86,
1473 ManagedVectorCopyConstructorIteratorNameType = 87,
1474 LocalStaticThreadGuardNameType = 88,
1475 UserDefinedLiteralOperatorNameType = 89,
1476}
1477#[repr(u8)]
1478#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1479pub enum BNCallingConventionName {
1480 NoCallingConvention = 0,
1481 CdeclCallingConvention = 1,
1482 PascalCallingConvention = 2,
1483 ThisCallCallingConvention = 3,
1484 STDCallCallingConvention = 4,
1485 FastcallCallingConvention = 5,
1486 CLRCallCallingConvention = 6,
1487 EabiCallCallingConvention = 7,
1488 VectorCallCallingConvention = 8,
1489 SwiftCallingConvention = 9,
1490 SwiftAsyncCallingConvention = 10,
1491}
1492#[repr(u8)]
1493#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1494pub enum BNStringType {
1495 AsciiString = 0,
1496 Utf16String = 1,
1497 Utf32String = 2,
1498 Utf8String = 3,
1499}
1500#[repr(u8)]
1501#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1502pub enum BNIntegerDisplayType {
1503 DefaultIntegerDisplayType = 0,
1504 BinaryDisplayType = 1,
1505 SignedOctalDisplayType = 2,
1506 UnsignedOctalDisplayType = 3,
1507 SignedDecimalDisplayType = 4,
1508 UnsignedDecimalDisplayType = 5,
1509 SignedHexadecimalDisplayType = 6,
1510 UnsignedHexadecimalDisplayType = 7,
1511 CharacterConstantDisplayType = 8,
1512 PointerDisplayType = 9,
1513 FloatDisplayType = 10,
1514 DoubleDisplayType = 11,
1515 EnumerationDisplayType = 12,
1516 InvertedCharacterConstantDisplayType = 13,
1517 UnsignedComplementDecimalDisplayType = 14,
1518 UnsignedComplementHexadecimalDisplayType = 15,
1519}
1520#[repr(u8)]
1521#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1522pub enum BNFlowGraphOption {
1523 FlowGraphUsesBlockHighlights = 0,
1524 FlowGraphUsesInstructionHighlights = 1,
1525 FlowGraphIncludesUserComments = 2,
1526 FlowGraphAllowsPatching = 3,
1527 FlowGraphAllowsInlineInstructionEditing = 4,
1528 FlowGraphShowsSecondaryRegisterHighlighting = 5,
1529 FlowGraphIsAddressable = 6,
1530 FlowGraphIsWorkflowGraph = 7,
1531}
1532#[repr(u8)]
1533#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1534pub enum BNIntrinsicClass {
1535 GeneralIntrinsicClass = 0,
1536 MemoryIntrinsicClass = 1,
1537}
1538#[repr(u8)]
1539#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1540pub enum BNInlineDuringAnalysis {
1541 #[doc = " The called function should not be inlined."]
1542 DoNotInlineCall = 0,
1543 #[doc = " The called function should be inlined, with the inlined\n instructions preserving their original addresses.\n This was the only behavior available up through Binary Ninja 5.2."]
1544 InlinePreservingTargetInstructionAddresses = 1,
1545 #[doc = " The called function should be inlined, with the inlined\n instructions using the call site address as their address.\n This ensures that when the function is inlined into a caller\n multiple times, each occurrence can have different adjustments\n applied to it. The trade-off is that the instructions inlined\n at a given call site have the same address, which in turn\n prevents applying adjustments that depend on instruction\n address to only a subset of those instructions."]
1546 InlineUsingCallAddress = 2,
1547}
1548#[repr(C)]
1549#[derive(Debug, Copy, Clone)]
1550pub struct BNInlineDuringAnalysisWithConfidence {
1551 pub value: BNInlineDuringAnalysis,
1552 pub confidence: u8,
1553}
1554#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1555const _: () = {
1556 ["Size of BNInlineDuringAnalysisWithConfidence"]
1557 [::std::mem::size_of::<BNInlineDuringAnalysisWithConfidence>() - 2usize];
1558 ["Alignment of BNInlineDuringAnalysisWithConfidence"]
1559 [::std::mem::align_of::<BNInlineDuringAnalysisWithConfidence>() - 1usize];
1560 ["Offset of field: BNInlineDuringAnalysisWithConfidence::value"]
1561 [::std::mem::offset_of!(BNInlineDuringAnalysisWithConfidence, value) - 0usize];
1562 ["Offset of field: BNInlineDuringAnalysisWithConfidence::confidence"]
1563 [::std::mem::offset_of!(BNInlineDuringAnalysisWithConfidence, confidence) - 1usize];
1564};
1565impl Default for BNInlineDuringAnalysisWithConfidence {
1566 fn default() -> Self {
1567 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1568 unsafe {
1569 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1570 s.assume_init()
1571 }
1572 }
1573}
1574#[repr(C)]
1575#[derive(Debug, Copy, Clone)]
1576pub struct BNLowLevelILInstruction {
1577 pub operation: BNLowLevelILOperation,
1578 pub attributes: u32,
1579 pub size: usize,
1580 pub flags: u32,
1581 pub sourceOperand: u32,
1582 pub operands: [u64; 4usize],
1583 pub address: u64,
1584}
1585#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1586const _: () = {
1587 ["Size of BNLowLevelILInstruction"][::std::mem::size_of::<BNLowLevelILInstruction>() - 64usize];
1588 ["Alignment of BNLowLevelILInstruction"]
1589 [::std::mem::align_of::<BNLowLevelILInstruction>() - 8usize];
1590 ["Offset of field: BNLowLevelILInstruction::operation"]
1591 [::std::mem::offset_of!(BNLowLevelILInstruction, operation) - 0usize];
1592 ["Offset of field: BNLowLevelILInstruction::attributes"]
1593 [::std::mem::offset_of!(BNLowLevelILInstruction, attributes) - 4usize];
1594 ["Offset of field: BNLowLevelILInstruction::size"]
1595 [::std::mem::offset_of!(BNLowLevelILInstruction, size) - 8usize];
1596 ["Offset of field: BNLowLevelILInstruction::flags"]
1597 [::std::mem::offset_of!(BNLowLevelILInstruction, flags) - 16usize];
1598 ["Offset of field: BNLowLevelILInstruction::sourceOperand"]
1599 [::std::mem::offset_of!(BNLowLevelILInstruction, sourceOperand) - 20usize];
1600 ["Offset of field: BNLowLevelILInstruction::operands"]
1601 [::std::mem::offset_of!(BNLowLevelILInstruction, operands) - 24usize];
1602 ["Offset of field: BNLowLevelILInstruction::address"]
1603 [::std::mem::offset_of!(BNLowLevelILInstruction, address) - 56usize];
1604};
1605impl Default for BNLowLevelILInstruction {
1606 fn default() -> Self {
1607 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1608 unsafe {
1609 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1610 s.assume_init()
1611 }
1612 }
1613}
1614#[repr(C)]
1615#[derive(Debug, Default, Copy, Clone)]
1616pub struct BNLowLevelILLabel {
1617 pub resolved: bool,
1618 pub ref_: usize,
1619 pub operand: usize,
1620}
1621#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1622const _: () = {
1623 ["Size of BNLowLevelILLabel"][::std::mem::size_of::<BNLowLevelILLabel>() - 24usize];
1624 ["Alignment of BNLowLevelILLabel"][::std::mem::align_of::<BNLowLevelILLabel>() - 8usize];
1625 ["Offset of field: BNLowLevelILLabel::resolved"]
1626 [::std::mem::offset_of!(BNLowLevelILLabel, resolved) - 0usize];
1627 ["Offset of field: BNLowLevelILLabel::ref_"]
1628 [::std::mem::offset_of!(BNLowLevelILLabel, ref_) - 8usize];
1629 ["Offset of field: BNLowLevelILLabel::operand"]
1630 [::std::mem::offset_of!(BNLowLevelILLabel, operand) - 16usize];
1631};
1632#[repr(u8)]
1633#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1634pub enum BNImplicitRegisterExtend {
1635 NoExtend = 0,
1636 ZeroExtendToFullWidth = 1,
1637 SignExtendToFullWidth = 2,
1638}
1639#[repr(C)]
1640#[derive(Debug, Copy, Clone)]
1641pub struct BNRegisterInfo {
1642 pub fullWidthRegister: u32,
1643 pub offset: usize,
1644 pub size: usize,
1645 pub extend: BNImplicitRegisterExtend,
1646}
1647#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1648const _: () = {
1649 ["Size of BNRegisterInfo"][::std::mem::size_of::<BNRegisterInfo>() - 32usize];
1650 ["Alignment of BNRegisterInfo"][::std::mem::align_of::<BNRegisterInfo>() - 8usize];
1651 ["Offset of field: BNRegisterInfo::fullWidthRegister"]
1652 [::std::mem::offset_of!(BNRegisterInfo, fullWidthRegister) - 0usize];
1653 ["Offset of field: BNRegisterInfo::offset"]
1654 [::std::mem::offset_of!(BNRegisterInfo, offset) - 8usize];
1655 ["Offset of field: BNRegisterInfo::size"]
1656 [::std::mem::offset_of!(BNRegisterInfo, size) - 16usize];
1657 ["Offset of field: BNRegisterInfo::extend"]
1658 [::std::mem::offset_of!(BNRegisterInfo, extend) - 24usize];
1659};
1660impl Default for BNRegisterInfo {
1661 fn default() -> Self {
1662 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1663 unsafe {
1664 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1665 s.assume_init()
1666 }
1667 }
1668}
1669#[repr(C)]
1670#[derive(Debug, Default, Copy, Clone)]
1671pub struct BNRegisterStackInfo {
1672 pub firstStorageReg: u32,
1673 pub firstTopRelativeReg: u32,
1674 pub storageCount: u32,
1675 pub topRelativeCount: u32,
1676 pub stackTopReg: u32,
1677}
1678#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1679const _: () = {
1680 ["Size of BNRegisterStackInfo"][::std::mem::size_of::<BNRegisterStackInfo>() - 20usize];
1681 ["Alignment of BNRegisterStackInfo"][::std::mem::align_of::<BNRegisterStackInfo>() - 4usize];
1682 ["Offset of field: BNRegisterStackInfo::firstStorageReg"]
1683 [::std::mem::offset_of!(BNRegisterStackInfo, firstStorageReg) - 0usize];
1684 ["Offset of field: BNRegisterStackInfo::firstTopRelativeReg"]
1685 [::std::mem::offset_of!(BNRegisterStackInfo, firstTopRelativeReg) - 4usize];
1686 ["Offset of field: BNRegisterStackInfo::storageCount"]
1687 [::std::mem::offset_of!(BNRegisterStackInfo, storageCount) - 8usize];
1688 ["Offset of field: BNRegisterStackInfo::topRelativeCount"]
1689 [::std::mem::offset_of!(BNRegisterStackInfo, topRelativeCount) - 12usize];
1690 ["Offset of field: BNRegisterStackInfo::stackTopReg"]
1691 [::std::mem::offset_of!(BNRegisterStackInfo, stackTopReg) - 16usize];
1692};
1693#[repr(u32)]
1694#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1695pub enum BNRegisterValueType {
1696 UndeterminedValue = 0,
1697 EntryValue = 1,
1698 ConstantValue = 2,
1699 ConstantPointerValue = 3,
1700 ExternalPointerValue = 4,
1701 StackFrameOffset = 5,
1702 ReturnAddressValue = 6,
1703 ImportedAddressValue = 7,
1704 ResultPointerValue = 8,
1705 ParameterPointerValue = 9,
1706 #[doc = " The following are only valid in BNPossibleValueSet"]
1707 SignedRangeValue = 10,
1708 #[doc = " The following are only valid in BNPossibleValueSet"]
1709 UnsignedRangeValue = 11,
1710 #[doc = " The following are only valid in BNPossibleValueSet"]
1711 LookupTableValue = 12,
1712 #[doc = " The following are only valid in BNPossibleValueSet"]
1713 InSetOfValues = 13,
1714 #[doc = " The following are only valid in BNPossibleValueSet"]
1715 NotInSetOfValues = 14,
1716 #[doc = " The following support constant data and values larger than 8 bytes"]
1717 ConstantDataValue = 32768,
1718 #[doc = " The following support constant data and values larger than 8 bytes"]
1719 ConstantDataZeroExtendValue = 32769,
1720 #[doc = " The following support constant data and values larger than 8 bytes"]
1721 ConstantDataSignExtendValue = 32770,
1722 #[doc = " The following support constant data and values larger than 8 bytes"]
1723 ConstantDataAggregateValue = 32771,
1724}
1725#[repr(u8)]
1726#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1727pub enum BNDataFlowQueryOption {
1728 #[doc = " Use addresses instead of index in the from list within\n LookupTableValue results"]
1729 FromAddressesInLookupTableQueryOption = 0,
1730 AllowReadingWritableMemoryQueryOption = 1,
1731}
1732#[repr(u32)]
1733#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1734pub enum BNPluginStatus {
1735 NotInstalledPluginStatus = 0,
1736 InstalledPluginStatus = 1,
1737 EnabledPluginStatus = 2,
1738 UpdateAvailablePluginStatus = 16,
1739 DeletePendingPluginStatus = 32,
1740 UpdatePendingPluginStatus = 64,
1741 DisablePendingPluginStatus = 128,
1742 PendingRestartPluginStatus = 512,
1743 BeingUpdatedPluginStatus = 1024,
1744 BeingDeletedPluginStatus = 2048,
1745 DependenciesBeingInstalledStatus = 4096,
1746}
1747#[repr(u8)]
1748#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1749pub enum BNPluginType {
1750 CorePluginType = 0,
1751 UiPluginType = 1,
1752 ArchitecturePluginType = 2,
1753 BinaryViewPluginType = 3,
1754 HelperPluginType = 4,
1755 SyncPluginType = 5,
1756}
1757#[repr(C)]
1758#[derive(Debug, Copy, Clone)]
1759pub struct BNLookupTableEntry {
1760 pub fromValues: *mut i64,
1761 pub fromCount: usize,
1762 pub toValue: i64,
1763}
1764#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1765const _: () = {
1766 ["Size of BNLookupTableEntry"][::std::mem::size_of::<BNLookupTableEntry>() - 24usize];
1767 ["Alignment of BNLookupTableEntry"][::std::mem::align_of::<BNLookupTableEntry>() - 8usize];
1768 ["Offset of field: BNLookupTableEntry::fromValues"]
1769 [::std::mem::offset_of!(BNLookupTableEntry, fromValues) - 0usize];
1770 ["Offset of field: BNLookupTableEntry::fromCount"]
1771 [::std::mem::offset_of!(BNLookupTableEntry, fromCount) - 8usize];
1772 ["Offset of field: BNLookupTableEntry::toValue"]
1773 [::std::mem::offset_of!(BNLookupTableEntry, toValue) - 16usize];
1774};
1775impl Default for BNLookupTableEntry {
1776 fn default() -> Self {
1777 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1778 unsafe {
1779 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1780 s.assume_init()
1781 }
1782 }
1783}
1784#[repr(C)]
1785#[derive(Debug, Copy, Clone)]
1786pub struct BNRegisterValue {
1787 pub state: BNRegisterValueType,
1788 pub value: i64,
1789 pub offset: i64,
1790 pub size: usize,
1791}
1792#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1793const _: () = {
1794 ["Size of BNRegisterValue"][::std::mem::size_of::<BNRegisterValue>() - 32usize];
1795 ["Alignment of BNRegisterValue"][::std::mem::align_of::<BNRegisterValue>() - 8usize];
1796 ["Offset of field: BNRegisterValue::state"]
1797 [::std::mem::offset_of!(BNRegisterValue, state) - 0usize];
1798 ["Offset of field: BNRegisterValue::value"]
1799 [::std::mem::offset_of!(BNRegisterValue, value) - 8usize];
1800 ["Offset of field: BNRegisterValue::offset"]
1801 [::std::mem::offset_of!(BNRegisterValue, offset) - 16usize];
1802 ["Offset of field: BNRegisterValue::size"]
1803 [::std::mem::offset_of!(BNRegisterValue, size) - 24usize];
1804};
1805impl Default for BNRegisterValue {
1806 fn default() -> Self {
1807 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1808 unsafe {
1809 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1810 s.assume_init()
1811 }
1812 }
1813}
1814#[repr(C)]
1815#[derive(Debug, Copy, Clone)]
1816pub struct BNRegisterValueWithConfidence {
1817 pub value: BNRegisterValue,
1818 pub confidence: u8,
1819}
1820#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1821const _: () = {
1822 ["Size of BNRegisterValueWithConfidence"]
1823 [::std::mem::size_of::<BNRegisterValueWithConfidence>() - 40usize];
1824 ["Alignment of BNRegisterValueWithConfidence"]
1825 [::std::mem::align_of::<BNRegisterValueWithConfidence>() - 8usize];
1826 ["Offset of field: BNRegisterValueWithConfidence::value"]
1827 [::std::mem::offset_of!(BNRegisterValueWithConfidence, value) - 0usize];
1828 ["Offset of field: BNRegisterValueWithConfidence::confidence"]
1829 [::std::mem::offset_of!(BNRegisterValueWithConfidence, confidence) - 32usize];
1830};
1831impl Default for BNRegisterValueWithConfidence {
1832 fn default() -> Self {
1833 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1834 unsafe {
1835 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1836 s.assume_init()
1837 }
1838 }
1839}
1840#[repr(C)]
1841#[derive(Debug, Copy, Clone)]
1842pub struct BNRegisterValueWithConfidenceAndRegister {
1843 pub reg: u32,
1844 pub value: BNRegisterValueWithConfidence,
1845}
1846#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1847const _: () = {
1848 ["Size of BNRegisterValueWithConfidenceAndRegister"]
1849 [::std::mem::size_of::<BNRegisterValueWithConfidenceAndRegister>() - 48usize];
1850 ["Alignment of BNRegisterValueWithConfidenceAndRegister"]
1851 [::std::mem::align_of::<BNRegisterValueWithConfidenceAndRegister>() - 8usize];
1852 ["Offset of field: BNRegisterValueWithConfidenceAndRegister::reg"]
1853 [::std::mem::offset_of!(BNRegisterValueWithConfidenceAndRegister, reg) - 0usize];
1854 ["Offset of field: BNRegisterValueWithConfidenceAndRegister::value"]
1855 [::std::mem::offset_of!(BNRegisterValueWithConfidenceAndRegister, value) - 8usize];
1856};
1857impl Default for BNRegisterValueWithConfidenceAndRegister {
1858 fn default() -> Self {
1859 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1860 unsafe {
1861 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1862 s.assume_init()
1863 }
1864 }
1865}
1866#[repr(C)]
1867#[derive(Debug, Default, Copy, Clone)]
1868pub struct BNValueRange {
1869 pub start: u64,
1870 pub end: u64,
1871 pub step: u64,
1872}
1873#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1874const _: () = {
1875 ["Size of BNValueRange"][::std::mem::size_of::<BNValueRange>() - 24usize];
1876 ["Alignment of BNValueRange"][::std::mem::align_of::<BNValueRange>() - 8usize];
1877 ["Offset of field: BNValueRange::start"][::std::mem::offset_of!(BNValueRange, start) - 0usize];
1878 ["Offset of field: BNValueRange::end"][::std::mem::offset_of!(BNValueRange, end) - 8usize];
1879 ["Offset of field: BNValueRange::step"][::std::mem::offset_of!(BNValueRange, step) - 16usize];
1880};
1881#[repr(C)]
1882#[derive(Debug, Copy, Clone)]
1883pub struct BNPossibleValueSet {
1884 pub state: BNRegisterValueType,
1885 pub value: i64,
1886 pub offset: i64,
1887 pub size: usize,
1888 pub ranges: *mut BNValueRange,
1889 pub valueSet: *mut i64,
1890 pub table: *mut BNLookupTableEntry,
1891 pub count: usize,
1892}
1893#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1894const _: () = {
1895 ["Size of BNPossibleValueSet"][::std::mem::size_of::<BNPossibleValueSet>() - 64usize];
1896 ["Alignment of BNPossibleValueSet"][::std::mem::align_of::<BNPossibleValueSet>() - 8usize];
1897 ["Offset of field: BNPossibleValueSet::state"]
1898 [::std::mem::offset_of!(BNPossibleValueSet, state) - 0usize];
1899 ["Offset of field: BNPossibleValueSet::value"]
1900 [::std::mem::offset_of!(BNPossibleValueSet, value) - 8usize];
1901 ["Offset of field: BNPossibleValueSet::offset"]
1902 [::std::mem::offset_of!(BNPossibleValueSet, offset) - 16usize];
1903 ["Offset of field: BNPossibleValueSet::size"]
1904 [::std::mem::offset_of!(BNPossibleValueSet, size) - 24usize];
1905 ["Offset of field: BNPossibleValueSet::ranges"]
1906 [::std::mem::offset_of!(BNPossibleValueSet, ranges) - 32usize];
1907 ["Offset of field: BNPossibleValueSet::valueSet"]
1908 [::std::mem::offset_of!(BNPossibleValueSet, valueSet) - 40usize];
1909 ["Offset of field: BNPossibleValueSet::table"]
1910 [::std::mem::offset_of!(BNPossibleValueSet, table) - 48usize];
1911 ["Offset of field: BNPossibleValueSet::count"]
1912 [::std::mem::offset_of!(BNPossibleValueSet, count) - 56usize];
1913};
1914impl Default for BNPossibleValueSet {
1915 fn default() -> Self {
1916 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1917 unsafe {
1918 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1919 s.assume_init()
1920 }
1921 }
1922}
1923#[repr(C)]
1924#[derive(Debug, Default, Copy, Clone)]
1925pub struct BNRegisterOrConstant {
1926 pub constant: bool,
1927 pub reg: u32,
1928 pub value: u64,
1929}
1930#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1931const _: () = {
1932 ["Size of BNRegisterOrConstant"][::std::mem::size_of::<BNRegisterOrConstant>() - 16usize];
1933 ["Alignment of BNRegisterOrConstant"][::std::mem::align_of::<BNRegisterOrConstant>() - 8usize];
1934 ["Offset of field: BNRegisterOrConstant::constant"]
1935 [::std::mem::offset_of!(BNRegisterOrConstant, constant) - 0usize];
1936 ["Offset of field: BNRegisterOrConstant::reg"]
1937 [::std::mem::offset_of!(BNRegisterOrConstant, reg) - 4usize];
1938 ["Offset of field: BNRegisterOrConstant::value"]
1939 [::std::mem::offset_of!(BNRegisterOrConstant, value) - 8usize];
1940};
1941#[repr(C)]
1942#[derive(Debug, Copy, Clone)]
1943pub struct BNDataVariable {
1944 pub address: u64,
1945 pub type_: *mut BNType,
1946 pub autoDiscovered: bool,
1947 pub typeConfidence: u8,
1948}
1949#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1950const _: () = {
1951 ["Size of BNDataVariable"][::std::mem::size_of::<BNDataVariable>() - 24usize];
1952 ["Alignment of BNDataVariable"][::std::mem::align_of::<BNDataVariable>() - 8usize];
1953 ["Offset of field: BNDataVariable::address"]
1954 [::std::mem::offset_of!(BNDataVariable, address) - 0usize];
1955 ["Offset of field: BNDataVariable::type_"]
1956 [::std::mem::offset_of!(BNDataVariable, type_) - 8usize];
1957 ["Offset of field: BNDataVariable::autoDiscovered"]
1958 [::std::mem::offset_of!(BNDataVariable, autoDiscovered) - 16usize];
1959 ["Offset of field: BNDataVariable::typeConfidence"]
1960 [::std::mem::offset_of!(BNDataVariable, typeConfidence) - 17usize];
1961};
1962impl Default for BNDataVariable {
1963 fn default() -> Self {
1964 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1965 unsafe {
1966 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1967 s.assume_init()
1968 }
1969 }
1970}
1971#[repr(C)]
1972#[derive(Debug, Copy, Clone)]
1973pub struct BNDataVariableAndName {
1974 pub address: u64,
1975 pub type_: *mut BNType,
1976 pub name: *mut ::std::os::raw::c_char,
1977 pub autoDiscovered: bool,
1978 pub typeConfidence: u8,
1979}
1980#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1981const _: () = {
1982 ["Size of BNDataVariableAndName"][::std::mem::size_of::<BNDataVariableAndName>() - 32usize];
1983 ["Alignment of BNDataVariableAndName"]
1984 [::std::mem::align_of::<BNDataVariableAndName>() - 8usize];
1985 ["Offset of field: BNDataVariableAndName::address"]
1986 [::std::mem::offset_of!(BNDataVariableAndName, address) - 0usize];
1987 ["Offset of field: BNDataVariableAndName::type_"]
1988 [::std::mem::offset_of!(BNDataVariableAndName, type_) - 8usize];
1989 ["Offset of field: BNDataVariableAndName::name"]
1990 [::std::mem::offset_of!(BNDataVariableAndName, name) - 16usize];
1991 ["Offset of field: BNDataVariableAndName::autoDiscovered"]
1992 [::std::mem::offset_of!(BNDataVariableAndName, autoDiscovered) - 24usize];
1993 ["Offset of field: BNDataVariableAndName::typeConfidence"]
1994 [::std::mem::offset_of!(BNDataVariableAndName, typeConfidence) - 25usize];
1995};
1996impl Default for BNDataVariableAndName {
1997 fn default() -> Self {
1998 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1999 unsafe {
2000 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2001 s.assume_init()
2002 }
2003 }
2004}
2005#[repr(C)]
2006#[derive(Debug, Copy, Clone)]
2007pub struct BNDataVariableAndNameAndDebugParser {
2008 pub address: u64,
2009 pub type_: *mut BNType,
2010 pub name: *mut ::std::os::raw::c_char,
2011 pub parser: *mut ::std::os::raw::c_char,
2012 pub autoDiscovered: bool,
2013 pub typeConfidence: u8,
2014}
2015#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2016const _: () = {
2017 ["Size of BNDataVariableAndNameAndDebugParser"]
2018 [::std::mem::size_of::<BNDataVariableAndNameAndDebugParser>() - 40usize];
2019 ["Alignment of BNDataVariableAndNameAndDebugParser"]
2020 [::std::mem::align_of::<BNDataVariableAndNameAndDebugParser>() - 8usize];
2021 ["Offset of field: BNDataVariableAndNameAndDebugParser::address"]
2022 [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, address) - 0usize];
2023 ["Offset of field: BNDataVariableAndNameAndDebugParser::type_"]
2024 [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, type_) - 8usize];
2025 ["Offset of field: BNDataVariableAndNameAndDebugParser::name"]
2026 [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, name) - 16usize];
2027 ["Offset of field: BNDataVariableAndNameAndDebugParser::parser"]
2028 [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, parser) - 24usize];
2029 ["Offset of field: BNDataVariableAndNameAndDebugParser::autoDiscovered"]
2030 [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, autoDiscovered) - 32usize];
2031 ["Offset of field: BNDataVariableAndNameAndDebugParser::typeConfidence"]
2032 [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, typeConfidence) - 33usize];
2033};
2034impl Default for BNDataVariableAndNameAndDebugParser {
2035 fn default() -> Self {
2036 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2037 unsafe {
2038 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2039 s.assume_init()
2040 }
2041 }
2042}
2043#[repr(u8)]
2044#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2045pub enum BNMediumLevelILOperation {
2046 MLIL_NOP = 0,
2047 #[doc = " Not valid in SSA form (see MLIL_SET_VAR_SSA)"]
2048 MLIL_SET_VAR = 1,
2049 #[doc = " Not valid in SSA form (see MLIL_SET_VAR_FIELD)"]
2050 MLIL_SET_VAR_FIELD = 2,
2051 #[doc = " Not valid in SSA form (see MLIL_SET_VAR_SPLIT_SSA)"]
2052 MLIL_SET_VAR_SPLIT = 3,
2053 MLIL_ASSERT = 4,
2054 MLIL_FORCE_VER = 5,
2055 #[doc = " Not valid in SSA form (see MLIL_LOAD_SSA)"]
2056 MLIL_LOAD = 6,
2057 #[doc = " Not valid in SSA form (see MLIL_LOAD_STRUCT_SSA)"]
2058 MLIL_LOAD_STRUCT = 7,
2059 #[doc = " Not valid in SSA form (see MLIL_STORE_SSA)"]
2060 MLIL_STORE = 8,
2061 #[doc = " Not valid in SSA form (see MLIL_STORE_STRUCT_SSA)"]
2062 MLIL_STORE_STRUCT = 9,
2063 #[doc = " Not valid in SSA form (see MLIL_VAR_SSA)"]
2064 MLIL_VAR = 10,
2065 #[doc = " Not valid in SSA form (see MLIL_VAR_SSA_FIELD)"]
2066 MLIL_VAR_FIELD = 11,
2067 #[doc = " Not valid in SSA form (see MLIL_VAR_SPLIT_SSA)"]
2068 MLIL_VAR_SPLIT = 12,
2069 MLIL_ADDRESS_OF = 13,
2070 MLIL_ADDRESS_OF_FIELD = 14,
2071 MLIL_PASS_BY_REF = 15,
2072 MLIL_RETURN_BY_REF = 16,
2073 MLIL_CONST = 17,
2074 MLIL_CONST_DATA = 18,
2075 MLIL_CONST_PTR = 19,
2076 MLIL_EXTERN_PTR = 20,
2077 MLIL_FLOAT_CONST = 21,
2078 MLIL_IMPORT = 22,
2079 MLIL_ADD = 23,
2080 MLIL_ADC = 24,
2081 MLIL_SUB = 25,
2082 MLIL_SBB = 26,
2083 MLIL_AND = 27,
2084 MLIL_OR = 28,
2085 MLIL_XOR = 29,
2086 MLIL_LSL = 30,
2087 MLIL_LSR = 31,
2088 MLIL_ASR = 32,
2089 MLIL_ROL = 33,
2090 MLIL_RLC = 34,
2091 MLIL_ROR = 35,
2092 MLIL_RRC = 36,
2093 MLIL_MUL = 37,
2094 MLIL_MULU_DP = 38,
2095 MLIL_MULS_DP = 39,
2096 MLIL_DIVU = 40,
2097 MLIL_DIVU_DP = 41,
2098 MLIL_DIVS = 42,
2099 MLIL_DIVS_DP = 43,
2100 MLIL_MODU = 44,
2101 MLIL_MODU_DP = 45,
2102 MLIL_MODS = 46,
2103 MLIL_MODS_DP = 47,
2104 MLIL_NEG = 48,
2105 MLIL_NOT = 49,
2106 MLIL_SX = 50,
2107 MLIL_ZX = 51,
2108 MLIL_LOW_PART = 52,
2109 MLIL_JUMP = 53,
2110 MLIL_JUMP_TO = 54,
2111 #[doc = " Intermediate stages, does not appear in final forms"]
2112 MLIL_RET_HINT = 55,
2113 #[doc = " Not valid in SSA form (see MLIL_CALL_SSA)"]
2114 MLIL_CALL = 56,
2115 #[doc = " Not valid in SSA form (see MLIL_CALL_UNTYPED_SSA)"]
2116 MLIL_CALL_UNTYPED = 57,
2117 #[doc = " Only valid within MLIL_CALL, MLIL_SYSCALL, MLIL_TAILCALL family instructions"]
2118 MLIL_CALL_PARAM = 58,
2119 #[doc = " Only valid within the MLIL_CALL_PARAM or MLIL_CALL_PARAM_SSA instructions inside\n untyped call variants"]
2120 MLIL_SEPARATE_PARAM_LIST = 59,
2121 #[doc = " Only valid within the MLIL_CALL_PARAM, MLIL_CALL_PARAM_SSA, or\n MLIL_SEPARATE_PARAM_LIST instructions inside untyped call variants"]
2122 MLIL_SHARED_PARAM_SLOT = 60,
2123 #[doc = " Only valid within MLIL_CALL, MLIL_SYSCALL, MLIL_TAILCALL family instructions"]
2124 MLIL_VAR_OUTPUT = 61,
2125 #[doc = " Only valid within MLIL_CALL, MLIL_SYSCALL, MLIL_TAILCALL family instructions"]
2126 MLIL_VAR_OUTPUT_FIELD = 62,
2127 #[doc = " Only valid within MLIL_CALL, MLIL_SYSCALL, MLIL_TAILCALL family instructions"]
2128 MLIL_STORE_OUTPUT = 63,
2129 MLIL_RET = 64,
2130 MLIL_NORET = 65,
2131 MLIL_IF = 66,
2132 MLIL_GOTO = 67,
2133 MLIL_CMP_E = 68,
2134 MLIL_CMP_NE = 69,
2135 MLIL_CMP_SLT = 70,
2136 MLIL_CMP_ULT = 71,
2137 MLIL_CMP_SLE = 72,
2138 MLIL_CMP_ULE = 73,
2139 MLIL_CMP_SGE = 74,
2140 MLIL_CMP_UGE = 75,
2141 MLIL_CMP_SGT = 76,
2142 MLIL_CMP_UGT = 77,
2143 MLIL_TEST_BIT = 78,
2144 MLIL_BOOL_TO_INT = 79,
2145 MLIL_ADD_OVERFLOW = 80,
2146 #[doc = " Not valid in SSA form (see MLIL_SYSCALL_SSA)"]
2147 MLIL_SYSCALL = 81,
2148 #[doc = " Not valid in SSA form (see MLIL_SYSCALL_UNTYPED_SSA)"]
2149 MLIL_SYSCALL_UNTYPED = 82,
2150 #[doc = " Not valid in SSA form (see MLIL_TAILCALL_SSA)"]
2151 MLIL_TAILCALL = 83,
2152 #[doc = " Not valid in SSA form (see MLIL_TAILCALL_UNTYPED_SSA)"]
2153 MLIL_TAILCALL_UNTYPED = 84,
2154 #[doc = " Not valid in SSA form (see MLIL_INTRINSIC_SSA)"]
2155 MLIL_INTRINSIC = 85,
2156 #[doc = " Not valid in SSA from (see MLIL_FREE_VAR_SLOT_SSA)"]
2157 MLIL_FREE_VAR_SLOT = 86,
2158 MLIL_BP = 87,
2159 MLIL_TRAP = 88,
2160 MLIL_UNDEF = 89,
2161 MLIL_UNIMPL = 90,
2162 MLIL_UNIMPL_MEM = 91,
2163 #[doc = " Floating point"]
2164 MLIL_FADD = 92,
2165 #[doc = " Floating point"]
2166 MLIL_FSUB = 93,
2167 #[doc = " Floating point"]
2168 MLIL_FMUL = 94,
2169 #[doc = " Floating point"]
2170 MLIL_FDIV = 95,
2171 #[doc = " Floating point"]
2172 MLIL_FSQRT = 96,
2173 #[doc = " Floating point"]
2174 MLIL_FNEG = 97,
2175 #[doc = " Floating point"]
2176 MLIL_FABS = 98,
2177 #[doc = " Floating point"]
2178 MLIL_FLOAT_TO_INT = 99,
2179 #[doc = " Floating point"]
2180 MLIL_INT_TO_FLOAT = 100,
2181 #[doc = " Floating point"]
2182 MLIL_FLOAT_CONV = 101,
2183 #[doc = " Floating point"]
2184 MLIL_ROUND_TO_INT = 102,
2185 #[doc = " Floating point"]
2186 MLIL_FLOOR = 103,
2187 #[doc = " Floating point"]
2188 MLIL_CEIL = 104,
2189 #[doc = " Floating point"]
2190 MLIL_FTRUNC = 105,
2191 #[doc = " Floating point"]
2192 MLIL_FCMP_E = 106,
2193 #[doc = " Floating point"]
2194 MLIL_FCMP_NE = 107,
2195 #[doc = " Floating point"]
2196 MLIL_FCMP_LT = 108,
2197 #[doc = " Floating point"]
2198 MLIL_FCMP_LE = 109,
2199 #[doc = " Floating point"]
2200 MLIL_FCMP_GE = 110,
2201 #[doc = " Floating point"]
2202 MLIL_FCMP_GT = 111,
2203 #[doc = " Floating point"]
2204 MLIL_FCMP_O = 112,
2205 #[doc = " Floating point"]
2206 MLIL_FCMP_UO = 113,
2207 #[doc = " The following instructions are only used in SSA form"]
2208 MLIL_SET_VAR_SSA = 114,
2209 #[doc = " The following instructions are only used in SSA form"]
2210 MLIL_SET_VAR_SSA_FIELD = 115,
2211 #[doc = " The following instructions are only used in SSA form"]
2212 MLIL_SET_VAR_SPLIT_SSA = 116,
2213 #[doc = " The following instructions are only used in SSA form"]
2214 MLIL_SET_VAR_ALIASED = 117,
2215 #[doc = " The following instructions are only used in SSA form"]
2216 MLIL_SET_VAR_ALIASED_FIELD = 118,
2217 #[doc = " The following instructions are only used in SSA form"]
2218 MLIL_VAR_SSA = 119,
2219 #[doc = " The following instructions are only used in SSA form"]
2220 MLIL_VAR_SSA_FIELD = 120,
2221 #[doc = " The following instructions are only used in SSA form"]
2222 MLIL_VAR_ALIASED = 121,
2223 #[doc = " The following instructions are only used in SSA form"]
2224 MLIL_VAR_ALIASED_FIELD = 122,
2225 #[doc = " The following instructions are only used in SSA form"]
2226 MLIL_VAR_SPLIT_SSA = 123,
2227 #[doc = " The following instructions are only used in SSA form"]
2228 MLIL_ASSERT_SSA = 124,
2229 #[doc = " The following instructions are only used in SSA form"]
2230 MLIL_FORCE_VER_SSA = 125,
2231 #[doc = " The following instructions are only used in SSA form"]
2232 MLIL_CALL_SSA = 126,
2233 #[doc = " The following instructions are only used in SSA form"]
2234 MLIL_CALL_UNTYPED_SSA = 127,
2235 #[doc = " The following instructions are only used in SSA form"]
2236 MLIL_SYSCALL_SSA = 128,
2237 #[doc = " The following instructions are only used in SSA form"]
2238 MLIL_SYSCALL_UNTYPED_SSA = 129,
2239 #[doc = " The following instructions are only used in SSA form"]
2240 MLIL_TAILCALL_SSA = 130,
2241 #[doc = " The following instructions are only used in SSA form"]
2242 MLIL_TAILCALL_UNTYPED_SSA = 131,
2243 #[doc = " Only valid within the MLIL_CALL_SSA, MLIL_SYSCALL_SSA, MLIL_TAILCALL_SSA, MLIL_INTRINSIC_SSA family\n instructions"]
2244 MLIL_CALL_PARAM_SSA = 132,
2245 #[doc = " Only valid within the MLIL_CALL_SSA or MLIL_SYSCALL_SSA, MLIL_TAILCALL_SSA family\n instructions"]
2246 MLIL_CALL_OUTPUT_SSA = 133,
2247 #[doc = " Only valid within the MLIL_CALL_OUTPUT_SSA instruction"]
2248 MLIL_VAR_OUTPUT_SSA = 134,
2249 #[doc = " Only valid within the MLIL_CALL_OUTPUT_SSA instruction"]
2250 MLIL_VAR_OUTPUT_SSA_FIELD = 135,
2251 #[doc = " Only valid within the MLIL_CALL_OUTPUT_SSA instruction"]
2252 MLIL_VAR_OUTPUT_ALIASED = 136,
2253 #[doc = " Only valid within the MLIL_CALL_OUTPUT_SSA instruction"]
2254 MLIL_VAR_OUTPUT_ALIASED_FIELD = 137,
2255 #[doc = " Only valid within the MLIL_MEMORY_INTRINSIC_SSA instruction"]
2256 MLIL_MEMORY_INTRINSIC_OUTPUT_SSA = 138,
2257 MLIL_LOAD_SSA = 139,
2258 MLIL_LOAD_STRUCT_SSA = 140,
2259 MLIL_STORE_SSA = 141,
2260 MLIL_STORE_STRUCT_SSA = 142,
2261 MLIL_INTRINSIC_SSA = 143,
2262 MLIL_MEMORY_INTRINSIC_SSA = 144,
2263 MLIL_FREE_VAR_SLOT_SSA = 145,
2264 MLIL_VAR_PHI = 146,
2265 MLIL_MEM_PHI = 147,
2266 #[doc = " Must be expanded by a future workflow step, used temporarily to insert instructions"]
2267 MLIL_BLOCK_TO_EXPAND = 148,
2268 #[doc = " Reverse byte order of the whole value"]
2269 MLIL_BSWAP = 149,
2270 #[doc = " Population count (number of set bits)"]
2271 MLIL_POPCNT = 150,
2272 #[doc = " Count leading zero bits; clz(0) == 8 * size"]
2273 MLIL_CLZ = 151,
2274 #[doc = " Count trailing zero bits; ctz(0) == 8 * size"]
2275 MLIL_CTZ = 152,
2276 #[doc = " Reverse bit order of the whole value"]
2277 MLIL_RBIT = 153,
2278 #[doc = " Count leading sign bits; number of bits below the sign bit that match it"]
2279 MLIL_CLS = 154,
2280 #[doc = " Signed minimum of left and right"]
2281 MLIL_MINS = 155,
2282 #[doc = " Signed maximum of left and right"]
2283 MLIL_MAXS = 156,
2284 #[doc = " Unsigned minimum of left and right"]
2285 MLIL_MINU = 157,
2286 #[doc = " Unsigned maximum of left and right"]
2287 MLIL_MAXU = 158,
2288 #[doc = " Signed absolute value of src; abs(INT_MIN) == INT_MIN"]
2289 MLIL_ABS = 159,
2290}
2291#[repr(C)]
2292#[derive(Debug, Copy, Clone)]
2293pub struct BNMediumLevelILInstruction {
2294 pub operation: BNMediumLevelILOperation,
2295 pub attributes: u32,
2296 pub sourceOperand: u32,
2297 pub size: usize,
2298 pub operands: [u64; 5usize],
2299 pub address: u64,
2300}
2301#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2302const _: () = {
2303 ["Size of BNMediumLevelILInstruction"]
2304 [::std::mem::size_of::<BNMediumLevelILInstruction>() - 72usize];
2305 ["Alignment of BNMediumLevelILInstruction"]
2306 [::std::mem::align_of::<BNMediumLevelILInstruction>() - 8usize];
2307 ["Offset of field: BNMediumLevelILInstruction::operation"]
2308 [::std::mem::offset_of!(BNMediumLevelILInstruction, operation) - 0usize];
2309 ["Offset of field: BNMediumLevelILInstruction::attributes"]
2310 [::std::mem::offset_of!(BNMediumLevelILInstruction, attributes) - 4usize];
2311 ["Offset of field: BNMediumLevelILInstruction::sourceOperand"]
2312 [::std::mem::offset_of!(BNMediumLevelILInstruction, sourceOperand) - 8usize];
2313 ["Offset of field: BNMediumLevelILInstruction::size"]
2314 [::std::mem::offset_of!(BNMediumLevelILInstruction, size) - 16usize];
2315 ["Offset of field: BNMediumLevelILInstruction::operands"]
2316 [::std::mem::offset_of!(BNMediumLevelILInstruction, operands) - 24usize];
2317 ["Offset of field: BNMediumLevelILInstruction::address"]
2318 [::std::mem::offset_of!(BNMediumLevelILInstruction, address) - 64usize];
2319};
2320impl Default for BNMediumLevelILInstruction {
2321 fn default() -> Self {
2322 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2323 unsafe {
2324 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2325 s.assume_init()
2326 }
2327 }
2328}
2329#[repr(C)]
2330#[derive(Debug, Default, Copy, Clone)]
2331pub struct BNMediumLevelILLabel {
2332 pub resolved: bool,
2333 pub ref_: usize,
2334 pub operand: usize,
2335}
2336#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2337const _: () = {
2338 ["Size of BNMediumLevelILLabel"][::std::mem::size_of::<BNMediumLevelILLabel>() - 24usize];
2339 ["Alignment of BNMediumLevelILLabel"][::std::mem::align_of::<BNMediumLevelILLabel>() - 8usize];
2340 ["Offset of field: BNMediumLevelILLabel::resolved"]
2341 [::std::mem::offset_of!(BNMediumLevelILLabel, resolved) - 0usize];
2342 ["Offset of field: BNMediumLevelILLabel::ref_"]
2343 [::std::mem::offset_of!(BNMediumLevelILLabel, ref_) - 8usize];
2344 ["Offset of field: BNMediumLevelILLabel::operand"]
2345 [::std::mem::offset_of!(BNMediumLevelILLabel, operand) - 16usize];
2346};
2347#[repr(u8)]
2348#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2349pub enum BNVariableSourceType {
2350 StackVariableSourceType = 0,
2351 RegisterVariableSourceType = 1,
2352 FlagVariableSourceType = 2,
2353 CompositeReturnValueSourceType = 3,
2354 CompositeParameterSourceType = 4,
2355}
2356#[repr(C)]
2357#[derive(Debug, Copy, Clone)]
2358pub struct BNVariable {
2359 pub type_: BNVariableSourceType,
2360 pub index: u32,
2361 pub storage: i64,
2362}
2363#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2364const _: () = {
2365 ["Size of BNVariable"][::std::mem::size_of::<BNVariable>() - 16usize];
2366 ["Alignment of BNVariable"][::std::mem::align_of::<BNVariable>() - 8usize];
2367 ["Offset of field: BNVariable::type_"][::std::mem::offset_of!(BNVariable, type_) - 0usize];
2368 ["Offset of field: BNVariable::index"][::std::mem::offset_of!(BNVariable, index) - 4usize];
2369 ["Offset of field: BNVariable::storage"][::std::mem::offset_of!(BNVariable, storage) - 8usize];
2370};
2371impl Default for BNVariable {
2372 fn default() -> Self {
2373 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2374 unsafe {
2375 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2376 s.assume_init()
2377 }
2378 }
2379}
2380#[repr(u8)]
2381#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2382pub enum BNHighLevelILOperation {
2383 HLIL_NOP = 0,
2384 HLIL_BLOCK = 1,
2385 HLIL_IF = 2,
2386 HLIL_WHILE = 3,
2387 HLIL_DO_WHILE = 4,
2388 HLIL_FOR = 5,
2389 HLIL_SWITCH = 6,
2390 HLIL_CASE = 7,
2391 HLIL_BREAK = 8,
2392 HLIL_CONTINUE = 9,
2393 HLIL_JUMP = 10,
2394 HLIL_RET = 11,
2395 HLIL_NORET = 12,
2396 HLIL_GOTO = 13,
2397 HLIL_LABEL = 14,
2398 HLIL_VAR_DECLARE = 15,
2399 HLIL_VAR_INIT = 16,
2400 HLIL_ASSIGN = 17,
2401 HLIL_ASSIGN_UNPACK = 18,
2402 HLIL_FORCE_VER = 19,
2403 HLIL_ASSERT = 20,
2404 HLIL_VAR = 21,
2405 HLIL_STRUCT_FIELD = 22,
2406 HLIL_ARRAY_INDEX = 23,
2407 HLIL_SPLIT = 24,
2408 HLIL_DEREF = 25,
2409 HLIL_DEREF_FIELD = 26,
2410 HLIL_ADDRESS_OF = 27,
2411 HLIL_PASS_BY_REF = 28,
2412 HLIL_RETURN_BY_REF = 29,
2413 HLIL_CONST = 30,
2414 HLIL_CONST_DATA = 31,
2415 HLIL_CONST_PTR = 32,
2416 HLIL_EXTERN_PTR = 33,
2417 HLIL_FLOAT_CONST = 34,
2418 HLIL_IMPORT = 35,
2419 HLIL_ADD = 36,
2420 HLIL_ADC = 37,
2421 HLIL_SUB = 38,
2422 HLIL_SBB = 39,
2423 HLIL_AND = 40,
2424 HLIL_OR = 41,
2425 HLIL_XOR = 42,
2426 HLIL_LSL = 43,
2427 HLIL_LSR = 44,
2428 HLIL_ASR = 45,
2429 HLIL_ROL = 46,
2430 HLIL_RLC = 47,
2431 HLIL_ROR = 48,
2432 HLIL_RRC = 49,
2433 HLIL_MUL = 50,
2434 HLIL_MULU_DP = 51,
2435 HLIL_MULS_DP = 52,
2436 HLIL_DIVU = 53,
2437 HLIL_DIVU_DP = 54,
2438 HLIL_DIVS = 55,
2439 HLIL_DIVS_DP = 56,
2440 HLIL_MODU = 57,
2441 HLIL_MODU_DP = 58,
2442 HLIL_MODS = 59,
2443 HLIL_MODS_DP = 60,
2444 HLIL_NEG = 61,
2445 HLIL_NOT = 62,
2446 HLIL_SX = 63,
2447 HLIL_ZX = 64,
2448 HLIL_LOW_PART = 65,
2449 HLIL_CALL = 66,
2450 HLIL_CMP_E = 67,
2451 HLIL_CMP_NE = 68,
2452 HLIL_CMP_SLT = 69,
2453 HLIL_CMP_ULT = 70,
2454 HLIL_CMP_SLE = 71,
2455 HLIL_CMP_ULE = 72,
2456 HLIL_CMP_SGE = 73,
2457 HLIL_CMP_UGE = 74,
2458 HLIL_CMP_SGT = 75,
2459 HLIL_CMP_UGT = 76,
2460 HLIL_TEST_BIT = 77,
2461 HLIL_BOOL_TO_INT = 78,
2462 HLIL_ADD_OVERFLOW = 79,
2463 HLIL_SYSCALL = 80,
2464 HLIL_TAILCALL = 81,
2465 HLIL_INTRINSIC = 82,
2466 HLIL_BP = 83,
2467 HLIL_TRAP = 84,
2468 HLIL_UNDEF = 85,
2469 HLIL_UNIMPL = 86,
2470 HLIL_UNIMPL_MEM = 87,
2471 #[doc = " Floating point"]
2472 HLIL_FADD = 88,
2473 #[doc = " Floating point"]
2474 HLIL_FSUB = 89,
2475 #[doc = " Floating point"]
2476 HLIL_FMUL = 90,
2477 #[doc = " Floating point"]
2478 HLIL_FDIV = 91,
2479 #[doc = " Floating point"]
2480 HLIL_FSQRT = 92,
2481 #[doc = " Floating point"]
2482 HLIL_FNEG = 93,
2483 #[doc = " Floating point"]
2484 HLIL_FABS = 94,
2485 #[doc = " Floating point"]
2486 HLIL_FLOAT_TO_INT = 95,
2487 #[doc = " Floating point"]
2488 HLIL_INT_TO_FLOAT = 96,
2489 #[doc = " Floating point"]
2490 HLIL_FLOAT_CONV = 97,
2491 #[doc = " Floating point"]
2492 HLIL_ROUND_TO_INT = 98,
2493 #[doc = " Floating point"]
2494 HLIL_FLOOR = 99,
2495 #[doc = " Floating point"]
2496 HLIL_CEIL = 100,
2497 #[doc = " Floating point"]
2498 HLIL_FTRUNC = 101,
2499 #[doc = " Floating point"]
2500 HLIL_FCMP_E = 102,
2501 #[doc = " Floating point"]
2502 HLIL_FCMP_NE = 103,
2503 #[doc = " Floating point"]
2504 HLIL_FCMP_LT = 104,
2505 #[doc = " Floating point"]
2506 HLIL_FCMP_LE = 105,
2507 #[doc = " Floating point"]
2508 HLIL_FCMP_GE = 106,
2509 #[doc = " Floating point"]
2510 HLIL_FCMP_GT = 107,
2511 #[doc = " Floating point"]
2512 HLIL_FCMP_O = 108,
2513 #[doc = " Floating point"]
2514 HLIL_FCMP_UO = 109,
2515 #[doc = " Unreachable hint, typically used in switch statements that analysis knows\n has an unreachable default."]
2516 HLIL_UNREACHABLE = 110,
2517 #[doc = " The following instructions are only used in SSA form"]
2518 HLIL_WHILE_SSA = 111,
2519 #[doc = " The following instructions are only used in SSA form"]
2520 HLIL_DO_WHILE_SSA = 112,
2521 #[doc = " The following instructions are only used in SSA form"]
2522 HLIL_FOR_SSA = 113,
2523 #[doc = " The following instructions are only used in SSA form"]
2524 HLIL_VAR_INIT_SSA = 114,
2525 #[doc = " The following instructions are only used in SSA form"]
2526 HLIL_ASSIGN_MEM_SSA = 115,
2527 #[doc = " The following instructions are only used in SSA form"]
2528 HLIL_ASSIGN_UNPACK_MEM_SSA = 116,
2529 #[doc = " The following instructions are only used in SSA form"]
2530 HLIL_FORCE_VER_SSA = 117,
2531 #[doc = " The following instructions are only used in SSA form"]
2532 HLIL_ASSERT_SSA = 118,
2533 #[doc = " The following instructions are only used in SSA form"]
2534 HLIL_VAR_SSA = 119,
2535 #[doc = " The following instructions are only used in SSA form"]
2536 HLIL_ARRAY_INDEX_SSA = 120,
2537 #[doc = " The following instructions are only used in SSA form"]
2538 HLIL_DEREF_SSA = 121,
2539 #[doc = " The following instructions are only used in SSA form"]
2540 HLIL_DEREF_FIELD_SSA = 122,
2541 #[doc = " The following instructions are only used in SSA form"]
2542 HLIL_CALL_SSA = 123,
2543 #[doc = " The following instructions are only used in SSA form"]
2544 HLIL_SYSCALL_SSA = 124,
2545 #[doc = " The following instructions are only used in SSA form"]
2546 HLIL_INTRINSIC_SSA = 125,
2547 #[doc = " The following instructions are only used in SSA form"]
2548 HLIL_VAR_PHI = 126,
2549 #[doc = " The following instructions are only used in SSA form"]
2550 HLIL_MEM_PHI = 127,
2551 #[doc = " Reverse byte order of the whole value"]
2552 HLIL_BSWAP = 128,
2553 #[doc = " Population count (number of set bits)"]
2554 HLIL_POPCNT = 129,
2555 #[doc = " Count leading zero bits; clz(0) == 8 * size"]
2556 HLIL_CLZ = 130,
2557 #[doc = " Count trailing zero bits; ctz(0) == 8 * size"]
2558 HLIL_CTZ = 131,
2559 #[doc = " Reverse bit order of the whole value"]
2560 HLIL_RBIT = 132,
2561 #[doc = " Count leading sign bits; number of bits below the sign bit that match it"]
2562 HLIL_CLS = 133,
2563 #[doc = " Signed minimum of left and right"]
2564 HLIL_MINS = 134,
2565 #[doc = " Signed maximum of left and right"]
2566 HLIL_MAXS = 135,
2567 #[doc = " Unsigned minimum of left and right"]
2568 HLIL_MINU = 136,
2569 #[doc = " Unsigned maximum of left and right"]
2570 HLIL_MAXU = 137,
2571 #[doc = " Signed absolute value of src; abs(INT_MIN) == INT_MIN"]
2572 HLIL_ABS = 138,
2573}
2574#[repr(C)]
2575#[derive(Debug, Copy, Clone)]
2576pub struct BNHighLevelILInstruction {
2577 pub operation: BNHighLevelILOperation,
2578 pub attributes: u32,
2579 pub sourceOperand: u32,
2580 pub size: usize,
2581 pub operands: [u64; 5usize],
2582 pub address: u64,
2583 pub parent: usize,
2584}
2585#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2586const _: () = {
2587 ["Size of BNHighLevelILInstruction"]
2588 [::std::mem::size_of::<BNHighLevelILInstruction>() - 80usize];
2589 ["Alignment of BNHighLevelILInstruction"]
2590 [::std::mem::align_of::<BNHighLevelILInstruction>() - 8usize];
2591 ["Offset of field: BNHighLevelILInstruction::operation"]
2592 [::std::mem::offset_of!(BNHighLevelILInstruction, operation) - 0usize];
2593 ["Offset of field: BNHighLevelILInstruction::attributes"]
2594 [::std::mem::offset_of!(BNHighLevelILInstruction, attributes) - 4usize];
2595 ["Offset of field: BNHighLevelILInstruction::sourceOperand"]
2596 [::std::mem::offset_of!(BNHighLevelILInstruction, sourceOperand) - 8usize];
2597 ["Offset of field: BNHighLevelILInstruction::size"]
2598 [::std::mem::offset_of!(BNHighLevelILInstruction, size) - 16usize];
2599 ["Offset of field: BNHighLevelILInstruction::operands"]
2600 [::std::mem::offset_of!(BNHighLevelILInstruction, operands) - 24usize];
2601 ["Offset of field: BNHighLevelILInstruction::address"]
2602 [::std::mem::offset_of!(BNHighLevelILInstruction, address) - 64usize];
2603 ["Offset of field: BNHighLevelILInstruction::parent"]
2604 [::std::mem::offset_of!(BNHighLevelILInstruction, parent) - 72usize];
2605};
2606impl Default for BNHighLevelILInstruction {
2607 fn default() -> Self {
2608 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2609 unsafe {
2610 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2611 s.assume_init()
2612 }
2613 }
2614}
2615#[doc = " Callbacks"]
2616#[repr(C)]
2617#[derive(Debug, Copy, Clone)]
2618pub struct BNLogListener {
2619 pub context: *mut ::std::os::raw::c_void,
2620 pub log: ::std::option::Option<
2621 unsafe extern "C" fn(
2622 ctxt: *mut ::std::os::raw::c_void,
2623 sessionId: usize,
2624 level: BNLogLevel,
2625 msg: *const ::std::os::raw::c_char,
2626 logger_name: *const ::std::os::raw::c_char,
2627 tid: usize,
2628 ),
2629 >,
2630 pub logWithStackTrace: ::std::option::Option<
2631 unsafe extern "C" fn(
2632 ctxt: *mut ::std::os::raw::c_void,
2633 sessionId: usize,
2634 level: BNLogLevel,
2635 stackTrace: *const ::std::os::raw::c_char,
2636 msg: *const ::std::os::raw::c_char,
2637 logger_name: *const ::std::os::raw::c_char,
2638 tid: usize,
2639 ),
2640 >,
2641 pub close: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
2642 pub getLogLevel: ::std::option::Option<
2643 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> BNLogLevel,
2644 >,
2645}
2646#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2647const _: () = {
2648 ["Size of BNLogListener"][::std::mem::size_of::<BNLogListener>() - 40usize];
2649 ["Alignment of BNLogListener"][::std::mem::align_of::<BNLogListener>() - 8usize];
2650 ["Offset of field: BNLogListener::context"]
2651 [::std::mem::offset_of!(BNLogListener, context) - 0usize];
2652 ["Offset of field: BNLogListener::log"][::std::mem::offset_of!(BNLogListener, log) - 8usize];
2653 ["Offset of field: BNLogListener::logWithStackTrace"]
2654 [::std::mem::offset_of!(BNLogListener, logWithStackTrace) - 16usize];
2655 ["Offset of field: BNLogListener::close"]
2656 [::std::mem::offset_of!(BNLogListener, close) - 24usize];
2657 ["Offset of field: BNLogListener::getLogLevel"]
2658 [::std::mem::offset_of!(BNLogListener, getLogLevel) - 32usize];
2659};
2660impl Default for BNLogListener {
2661 fn default() -> Self {
2662 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2663 unsafe {
2664 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2665 s.assume_init()
2666 }
2667 }
2668}
2669#[repr(C)]
2670#[derive(Debug, Copy, Clone)]
2671pub struct BNNavigationHandler {
2672 pub context: *mut ::std::os::raw::c_void,
2673 pub getCurrentView: ::std::option::Option<
2674 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
2675 >,
2676 pub getCurrentOffset:
2677 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u64>,
2678 pub navigate: ::std::option::Option<
2679 unsafe extern "C" fn(
2680 ctxt: *mut ::std::os::raw::c_void,
2681 view: *const ::std::os::raw::c_char,
2682 offset: u64,
2683 ) -> bool,
2684 >,
2685}
2686#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2687const _: () = {
2688 ["Size of BNNavigationHandler"][::std::mem::size_of::<BNNavigationHandler>() - 32usize];
2689 ["Alignment of BNNavigationHandler"][::std::mem::align_of::<BNNavigationHandler>() - 8usize];
2690 ["Offset of field: BNNavigationHandler::context"]
2691 [::std::mem::offset_of!(BNNavigationHandler, context) - 0usize];
2692 ["Offset of field: BNNavigationHandler::getCurrentView"]
2693 [::std::mem::offset_of!(BNNavigationHandler, getCurrentView) - 8usize];
2694 ["Offset of field: BNNavigationHandler::getCurrentOffset"]
2695 [::std::mem::offset_of!(BNNavigationHandler, getCurrentOffset) - 16usize];
2696 ["Offset of field: BNNavigationHandler::navigate"]
2697 [::std::mem::offset_of!(BNNavigationHandler, navigate) - 24usize];
2698};
2699impl Default for BNNavigationHandler {
2700 fn default() -> Self {
2701 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2702 unsafe {
2703 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2704 s.assume_init()
2705 }
2706 }
2707}
2708#[repr(C)]
2709#[derive(Debug, Copy, Clone)]
2710pub struct BNNameSpace {
2711 pub name: *mut *mut ::std::os::raw::c_char,
2712 pub join: *mut ::std::os::raw::c_char,
2713 pub nameCount: usize,
2714}
2715#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2716const _: () = {
2717 ["Size of BNNameSpace"][::std::mem::size_of::<BNNameSpace>() - 24usize];
2718 ["Alignment of BNNameSpace"][::std::mem::align_of::<BNNameSpace>() - 8usize];
2719 ["Offset of field: BNNameSpace::name"][::std::mem::offset_of!(BNNameSpace, name) - 0usize];
2720 ["Offset of field: BNNameSpace::join"][::std::mem::offset_of!(BNNameSpace, join) - 8usize];
2721 ["Offset of field: BNNameSpace::nameCount"]
2722 [::std::mem::offset_of!(BNNameSpace, nameCount) - 16usize];
2723};
2724impl Default for BNNameSpace {
2725 fn default() -> Self {
2726 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2727 unsafe {
2728 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2729 s.assume_init()
2730 }
2731 }
2732}
2733#[repr(C)]
2734#[derive(Debug, Copy, Clone)]
2735pub struct BNQualifiedName {
2736 pub name: *mut *mut ::std::os::raw::c_char,
2737 pub join: *mut ::std::os::raw::c_char,
2738 pub nameCount: usize,
2739}
2740#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2741const _: () = {
2742 ["Size of BNQualifiedName"][::std::mem::size_of::<BNQualifiedName>() - 24usize];
2743 ["Alignment of BNQualifiedName"][::std::mem::align_of::<BNQualifiedName>() - 8usize];
2744 ["Offset of field: BNQualifiedName::name"]
2745 [::std::mem::offset_of!(BNQualifiedName, name) - 0usize];
2746 ["Offset of field: BNQualifiedName::join"]
2747 [::std::mem::offset_of!(BNQualifiedName, join) - 8usize];
2748 ["Offset of field: BNQualifiedName::nameCount"]
2749 [::std::mem::offset_of!(BNQualifiedName, nameCount) - 16usize];
2750};
2751impl Default for BNQualifiedName {
2752 fn default() -> Self {
2753 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2754 unsafe {
2755 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2756 s.assume_init()
2757 }
2758 }
2759}
2760#[repr(u8)]
2761#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2762pub enum BNDerivedStringLocationType {
2763 DataBackedStringLocation = 0,
2764 CodeStringLocation = 1,
2765}
2766#[repr(C)]
2767#[derive(Debug, Copy, Clone)]
2768pub struct BNDerivedStringLocation {
2769 pub locationType: BNDerivedStringLocationType,
2770 pub addr: u64,
2771 pub len: u64,
2772}
2773#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2774const _: () = {
2775 ["Size of BNDerivedStringLocation"][::std::mem::size_of::<BNDerivedStringLocation>() - 24usize];
2776 ["Alignment of BNDerivedStringLocation"]
2777 [::std::mem::align_of::<BNDerivedStringLocation>() - 8usize];
2778 ["Offset of field: BNDerivedStringLocation::locationType"]
2779 [::std::mem::offset_of!(BNDerivedStringLocation, locationType) - 0usize];
2780 ["Offset of field: BNDerivedStringLocation::addr"]
2781 [::std::mem::offset_of!(BNDerivedStringLocation, addr) - 8usize];
2782 ["Offset of field: BNDerivedStringLocation::len"]
2783 [::std::mem::offset_of!(BNDerivedStringLocation, len) - 16usize];
2784};
2785impl Default for BNDerivedStringLocation {
2786 fn default() -> Self {
2787 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2788 unsafe {
2789 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2790 s.assume_init()
2791 }
2792 }
2793}
2794#[repr(C)]
2795#[derive(Debug, Copy, Clone)]
2796pub struct BNDerivedString {
2797 pub value: *mut BNStringRef,
2798 pub locationValid: bool,
2799 pub location: BNDerivedStringLocation,
2800 pub customType: *mut BNCustomStringType,
2801}
2802#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2803const _: () = {
2804 ["Size of BNDerivedString"][::std::mem::size_of::<BNDerivedString>() - 48usize];
2805 ["Alignment of BNDerivedString"][::std::mem::align_of::<BNDerivedString>() - 8usize];
2806 ["Offset of field: BNDerivedString::value"]
2807 [::std::mem::offset_of!(BNDerivedString, value) - 0usize];
2808 ["Offset of field: BNDerivedString::locationValid"]
2809 [::std::mem::offset_of!(BNDerivedString, locationValid) - 8usize];
2810 ["Offset of field: BNDerivedString::location"]
2811 [::std::mem::offset_of!(BNDerivedString, location) - 16usize];
2812 ["Offset of field: BNDerivedString::customType"]
2813 [::std::mem::offset_of!(BNDerivedString, customType) - 40usize];
2814};
2815impl Default for BNDerivedString {
2816 fn default() -> Self {
2817 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2818 unsafe {
2819 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2820 s.assume_init()
2821 }
2822 }
2823}
2824#[repr(C)]
2825#[derive(Debug, Copy, Clone)]
2826pub struct BNBinaryDataNotification {
2827 pub context: *mut ::std::os::raw::c_void,
2828 pub notificationBarrier: ::std::option::Option<
2829 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView) -> u64,
2830 >,
2831 pub dataWritten: ::std::option::Option<
2832 unsafe extern "C" fn(
2833 ctxt: *mut ::std::os::raw::c_void,
2834 view: *mut BNBinaryView,
2835 offset: u64,
2836 len: usize,
2837 ),
2838 >,
2839 pub dataInserted: ::std::option::Option<
2840 unsafe extern "C" fn(
2841 ctxt: *mut ::std::os::raw::c_void,
2842 view: *mut BNBinaryView,
2843 offset: u64,
2844 len: usize,
2845 ),
2846 >,
2847 pub dataRemoved: ::std::option::Option<
2848 unsafe extern "C" fn(
2849 ctxt: *mut ::std::os::raw::c_void,
2850 view: *mut BNBinaryView,
2851 offset: u64,
2852 len: u64,
2853 ),
2854 >,
2855 pub functionAdded: ::std::option::Option<
2856 unsafe extern "C" fn(
2857 ctxt: *mut ::std::os::raw::c_void,
2858 view: *mut BNBinaryView,
2859 func: *mut BNFunction,
2860 ),
2861 >,
2862 pub functionRemoved: ::std::option::Option<
2863 unsafe extern "C" fn(
2864 ctxt: *mut ::std::os::raw::c_void,
2865 view: *mut BNBinaryView,
2866 func: *mut BNFunction,
2867 ),
2868 >,
2869 pub functionUpdated: ::std::option::Option<
2870 unsafe extern "C" fn(
2871 ctxt: *mut ::std::os::raw::c_void,
2872 view: *mut BNBinaryView,
2873 func: *mut BNFunction,
2874 ),
2875 >,
2876 pub functionUpdateRequested: ::std::option::Option<
2877 unsafe extern "C" fn(
2878 ctxt: *mut ::std::os::raw::c_void,
2879 view: *mut BNBinaryView,
2880 func: *mut BNFunction,
2881 ),
2882 >,
2883 pub dataVariableAdded: ::std::option::Option<
2884 unsafe extern "C" fn(
2885 ctxt: *mut ::std::os::raw::c_void,
2886 view: *mut BNBinaryView,
2887 var: *mut BNDataVariable,
2888 ),
2889 >,
2890 pub dataVariableRemoved: ::std::option::Option<
2891 unsafe extern "C" fn(
2892 ctxt: *mut ::std::os::raw::c_void,
2893 view: *mut BNBinaryView,
2894 var: *mut BNDataVariable,
2895 ),
2896 >,
2897 pub dataVariableUpdated: ::std::option::Option<
2898 unsafe extern "C" fn(
2899 ctxt: *mut ::std::os::raw::c_void,
2900 view: *mut BNBinaryView,
2901 var: *mut BNDataVariable,
2902 ),
2903 >,
2904 pub dataMetadataUpdated: ::std::option::Option<
2905 unsafe extern "C" fn(
2906 ctxt: *mut ::std::os::raw::c_void,
2907 view: *mut BNBinaryView,
2908 offset: u64,
2909 ),
2910 >,
2911 pub tagTypeUpdated: ::std::option::Option<
2912 unsafe extern "C" fn(
2913 ctxt: *mut ::std::os::raw::c_void,
2914 view: *mut BNBinaryView,
2915 tagType: *mut BNTagType,
2916 ),
2917 >,
2918 pub tagAdded: ::std::option::Option<
2919 unsafe extern "C" fn(
2920 ctxt: *mut ::std::os::raw::c_void,
2921 view: *mut BNBinaryView,
2922 tagRef: *mut BNTagReference,
2923 ),
2924 >,
2925 pub tagRemoved: ::std::option::Option<
2926 unsafe extern "C" fn(
2927 ctxt: *mut ::std::os::raw::c_void,
2928 view: *mut BNBinaryView,
2929 tagRef: *mut BNTagReference,
2930 ),
2931 >,
2932 pub tagUpdated: ::std::option::Option<
2933 unsafe extern "C" fn(
2934 ctxt: *mut ::std::os::raw::c_void,
2935 view: *mut BNBinaryView,
2936 tagRef: *mut BNTagReference,
2937 ),
2938 >,
2939 pub symbolAdded: ::std::option::Option<
2940 unsafe extern "C" fn(
2941 ctxt: *mut ::std::os::raw::c_void,
2942 view: *mut BNBinaryView,
2943 sym: *mut BNSymbol,
2944 ),
2945 >,
2946 pub symbolRemoved: ::std::option::Option<
2947 unsafe extern "C" fn(
2948 ctxt: *mut ::std::os::raw::c_void,
2949 view: *mut BNBinaryView,
2950 sym: *mut BNSymbol,
2951 ),
2952 >,
2953 pub symbolUpdated: ::std::option::Option<
2954 unsafe extern "C" fn(
2955 ctxt: *mut ::std::os::raw::c_void,
2956 view: *mut BNBinaryView,
2957 sym: *mut BNSymbol,
2958 ),
2959 >,
2960 pub stringFound: ::std::option::Option<
2961 unsafe extern "C" fn(
2962 ctxt: *mut ::std::os::raw::c_void,
2963 view: *mut BNBinaryView,
2964 type_: BNStringType,
2965 offset: u64,
2966 len: usize,
2967 ),
2968 >,
2969 pub stringRemoved: ::std::option::Option<
2970 unsafe extern "C" fn(
2971 ctxt: *mut ::std::os::raw::c_void,
2972 view: *mut BNBinaryView,
2973 type_: BNStringType,
2974 offset: u64,
2975 len: usize,
2976 ),
2977 >,
2978 pub derivedStringFound: ::std::option::Option<
2979 unsafe extern "C" fn(
2980 ctxt: *mut ::std::os::raw::c_void,
2981 view: *mut BNBinaryView,
2982 str_: *mut BNDerivedString,
2983 ),
2984 >,
2985 pub derivedStringRemoved: ::std::option::Option<
2986 unsafe extern "C" fn(
2987 ctxt: *mut ::std::os::raw::c_void,
2988 view: *mut BNBinaryView,
2989 str_: *mut BNDerivedString,
2990 ),
2991 >,
2992 pub typeDefined: ::std::option::Option<
2993 unsafe extern "C" fn(
2994 ctxt: *mut ::std::os::raw::c_void,
2995 view: *mut BNBinaryView,
2996 name: *mut BNQualifiedName,
2997 type_: *mut BNType,
2998 ),
2999 >,
3000 pub typeUndefined: ::std::option::Option<
3001 unsafe extern "C" fn(
3002 ctxt: *mut ::std::os::raw::c_void,
3003 view: *mut BNBinaryView,
3004 name: *mut BNQualifiedName,
3005 type_: *mut BNType,
3006 ),
3007 >,
3008 pub typeReferenceChanged: ::std::option::Option<
3009 unsafe extern "C" fn(
3010 ctxt: *mut ::std::os::raw::c_void,
3011 view: *mut BNBinaryView,
3012 name: *mut BNQualifiedName,
3013 type_: *mut BNType,
3014 ),
3015 >,
3016 pub typeFieldReferenceChanged: ::std::option::Option<
3017 unsafe extern "C" fn(
3018 ctxt: *mut ::std::os::raw::c_void,
3019 view: *mut BNBinaryView,
3020 name: *mut BNQualifiedName,
3021 offset: u64,
3022 ),
3023 >,
3024 pub segmentAdded: ::std::option::Option<
3025 unsafe extern "C" fn(
3026 ctxt: *mut ::std::os::raw::c_void,
3027 view: *mut BNBinaryView,
3028 segment: *mut BNSegment,
3029 ),
3030 >,
3031 pub segmentRemoved: ::std::option::Option<
3032 unsafe extern "C" fn(
3033 ctxt: *mut ::std::os::raw::c_void,
3034 view: *mut BNBinaryView,
3035 segment: *mut BNSegment,
3036 ),
3037 >,
3038 pub segmentUpdated: ::std::option::Option<
3039 unsafe extern "C" fn(
3040 ctxt: *mut ::std::os::raw::c_void,
3041 view: *mut BNBinaryView,
3042 segment: *mut BNSegment,
3043 ),
3044 >,
3045 pub sectionAdded: ::std::option::Option<
3046 unsafe extern "C" fn(
3047 ctxt: *mut ::std::os::raw::c_void,
3048 view: *mut BNBinaryView,
3049 section: *mut BNSection,
3050 ),
3051 >,
3052 pub sectionRemoved: ::std::option::Option<
3053 unsafe extern "C" fn(
3054 ctxt: *mut ::std::os::raw::c_void,
3055 view: *mut BNBinaryView,
3056 section: *mut BNSection,
3057 ),
3058 >,
3059 pub sectionUpdated: ::std::option::Option<
3060 unsafe extern "C" fn(
3061 ctxt: *mut ::std::os::raw::c_void,
3062 view: *mut BNBinaryView,
3063 section: *mut BNSection,
3064 ),
3065 >,
3066 pub componentNameUpdated: ::std::option::Option<
3067 unsafe extern "C" fn(
3068 ctxt: *mut ::std::os::raw::c_void,
3069 view: *mut BNBinaryView,
3070 previousName: *mut ::std::os::raw::c_char,
3071 component: *mut BNComponent,
3072 ),
3073 >,
3074 pub componentAdded: ::std::option::Option<
3075 unsafe extern "C" fn(
3076 ctxt: *mut ::std::os::raw::c_void,
3077 view: *mut BNBinaryView,
3078 component: *mut BNComponent,
3079 ),
3080 >,
3081 pub componentMoved: ::std::option::Option<
3082 unsafe extern "C" fn(
3083 ctxt: *mut ::std::os::raw::c_void,
3084 view: *mut BNBinaryView,
3085 formerParent: *mut BNComponent,
3086 newParent: *mut BNComponent,
3087 component: *mut BNComponent,
3088 ),
3089 >,
3090 pub componentRemoved: ::std::option::Option<
3091 unsafe extern "C" fn(
3092 ctxt: *mut ::std::os::raw::c_void,
3093 view: *mut BNBinaryView,
3094 formerParent: *mut BNComponent,
3095 component: *mut BNComponent,
3096 ),
3097 >,
3098 pub componentFunctionAdded: ::std::option::Option<
3099 unsafe extern "C" fn(
3100 ctxt: *mut ::std::os::raw::c_void,
3101 view: *mut BNBinaryView,
3102 component: *mut BNComponent,
3103 function: *mut BNFunction,
3104 ),
3105 >,
3106 pub componentFunctionRemoved: ::std::option::Option<
3107 unsafe extern "C" fn(
3108 ctxt: *mut ::std::os::raw::c_void,
3109 view: *mut BNBinaryView,
3110 component: *mut BNComponent,
3111 function: *mut BNFunction,
3112 ),
3113 >,
3114 pub componentDataVariableAdded: ::std::option::Option<
3115 unsafe extern "C" fn(
3116 ctxt: *mut ::std::os::raw::c_void,
3117 view: *mut BNBinaryView,
3118 component: *mut BNComponent,
3119 var: *mut BNDataVariable,
3120 ),
3121 >,
3122 pub componentDataVariableRemoved: ::std::option::Option<
3123 unsafe extern "C" fn(
3124 ctxt: *mut ::std::os::raw::c_void,
3125 view: *mut BNBinaryView,
3126 component: *mut BNComponent,
3127 var: *mut BNDataVariable,
3128 ),
3129 >,
3130 pub externalLibraryAdded: ::std::option::Option<
3131 unsafe extern "C" fn(
3132 ctxt: *mut ::std::os::raw::c_void,
3133 data: *mut BNBinaryView,
3134 library: *mut BNExternalLibrary,
3135 ),
3136 >,
3137 pub externalLibraryUpdated: ::std::option::Option<
3138 unsafe extern "C" fn(
3139 ctxt: *mut ::std::os::raw::c_void,
3140 data: *mut BNBinaryView,
3141 library: *mut BNExternalLibrary,
3142 ),
3143 >,
3144 pub externalLibraryRemoved: ::std::option::Option<
3145 unsafe extern "C" fn(
3146 ctxt: *mut ::std::os::raw::c_void,
3147 data: *mut BNBinaryView,
3148 library: *mut BNExternalLibrary,
3149 ),
3150 >,
3151 pub externalLocationAdded: ::std::option::Option<
3152 unsafe extern "C" fn(
3153 ctxt: *mut ::std::os::raw::c_void,
3154 data: *mut BNBinaryView,
3155 location: *mut BNExternalLocation,
3156 ),
3157 >,
3158 pub externalLocationUpdated: ::std::option::Option<
3159 unsafe extern "C" fn(
3160 ctxt: *mut ::std::os::raw::c_void,
3161 data: *mut BNBinaryView,
3162 location: *mut BNExternalLocation,
3163 ),
3164 >,
3165 pub externalLocationRemoved: ::std::option::Option<
3166 unsafe extern "C" fn(
3167 ctxt: *mut ::std::os::raw::c_void,
3168 data: *mut BNBinaryView,
3169 location: *mut BNExternalLocation,
3170 ),
3171 >,
3172 pub typeArchiveAttached: ::std::option::Option<
3173 unsafe extern "C" fn(
3174 ctxt: *mut ::std::os::raw::c_void,
3175 view: *mut BNBinaryView,
3176 id: *const ::std::os::raw::c_char,
3177 path: *const ::std::os::raw::c_char,
3178 ),
3179 >,
3180 pub typeArchiveDetached: ::std::option::Option<
3181 unsafe extern "C" fn(
3182 ctxt: *mut ::std::os::raw::c_void,
3183 view: *mut BNBinaryView,
3184 id: *const ::std::os::raw::c_char,
3185 path: *const ::std::os::raw::c_char,
3186 ),
3187 >,
3188 pub typeArchiveConnected: ::std::option::Option<
3189 unsafe extern "C" fn(
3190 ctxt: *mut ::std::os::raw::c_void,
3191 view: *mut BNBinaryView,
3192 archive: *mut BNTypeArchive,
3193 ),
3194 >,
3195 pub typeArchiveDisconnected: ::std::option::Option<
3196 unsafe extern "C" fn(
3197 ctxt: *mut ::std::os::raw::c_void,
3198 view: *mut BNBinaryView,
3199 archive: *mut BNTypeArchive,
3200 ),
3201 >,
3202 pub undoEntryAdded: ::std::option::Option<
3203 unsafe extern "C" fn(
3204 ctxt: *mut ::std::os::raw::c_void,
3205 view: *mut BNBinaryView,
3206 entry: *mut BNUndoEntry,
3207 ),
3208 >,
3209 pub undoEntryTaken: ::std::option::Option<
3210 unsafe extern "C" fn(
3211 ctxt: *mut ::std::os::raw::c_void,
3212 view: *mut BNBinaryView,
3213 entry: *mut BNUndoEntry,
3214 ),
3215 >,
3216 pub redoEntryTaken: ::std::option::Option<
3217 unsafe extern "C" fn(
3218 ctxt: *mut ::std::os::raw::c_void,
3219 view: *mut BNBinaryView,
3220 entry: *mut BNUndoEntry,
3221 ),
3222 >,
3223 pub rebased: ::std::option::Option<
3224 unsafe extern "C" fn(
3225 ctxt: *mut ::std::os::raw::c_void,
3226 oldView: *mut BNBinaryView,
3227 newView: *mut BNBinaryView,
3228 ),
3229 >,
3230}
3231#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3232const _: () = {
3233 ["Size of BNBinaryDataNotification"]
3234 [::std::mem::size_of::<BNBinaryDataNotification>() - 448usize];
3235 ["Alignment of BNBinaryDataNotification"]
3236 [::std::mem::align_of::<BNBinaryDataNotification>() - 8usize];
3237 ["Offset of field: BNBinaryDataNotification::context"]
3238 [::std::mem::offset_of!(BNBinaryDataNotification, context) - 0usize];
3239 ["Offset of field: BNBinaryDataNotification::notificationBarrier"]
3240 [::std::mem::offset_of!(BNBinaryDataNotification, notificationBarrier) - 8usize];
3241 ["Offset of field: BNBinaryDataNotification::dataWritten"]
3242 [::std::mem::offset_of!(BNBinaryDataNotification, dataWritten) - 16usize];
3243 ["Offset of field: BNBinaryDataNotification::dataInserted"]
3244 [::std::mem::offset_of!(BNBinaryDataNotification, dataInserted) - 24usize];
3245 ["Offset of field: BNBinaryDataNotification::dataRemoved"]
3246 [::std::mem::offset_of!(BNBinaryDataNotification, dataRemoved) - 32usize];
3247 ["Offset of field: BNBinaryDataNotification::functionAdded"]
3248 [::std::mem::offset_of!(BNBinaryDataNotification, functionAdded) - 40usize];
3249 ["Offset of field: BNBinaryDataNotification::functionRemoved"]
3250 [::std::mem::offset_of!(BNBinaryDataNotification, functionRemoved) - 48usize];
3251 ["Offset of field: BNBinaryDataNotification::functionUpdated"]
3252 [::std::mem::offset_of!(BNBinaryDataNotification, functionUpdated) - 56usize];
3253 ["Offset of field: BNBinaryDataNotification::functionUpdateRequested"]
3254 [::std::mem::offset_of!(BNBinaryDataNotification, functionUpdateRequested) - 64usize];
3255 ["Offset of field: BNBinaryDataNotification::dataVariableAdded"]
3256 [::std::mem::offset_of!(BNBinaryDataNotification, dataVariableAdded) - 72usize];
3257 ["Offset of field: BNBinaryDataNotification::dataVariableRemoved"]
3258 [::std::mem::offset_of!(BNBinaryDataNotification, dataVariableRemoved) - 80usize];
3259 ["Offset of field: BNBinaryDataNotification::dataVariableUpdated"]
3260 [::std::mem::offset_of!(BNBinaryDataNotification, dataVariableUpdated) - 88usize];
3261 ["Offset of field: BNBinaryDataNotification::dataMetadataUpdated"]
3262 [::std::mem::offset_of!(BNBinaryDataNotification, dataMetadataUpdated) - 96usize];
3263 ["Offset of field: BNBinaryDataNotification::tagTypeUpdated"]
3264 [::std::mem::offset_of!(BNBinaryDataNotification, tagTypeUpdated) - 104usize];
3265 ["Offset of field: BNBinaryDataNotification::tagAdded"]
3266 [::std::mem::offset_of!(BNBinaryDataNotification, tagAdded) - 112usize];
3267 ["Offset of field: BNBinaryDataNotification::tagRemoved"]
3268 [::std::mem::offset_of!(BNBinaryDataNotification, tagRemoved) - 120usize];
3269 ["Offset of field: BNBinaryDataNotification::tagUpdated"]
3270 [::std::mem::offset_of!(BNBinaryDataNotification, tagUpdated) - 128usize];
3271 ["Offset of field: BNBinaryDataNotification::symbolAdded"]
3272 [::std::mem::offset_of!(BNBinaryDataNotification, symbolAdded) - 136usize];
3273 ["Offset of field: BNBinaryDataNotification::symbolRemoved"]
3274 [::std::mem::offset_of!(BNBinaryDataNotification, symbolRemoved) - 144usize];
3275 ["Offset of field: BNBinaryDataNotification::symbolUpdated"]
3276 [::std::mem::offset_of!(BNBinaryDataNotification, symbolUpdated) - 152usize];
3277 ["Offset of field: BNBinaryDataNotification::stringFound"]
3278 [::std::mem::offset_of!(BNBinaryDataNotification, stringFound) - 160usize];
3279 ["Offset of field: BNBinaryDataNotification::stringRemoved"]
3280 [::std::mem::offset_of!(BNBinaryDataNotification, stringRemoved) - 168usize];
3281 ["Offset of field: BNBinaryDataNotification::derivedStringFound"]
3282 [::std::mem::offset_of!(BNBinaryDataNotification, derivedStringFound) - 176usize];
3283 ["Offset of field: BNBinaryDataNotification::derivedStringRemoved"]
3284 [::std::mem::offset_of!(BNBinaryDataNotification, derivedStringRemoved) - 184usize];
3285 ["Offset of field: BNBinaryDataNotification::typeDefined"]
3286 [::std::mem::offset_of!(BNBinaryDataNotification, typeDefined) - 192usize];
3287 ["Offset of field: BNBinaryDataNotification::typeUndefined"]
3288 [::std::mem::offset_of!(BNBinaryDataNotification, typeUndefined) - 200usize];
3289 ["Offset of field: BNBinaryDataNotification::typeReferenceChanged"]
3290 [::std::mem::offset_of!(BNBinaryDataNotification, typeReferenceChanged) - 208usize];
3291 ["Offset of field: BNBinaryDataNotification::typeFieldReferenceChanged"]
3292 [::std::mem::offset_of!(BNBinaryDataNotification, typeFieldReferenceChanged) - 216usize];
3293 ["Offset of field: BNBinaryDataNotification::segmentAdded"]
3294 [::std::mem::offset_of!(BNBinaryDataNotification, segmentAdded) - 224usize];
3295 ["Offset of field: BNBinaryDataNotification::segmentRemoved"]
3296 [::std::mem::offset_of!(BNBinaryDataNotification, segmentRemoved) - 232usize];
3297 ["Offset of field: BNBinaryDataNotification::segmentUpdated"]
3298 [::std::mem::offset_of!(BNBinaryDataNotification, segmentUpdated) - 240usize];
3299 ["Offset of field: BNBinaryDataNotification::sectionAdded"]
3300 [::std::mem::offset_of!(BNBinaryDataNotification, sectionAdded) - 248usize];
3301 ["Offset of field: BNBinaryDataNotification::sectionRemoved"]
3302 [::std::mem::offset_of!(BNBinaryDataNotification, sectionRemoved) - 256usize];
3303 ["Offset of field: BNBinaryDataNotification::sectionUpdated"]
3304 [::std::mem::offset_of!(BNBinaryDataNotification, sectionUpdated) - 264usize];
3305 ["Offset of field: BNBinaryDataNotification::componentNameUpdated"]
3306 [::std::mem::offset_of!(BNBinaryDataNotification, componentNameUpdated) - 272usize];
3307 ["Offset of field: BNBinaryDataNotification::componentAdded"]
3308 [::std::mem::offset_of!(BNBinaryDataNotification, componentAdded) - 280usize];
3309 ["Offset of field: BNBinaryDataNotification::componentMoved"]
3310 [::std::mem::offset_of!(BNBinaryDataNotification, componentMoved) - 288usize];
3311 ["Offset of field: BNBinaryDataNotification::componentRemoved"]
3312 [::std::mem::offset_of!(BNBinaryDataNotification, componentRemoved) - 296usize];
3313 ["Offset of field: BNBinaryDataNotification::componentFunctionAdded"]
3314 [::std::mem::offset_of!(BNBinaryDataNotification, componentFunctionAdded) - 304usize];
3315 ["Offset of field: BNBinaryDataNotification::componentFunctionRemoved"]
3316 [::std::mem::offset_of!(BNBinaryDataNotification, componentFunctionRemoved) - 312usize];
3317 ["Offset of field: BNBinaryDataNotification::componentDataVariableAdded"]
3318 [::std::mem::offset_of!(BNBinaryDataNotification, componentDataVariableAdded) - 320usize];
3319 ["Offset of field: BNBinaryDataNotification::componentDataVariableRemoved"]
3320 [::std::mem::offset_of!(BNBinaryDataNotification, componentDataVariableRemoved) - 328usize];
3321 ["Offset of field: BNBinaryDataNotification::externalLibraryAdded"]
3322 [::std::mem::offset_of!(BNBinaryDataNotification, externalLibraryAdded) - 336usize];
3323 ["Offset of field: BNBinaryDataNotification::externalLibraryUpdated"]
3324 [::std::mem::offset_of!(BNBinaryDataNotification, externalLibraryUpdated) - 344usize];
3325 ["Offset of field: BNBinaryDataNotification::externalLibraryRemoved"]
3326 [::std::mem::offset_of!(BNBinaryDataNotification, externalLibraryRemoved) - 352usize];
3327 ["Offset of field: BNBinaryDataNotification::externalLocationAdded"]
3328 [::std::mem::offset_of!(BNBinaryDataNotification, externalLocationAdded) - 360usize];
3329 ["Offset of field: BNBinaryDataNotification::externalLocationUpdated"]
3330 [::std::mem::offset_of!(BNBinaryDataNotification, externalLocationUpdated) - 368usize];
3331 ["Offset of field: BNBinaryDataNotification::externalLocationRemoved"]
3332 [::std::mem::offset_of!(BNBinaryDataNotification, externalLocationRemoved) - 376usize];
3333 ["Offset of field: BNBinaryDataNotification::typeArchiveAttached"]
3334 [::std::mem::offset_of!(BNBinaryDataNotification, typeArchiveAttached) - 384usize];
3335 ["Offset of field: BNBinaryDataNotification::typeArchiveDetached"]
3336 [::std::mem::offset_of!(BNBinaryDataNotification, typeArchiveDetached) - 392usize];
3337 ["Offset of field: BNBinaryDataNotification::typeArchiveConnected"]
3338 [::std::mem::offset_of!(BNBinaryDataNotification, typeArchiveConnected) - 400usize];
3339 ["Offset of field: BNBinaryDataNotification::typeArchiveDisconnected"]
3340 [::std::mem::offset_of!(BNBinaryDataNotification, typeArchiveDisconnected) - 408usize];
3341 ["Offset of field: BNBinaryDataNotification::undoEntryAdded"]
3342 [::std::mem::offset_of!(BNBinaryDataNotification, undoEntryAdded) - 416usize];
3343 ["Offset of field: BNBinaryDataNotification::undoEntryTaken"]
3344 [::std::mem::offset_of!(BNBinaryDataNotification, undoEntryTaken) - 424usize];
3345 ["Offset of field: BNBinaryDataNotification::redoEntryTaken"]
3346 [::std::mem::offset_of!(BNBinaryDataNotification, redoEntryTaken) - 432usize];
3347 ["Offset of field: BNBinaryDataNotification::rebased"]
3348 [::std::mem::offset_of!(BNBinaryDataNotification, rebased) - 440usize];
3349};
3350impl Default for BNBinaryDataNotification {
3351 fn default() -> Self {
3352 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3353 unsafe {
3354 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3355 s.assume_init()
3356 }
3357 }
3358}
3359#[repr(C)]
3360#[derive(Debug, Copy, Clone)]
3361pub struct BNProjectNotification {
3362 pub context: *mut ::std::os::raw::c_void,
3363 pub beforeOpenProject: ::std::option::Option<
3364 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, project: *mut BNProject) -> bool,
3365 >,
3366 pub afterOpenProject: ::std::option::Option<
3367 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, project: *mut BNProject),
3368 >,
3369 pub beforeCloseProject: ::std::option::Option<
3370 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, project: *mut BNProject) -> bool,
3371 >,
3372 pub afterCloseProject: ::std::option::Option<
3373 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, project: *mut BNProject),
3374 >,
3375 pub beforeProjectMetadataWritten: ::std::option::Option<
3376 unsafe extern "C" fn(
3377 ctxt: *mut ::std::os::raw::c_void,
3378 project: *mut BNProject,
3379 key: *mut ::std::os::raw::c_char,
3380 value: *mut BNMetadata,
3381 ) -> bool,
3382 >,
3383 pub afterProjectMetadataWritten: ::std::option::Option<
3384 unsafe extern "C" fn(
3385 ctxt: *mut ::std::os::raw::c_void,
3386 project: *mut BNProject,
3387 key: *mut ::std::os::raw::c_char,
3388 value: *mut BNMetadata,
3389 ),
3390 >,
3391 pub beforeProjectFileCreated: ::std::option::Option<
3392 unsafe extern "C" fn(
3393 ctxt: *mut ::std::os::raw::c_void,
3394 project: *mut BNProject,
3395 projectFile: *mut BNProjectFile,
3396 ) -> bool,
3397 >,
3398 pub afterProjectFileCreated: ::std::option::Option<
3399 unsafe extern "C" fn(
3400 ctxt: *mut ::std::os::raw::c_void,
3401 project: *mut BNProject,
3402 projectFile: *mut BNProjectFile,
3403 ),
3404 >,
3405 pub beforeProjectFileUpdated: ::std::option::Option<
3406 unsafe extern "C" fn(
3407 ctxt: *mut ::std::os::raw::c_void,
3408 project: *mut BNProject,
3409 projectFile: *mut BNProjectFile,
3410 ) -> bool,
3411 >,
3412 pub afterProjectFileUpdated: ::std::option::Option<
3413 unsafe extern "C" fn(
3414 ctxt: *mut ::std::os::raw::c_void,
3415 project: *mut BNProject,
3416 projectFile: *mut BNProjectFile,
3417 ),
3418 >,
3419 pub beforeProjectFileDeleted: ::std::option::Option<
3420 unsafe extern "C" fn(
3421 ctxt: *mut ::std::os::raw::c_void,
3422 project: *mut BNProject,
3423 projectFile: *mut BNProjectFile,
3424 ) -> bool,
3425 >,
3426 pub afterProjectFileDeleted: ::std::option::Option<
3427 unsafe extern "C" fn(
3428 ctxt: *mut ::std::os::raw::c_void,
3429 project: *mut BNProject,
3430 projectFile: *mut BNProjectFile,
3431 ),
3432 >,
3433 pub beforeProjectFolderCreated: ::std::option::Option<
3434 unsafe extern "C" fn(
3435 ctxt: *mut ::std::os::raw::c_void,
3436 project: *mut BNProject,
3437 projectFolder: *mut BNProjectFolder,
3438 ) -> bool,
3439 >,
3440 pub afterProjectFolderCreated: ::std::option::Option<
3441 unsafe extern "C" fn(
3442 ctxt: *mut ::std::os::raw::c_void,
3443 project: *mut BNProject,
3444 projectFolder: *mut BNProjectFolder,
3445 ),
3446 >,
3447 pub beforeProjectFolderUpdated: ::std::option::Option<
3448 unsafe extern "C" fn(
3449 ctxt: *mut ::std::os::raw::c_void,
3450 project: *mut BNProject,
3451 projectFolder: *mut BNProjectFolder,
3452 ) -> bool,
3453 >,
3454 pub afterProjectFolderUpdated: ::std::option::Option<
3455 unsafe extern "C" fn(
3456 ctxt: *mut ::std::os::raw::c_void,
3457 project: *mut BNProject,
3458 projectFolder: *mut BNProjectFolder,
3459 ),
3460 >,
3461 pub beforeProjectFolderDeleted: ::std::option::Option<
3462 unsafe extern "C" fn(
3463 ctxt: *mut ::std::os::raw::c_void,
3464 project: *mut BNProject,
3465 projectFolder: *mut BNProjectFolder,
3466 ) -> bool,
3467 >,
3468 pub afterProjectFolderDeleted: ::std::option::Option<
3469 unsafe extern "C" fn(
3470 ctxt: *mut ::std::os::raw::c_void,
3471 project: *mut BNProject,
3472 projectFolder: *mut BNProjectFolder,
3473 ),
3474 >,
3475}
3476#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3477const _: () = {
3478 ["Size of BNProjectNotification"][::std::mem::size_of::<BNProjectNotification>() - 152usize];
3479 ["Alignment of BNProjectNotification"]
3480 [::std::mem::align_of::<BNProjectNotification>() - 8usize];
3481 ["Offset of field: BNProjectNotification::context"]
3482 [::std::mem::offset_of!(BNProjectNotification, context) - 0usize];
3483 ["Offset of field: BNProjectNotification::beforeOpenProject"]
3484 [::std::mem::offset_of!(BNProjectNotification, beforeOpenProject) - 8usize];
3485 ["Offset of field: BNProjectNotification::afterOpenProject"]
3486 [::std::mem::offset_of!(BNProjectNotification, afterOpenProject) - 16usize];
3487 ["Offset of field: BNProjectNotification::beforeCloseProject"]
3488 [::std::mem::offset_of!(BNProjectNotification, beforeCloseProject) - 24usize];
3489 ["Offset of field: BNProjectNotification::afterCloseProject"]
3490 [::std::mem::offset_of!(BNProjectNotification, afterCloseProject) - 32usize];
3491 ["Offset of field: BNProjectNotification::beforeProjectMetadataWritten"]
3492 [::std::mem::offset_of!(BNProjectNotification, beforeProjectMetadataWritten) - 40usize];
3493 ["Offset of field: BNProjectNotification::afterProjectMetadataWritten"]
3494 [::std::mem::offset_of!(BNProjectNotification, afterProjectMetadataWritten) - 48usize];
3495 ["Offset of field: BNProjectNotification::beforeProjectFileCreated"]
3496 [::std::mem::offset_of!(BNProjectNotification, beforeProjectFileCreated) - 56usize];
3497 ["Offset of field: BNProjectNotification::afterProjectFileCreated"]
3498 [::std::mem::offset_of!(BNProjectNotification, afterProjectFileCreated) - 64usize];
3499 ["Offset of field: BNProjectNotification::beforeProjectFileUpdated"]
3500 [::std::mem::offset_of!(BNProjectNotification, beforeProjectFileUpdated) - 72usize];
3501 ["Offset of field: BNProjectNotification::afterProjectFileUpdated"]
3502 [::std::mem::offset_of!(BNProjectNotification, afterProjectFileUpdated) - 80usize];
3503 ["Offset of field: BNProjectNotification::beforeProjectFileDeleted"]
3504 [::std::mem::offset_of!(BNProjectNotification, beforeProjectFileDeleted) - 88usize];
3505 ["Offset of field: BNProjectNotification::afterProjectFileDeleted"]
3506 [::std::mem::offset_of!(BNProjectNotification, afterProjectFileDeleted) - 96usize];
3507 ["Offset of field: BNProjectNotification::beforeProjectFolderCreated"]
3508 [::std::mem::offset_of!(BNProjectNotification, beforeProjectFolderCreated) - 104usize];
3509 ["Offset of field: BNProjectNotification::afterProjectFolderCreated"]
3510 [::std::mem::offset_of!(BNProjectNotification, afterProjectFolderCreated) - 112usize];
3511 ["Offset of field: BNProjectNotification::beforeProjectFolderUpdated"]
3512 [::std::mem::offset_of!(BNProjectNotification, beforeProjectFolderUpdated) - 120usize];
3513 ["Offset of field: BNProjectNotification::afterProjectFolderUpdated"]
3514 [::std::mem::offset_of!(BNProjectNotification, afterProjectFolderUpdated) - 128usize];
3515 ["Offset of field: BNProjectNotification::beforeProjectFolderDeleted"]
3516 [::std::mem::offset_of!(BNProjectNotification, beforeProjectFolderDeleted) - 136usize];
3517 ["Offset of field: BNProjectNotification::afterProjectFolderDeleted"]
3518 [::std::mem::offset_of!(BNProjectNotification, afterProjectFolderDeleted) - 144usize];
3519};
3520impl Default for BNProjectNotification {
3521 fn default() -> Self {
3522 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3523 unsafe {
3524 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3525 s.assume_init()
3526 }
3527 }
3528}
3529#[repr(C)]
3530#[derive(Debug, Copy, Clone)]
3531pub struct BNFileAccessor {
3532 pub context: *mut ::std::os::raw::c_void,
3533 pub getLength:
3534 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u64>,
3535 pub read: ::std::option::Option<
3536 unsafe extern "C" fn(
3537 ctxt: *mut ::std::os::raw::c_void,
3538 dest: *mut ::std::os::raw::c_void,
3539 offset: u64,
3540 len: usize,
3541 ) -> usize,
3542 >,
3543 pub write: ::std::option::Option<
3544 unsafe extern "C" fn(
3545 ctxt: *mut ::std::os::raw::c_void,
3546 offset: u64,
3547 src: *const ::std::os::raw::c_void,
3548 len: usize,
3549 ) -> usize,
3550 >,
3551}
3552#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3553const _: () = {
3554 ["Size of BNFileAccessor"][::std::mem::size_of::<BNFileAccessor>() - 32usize];
3555 ["Alignment of BNFileAccessor"][::std::mem::align_of::<BNFileAccessor>() - 8usize];
3556 ["Offset of field: BNFileAccessor::context"]
3557 [::std::mem::offset_of!(BNFileAccessor, context) - 0usize];
3558 ["Offset of field: BNFileAccessor::getLength"]
3559 [::std::mem::offset_of!(BNFileAccessor, getLength) - 8usize];
3560 ["Offset of field: BNFileAccessor::read"]
3561 [::std::mem::offset_of!(BNFileAccessor, read) - 16usize];
3562 ["Offset of field: BNFileAccessor::write"]
3563 [::std::mem::offset_of!(BNFileAccessor, write) - 24usize];
3564};
3565impl Default for BNFileAccessor {
3566 fn default() -> Self {
3567 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3568 unsafe {
3569 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3570 s.assume_init()
3571 }
3572 }
3573}
3574#[repr(C)]
3575#[derive(Debug, Copy, Clone)]
3576pub struct BNCustomBinaryView {
3577 pub context: *mut ::std::os::raw::c_void,
3578 pub init:
3579 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
3580 pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
3581 pub externalRefTaken:
3582 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
3583 pub externalRefReleased:
3584 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
3585 pub read: ::std::option::Option<
3586 unsafe extern "C" fn(
3587 ctxt: *mut ::std::os::raw::c_void,
3588 dest: *mut ::std::os::raw::c_void,
3589 offset: u64,
3590 len: usize,
3591 ) -> usize,
3592 >,
3593 pub write: ::std::option::Option<
3594 unsafe extern "C" fn(
3595 ctxt: *mut ::std::os::raw::c_void,
3596 offset: u64,
3597 src: *const ::std::os::raw::c_void,
3598 len: usize,
3599 ) -> usize,
3600 >,
3601 pub insert: ::std::option::Option<
3602 unsafe extern "C" fn(
3603 ctxt: *mut ::std::os::raw::c_void,
3604 offset: u64,
3605 src: *const ::std::os::raw::c_void,
3606 len: usize,
3607 ) -> usize,
3608 >,
3609 pub remove: ::std::option::Option<
3610 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64, len: u64) -> usize,
3611 >,
3612 pub getModification: ::std::option::Option<
3613 unsafe extern "C" fn(
3614 ctxt: *mut ::std::os::raw::c_void,
3615 offset: u64,
3616 ) -> BNModificationStatus,
3617 >,
3618 pub isValidOffset: ::std::option::Option<
3619 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> bool,
3620 >,
3621 pub isOffsetReadable: ::std::option::Option<
3622 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> bool,
3623 >,
3624 pub isOffsetWritable: ::std::option::Option<
3625 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> bool,
3626 >,
3627 pub isOffsetExecutable: ::std::option::Option<
3628 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> bool,
3629 >,
3630 pub isOffsetBackedByFile: ::std::option::Option<
3631 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> bool,
3632 >,
3633 pub getNextValidOffset: ::std::option::Option<
3634 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> u64,
3635 >,
3636 pub getStart:
3637 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u64>,
3638 pub getLength:
3639 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u64>,
3640 pub getEntryPoint:
3641 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u64>,
3642 pub isExecutable:
3643 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
3644 pub getDefaultEndianness: ::std::option::Option<
3645 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> BNEndianness,
3646 >,
3647 pub isRelocatable:
3648 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
3649 pub getAddressSize:
3650 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
3651 pub save: ::std::option::Option<
3652 unsafe extern "C" fn(
3653 ctxt: *mut ::std::os::raw::c_void,
3654 accessor: *mut BNFileAccessor,
3655 ) -> bool,
3656 >,
3657 pub onAfterSnapshotDataApplied:
3658 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
3659}
3660#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3661const _: () = {
3662 ["Size of BNCustomBinaryView"][::std::mem::size_of::<BNCustomBinaryView>() - 200usize];
3663 ["Alignment of BNCustomBinaryView"][::std::mem::align_of::<BNCustomBinaryView>() - 8usize];
3664 ["Offset of field: BNCustomBinaryView::context"]
3665 [::std::mem::offset_of!(BNCustomBinaryView, context) - 0usize];
3666 ["Offset of field: BNCustomBinaryView::init"]
3667 [::std::mem::offset_of!(BNCustomBinaryView, init) - 8usize];
3668 ["Offset of field: BNCustomBinaryView::freeObject"]
3669 [::std::mem::offset_of!(BNCustomBinaryView, freeObject) - 16usize];
3670 ["Offset of field: BNCustomBinaryView::externalRefTaken"]
3671 [::std::mem::offset_of!(BNCustomBinaryView, externalRefTaken) - 24usize];
3672 ["Offset of field: BNCustomBinaryView::externalRefReleased"]
3673 [::std::mem::offset_of!(BNCustomBinaryView, externalRefReleased) - 32usize];
3674 ["Offset of field: BNCustomBinaryView::read"]
3675 [::std::mem::offset_of!(BNCustomBinaryView, read) - 40usize];
3676 ["Offset of field: BNCustomBinaryView::write"]
3677 [::std::mem::offset_of!(BNCustomBinaryView, write) - 48usize];
3678 ["Offset of field: BNCustomBinaryView::insert"]
3679 [::std::mem::offset_of!(BNCustomBinaryView, insert) - 56usize];
3680 ["Offset of field: BNCustomBinaryView::remove"]
3681 [::std::mem::offset_of!(BNCustomBinaryView, remove) - 64usize];
3682 ["Offset of field: BNCustomBinaryView::getModification"]
3683 [::std::mem::offset_of!(BNCustomBinaryView, getModification) - 72usize];
3684 ["Offset of field: BNCustomBinaryView::isValidOffset"]
3685 [::std::mem::offset_of!(BNCustomBinaryView, isValidOffset) - 80usize];
3686 ["Offset of field: BNCustomBinaryView::isOffsetReadable"]
3687 [::std::mem::offset_of!(BNCustomBinaryView, isOffsetReadable) - 88usize];
3688 ["Offset of field: BNCustomBinaryView::isOffsetWritable"]
3689 [::std::mem::offset_of!(BNCustomBinaryView, isOffsetWritable) - 96usize];
3690 ["Offset of field: BNCustomBinaryView::isOffsetExecutable"]
3691 [::std::mem::offset_of!(BNCustomBinaryView, isOffsetExecutable) - 104usize];
3692 ["Offset of field: BNCustomBinaryView::isOffsetBackedByFile"]
3693 [::std::mem::offset_of!(BNCustomBinaryView, isOffsetBackedByFile) - 112usize];
3694 ["Offset of field: BNCustomBinaryView::getNextValidOffset"]
3695 [::std::mem::offset_of!(BNCustomBinaryView, getNextValidOffset) - 120usize];
3696 ["Offset of field: BNCustomBinaryView::getStart"]
3697 [::std::mem::offset_of!(BNCustomBinaryView, getStart) - 128usize];
3698 ["Offset of field: BNCustomBinaryView::getLength"]
3699 [::std::mem::offset_of!(BNCustomBinaryView, getLength) - 136usize];
3700 ["Offset of field: BNCustomBinaryView::getEntryPoint"]
3701 [::std::mem::offset_of!(BNCustomBinaryView, getEntryPoint) - 144usize];
3702 ["Offset of field: BNCustomBinaryView::isExecutable"]
3703 [::std::mem::offset_of!(BNCustomBinaryView, isExecutable) - 152usize];
3704 ["Offset of field: BNCustomBinaryView::getDefaultEndianness"]
3705 [::std::mem::offset_of!(BNCustomBinaryView, getDefaultEndianness) - 160usize];
3706 ["Offset of field: BNCustomBinaryView::isRelocatable"]
3707 [::std::mem::offset_of!(BNCustomBinaryView, isRelocatable) - 168usize];
3708 ["Offset of field: BNCustomBinaryView::getAddressSize"]
3709 [::std::mem::offset_of!(BNCustomBinaryView, getAddressSize) - 176usize];
3710 ["Offset of field: BNCustomBinaryView::save"]
3711 [::std::mem::offset_of!(BNCustomBinaryView, save) - 184usize];
3712 ["Offset of field: BNCustomBinaryView::onAfterSnapshotDataApplied"]
3713 [::std::mem::offset_of!(BNCustomBinaryView, onAfterSnapshotDataApplied) - 192usize];
3714};
3715impl Default for BNCustomBinaryView {
3716 fn default() -> Self {
3717 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3718 unsafe {
3719 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3720 s.assume_init()
3721 }
3722 }
3723}
3724#[repr(C)]
3725#[derive(Debug, Copy, Clone)]
3726pub struct BNCustomBinaryViewType {
3727 pub context: *mut ::std::os::raw::c_void,
3728 pub create: ::std::option::Option<
3729 unsafe extern "C" fn(
3730 ctxt: *mut ::std::os::raw::c_void,
3731 data: *mut BNBinaryView,
3732 ) -> *mut BNBinaryView,
3733 >,
3734 pub parse: ::std::option::Option<
3735 unsafe extern "C" fn(
3736 ctxt: *mut ::std::os::raw::c_void,
3737 data: *mut BNBinaryView,
3738 ) -> *mut BNBinaryView,
3739 >,
3740 pub isValidForData: ::std::option::Option<
3741 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, data: *mut BNBinaryView) -> bool,
3742 >,
3743 pub isDeprecated:
3744 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
3745 pub isForceLoadable:
3746 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
3747 pub getLoadSettingsForData: ::std::option::Option<
3748 unsafe extern "C" fn(
3749 ctxt: *mut ::std::os::raw::c_void,
3750 data: *mut BNBinaryView,
3751 ) -> *mut BNSettings,
3752 >,
3753 pub hasNoInitialContent:
3754 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
3755}
3756#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3757const _: () = {
3758 ["Size of BNCustomBinaryViewType"][::std::mem::size_of::<BNCustomBinaryViewType>() - 64usize];
3759 ["Alignment of BNCustomBinaryViewType"]
3760 [::std::mem::align_of::<BNCustomBinaryViewType>() - 8usize];
3761 ["Offset of field: BNCustomBinaryViewType::context"]
3762 [::std::mem::offset_of!(BNCustomBinaryViewType, context) - 0usize];
3763 ["Offset of field: BNCustomBinaryViewType::create"]
3764 [::std::mem::offset_of!(BNCustomBinaryViewType, create) - 8usize];
3765 ["Offset of field: BNCustomBinaryViewType::parse"]
3766 [::std::mem::offset_of!(BNCustomBinaryViewType, parse) - 16usize];
3767 ["Offset of field: BNCustomBinaryViewType::isValidForData"]
3768 [::std::mem::offset_of!(BNCustomBinaryViewType, isValidForData) - 24usize];
3769 ["Offset of field: BNCustomBinaryViewType::isDeprecated"]
3770 [::std::mem::offset_of!(BNCustomBinaryViewType, isDeprecated) - 32usize];
3771 ["Offset of field: BNCustomBinaryViewType::isForceLoadable"]
3772 [::std::mem::offset_of!(BNCustomBinaryViewType, isForceLoadable) - 40usize];
3773 ["Offset of field: BNCustomBinaryViewType::getLoadSettingsForData"]
3774 [::std::mem::offset_of!(BNCustomBinaryViewType, getLoadSettingsForData) - 48usize];
3775 ["Offset of field: BNCustomBinaryViewType::hasNoInitialContent"]
3776 [::std::mem::offset_of!(BNCustomBinaryViewType, hasNoInitialContent) - 56usize];
3777};
3778impl Default for BNCustomBinaryViewType {
3779 fn default() -> Self {
3780 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3781 unsafe {
3782 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3783 s.assume_init()
3784 }
3785 }
3786}
3787#[repr(C)]
3788#[derive(Debug, Copy, Clone)]
3789pub struct BNTransformParameterInfo {
3790 pub name: *mut ::std::os::raw::c_char,
3791 pub longName: *mut ::std::os::raw::c_char,
3792 #[doc = " Variable length if zero"]
3793 pub fixedLength: usize,
3794}
3795#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3796const _: () = {
3797 ["Size of BNTransformParameterInfo"]
3798 [::std::mem::size_of::<BNTransformParameterInfo>() - 24usize];
3799 ["Alignment of BNTransformParameterInfo"]
3800 [::std::mem::align_of::<BNTransformParameterInfo>() - 8usize];
3801 ["Offset of field: BNTransformParameterInfo::name"]
3802 [::std::mem::offset_of!(BNTransformParameterInfo, name) - 0usize];
3803 ["Offset of field: BNTransformParameterInfo::longName"]
3804 [::std::mem::offset_of!(BNTransformParameterInfo, longName) - 8usize];
3805 ["Offset of field: BNTransformParameterInfo::fixedLength"]
3806 [::std::mem::offset_of!(BNTransformParameterInfo, fixedLength) - 16usize];
3807};
3808impl Default for BNTransformParameterInfo {
3809 fn default() -> Self {
3810 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3811 unsafe {
3812 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3813 s.assume_init()
3814 }
3815 }
3816}
3817#[repr(C)]
3818#[derive(Debug, Copy, Clone)]
3819pub struct BNTransformParameter {
3820 pub name: *const ::std::os::raw::c_char,
3821 pub value: *mut BNDataBuffer,
3822}
3823#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3824const _: () = {
3825 ["Size of BNTransformParameter"][::std::mem::size_of::<BNTransformParameter>() - 16usize];
3826 ["Alignment of BNTransformParameter"][::std::mem::align_of::<BNTransformParameter>() - 8usize];
3827 ["Offset of field: BNTransformParameter::name"]
3828 [::std::mem::offset_of!(BNTransformParameter, name) - 0usize];
3829 ["Offset of field: BNTransformParameter::value"]
3830 [::std::mem::offset_of!(BNTransformParameter, value) - 8usize];
3831};
3832impl Default for BNTransformParameter {
3833 fn default() -> Self {
3834 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3835 unsafe {
3836 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3837 s.assume_init()
3838 }
3839 }
3840}
3841#[repr(C)]
3842#[derive(Debug, Copy, Clone)]
3843pub struct BNCustomTransform {
3844 pub context: *mut ::std::os::raw::c_void,
3845 pub getParameters: ::std::option::Option<
3846 unsafe extern "C" fn(
3847 ctxt: *mut ::std::os::raw::c_void,
3848 count: *mut usize,
3849 ) -> *mut BNTransformParameterInfo,
3850 >,
3851 pub freeParameters: ::std::option::Option<
3852 unsafe extern "C" fn(params: *mut BNTransformParameterInfo, count: usize),
3853 >,
3854 pub decode: ::std::option::Option<
3855 unsafe extern "C" fn(
3856 ctxt: *mut ::std::os::raw::c_void,
3857 input: *mut BNDataBuffer,
3858 output: *mut BNDataBuffer,
3859 params: *mut BNTransformParameter,
3860 paramCount: usize,
3861 ) -> bool,
3862 >,
3863 pub encode: ::std::option::Option<
3864 unsafe extern "C" fn(
3865 ctxt: *mut ::std::os::raw::c_void,
3866 input: *mut BNDataBuffer,
3867 output: *mut BNDataBuffer,
3868 params: *mut BNTransformParameter,
3869 paramCount: usize,
3870 ) -> bool,
3871 >,
3872 pub decodeWithContext: ::std::option::Option<
3873 unsafe extern "C" fn(
3874 ctxt: *mut ::std::os::raw::c_void,
3875 context: *mut BNTransformContext,
3876 params: *mut BNTransformParameter,
3877 paramCount: usize,
3878 ) -> bool,
3879 >,
3880 pub canDecode: ::std::option::Option<
3881 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, input: *mut BNBinaryView) -> bool,
3882 >,
3883}
3884#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3885const _: () = {
3886 ["Size of BNCustomTransform"][::std::mem::size_of::<BNCustomTransform>() - 56usize];
3887 ["Alignment of BNCustomTransform"][::std::mem::align_of::<BNCustomTransform>() - 8usize];
3888 ["Offset of field: BNCustomTransform::context"]
3889 [::std::mem::offset_of!(BNCustomTransform, context) - 0usize];
3890 ["Offset of field: BNCustomTransform::getParameters"]
3891 [::std::mem::offset_of!(BNCustomTransform, getParameters) - 8usize];
3892 ["Offset of field: BNCustomTransform::freeParameters"]
3893 [::std::mem::offset_of!(BNCustomTransform, freeParameters) - 16usize];
3894 ["Offset of field: BNCustomTransform::decode"]
3895 [::std::mem::offset_of!(BNCustomTransform, decode) - 24usize];
3896 ["Offset of field: BNCustomTransform::encode"]
3897 [::std::mem::offset_of!(BNCustomTransform, encode) - 32usize];
3898 ["Offset of field: BNCustomTransform::decodeWithContext"]
3899 [::std::mem::offset_of!(BNCustomTransform, decodeWithContext) - 40usize];
3900 ["Offset of field: BNCustomTransform::canDecode"]
3901 [::std::mem::offset_of!(BNCustomTransform, canDecode) - 48usize];
3902};
3903impl Default for BNCustomTransform {
3904 fn default() -> Self {
3905 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3906 unsafe {
3907 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3908 s.assume_init()
3909 }
3910 }
3911}
3912#[repr(C)]
3913#[derive(Debug, Copy, Clone)]
3914pub struct BNInstructionInfo {
3915 pub length: usize,
3916 pub branchCount: usize,
3917 pub archTransitionByTargetAddr: bool,
3918 pub delaySlots: u8,
3919 pub branchType: [BNBranchType; 3usize],
3920 pub branchTarget: [u64; 3usize],
3921 #[doc = " If null, same architecture as instruction"]
3922 pub branchArch: [*mut BNArchitecture; 3usize],
3923}
3924#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3925const _: () = {
3926 ["Size of BNInstructionInfo"][::std::mem::size_of::<BNInstructionInfo>() - 72usize];
3927 ["Alignment of BNInstructionInfo"][::std::mem::align_of::<BNInstructionInfo>() - 8usize];
3928 ["Offset of field: BNInstructionInfo::length"]
3929 [::std::mem::offset_of!(BNInstructionInfo, length) - 0usize];
3930 ["Offset of field: BNInstructionInfo::branchCount"]
3931 [::std::mem::offset_of!(BNInstructionInfo, branchCount) - 8usize];
3932 ["Offset of field: BNInstructionInfo::archTransitionByTargetAddr"]
3933 [::std::mem::offset_of!(BNInstructionInfo, archTransitionByTargetAddr) - 16usize];
3934 ["Offset of field: BNInstructionInfo::delaySlots"]
3935 [::std::mem::offset_of!(BNInstructionInfo, delaySlots) - 17usize];
3936 ["Offset of field: BNInstructionInfo::branchType"]
3937 [::std::mem::offset_of!(BNInstructionInfo, branchType) - 18usize];
3938 ["Offset of field: BNInstructionInfo::branchTarget"]
3939 [::std::mem::offset_of!(BNInstructionInfo, branchTarget) - 24usize];
3940 ["Offset of field: BNInstructionInfo::branchArch"]
3941 [::std::mem::offset_of!(BNInstructionInfo, branchArch) - 48usize];
3942};
3943impl Default for BNInstructionInfo {
3944 fn default() -> Self {
3945 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3946 unsafe {
3947 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3948 s.assume_init()
3949 }
3950 }
3951}
3952#[repr(u8)]
3953#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3954pub enum BNRelocationType {
3955 ELFGlobalRelocationType = 0,
3956 ELFCopyRelocationType = 1,
3957 ELFJumpSlotRelocationType = 2,
3958 StandardRelocationType = 3,
3959 IgnoredRelocation = 4,
3960 UnhandledRelocation = 5,
3961}
3962#[repr(C)]
3963#[derive(Debug, Copy, Clone)]
3964pub struct BNRelocationInfo {
3965 #[doc = " BinaryNinja Relocation Type"]
3966 pub type_: BNRelocationType,
3967 #[doc = " PC Relative or Absolute (subtract address from relocation)"]
3968 pub pcRelative: bool,
3969 #[doc = " Relative to start of module (Add module base to relocation)"]
3970 pub baseRelative: bool,
3971 #[doc = " Base address for this binary view"]
3972 pub base: u64,
3973 #[doc = " Size of the data to be written"]
3974 pub size: usize,
3975 #[doc = " After addition/subtraction truncate to"]
3976 pub truncateSize: usize,
3977 #[doc = " Base type from relocation entry"]
3978 pub nativeType: u64,
3979 #[doc = " Addend value from relocation entry"]
3980 pub addend: usize,
3981 #[doc = " Addend should be subtracted"]
3982 pub hasSign: bool,
3983 #[doc = " Addend should be read from the BinaryView"]
3984 pub implicitAddend: bool,
3985 #[doc = " Relocation entry points to external symbol"]
3986 pub external: bool,
3987 #[doc = " Index into symbol table"]
3988 pub symbolIndex: usize,
3989 #[doc = " Index into the section table"]
3990 pub sectionIndex: usize,
3991 #[doc = " Absolute address or segment offset"]
3992 pub address: u64,
3993 #[doc = " Target (set automatically)"]
3994 pub target: u64,
3995 #[doc = " This relocation is effecting data not code"]
3996 pub dataRelocation: bool,
3997 pub relocationDataCache: [u8; 8usize],
3998 #[doc = " Link to relocation another related relocation"]
3999 pub prev: *mut BNRelocationInfo,
4000 #[doc = " Link to relocation another related relocation"]
4001 pub next: *mut BNRelocationInfo,
4002}
4003#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4004const _: () = {
4005 ["Size of BNRelocationInfo"][::std::mem::size_of::<BNRelocationInfo>() - 120usize];
4006 ["Alignment of BNRelocationInfo"][::std::mem::align_of::<BNRelocationInfo>() - 8usize];
4007 ["Offset of field: BNRelocationInfo::type_"]
4008 [::std::mem::offset_of!(BNRelocationInfo, type_) - 0usize];
4009 ["Offset of field: BNRelocationInfo::pcRelative"]
4010 [::std::mem::offset_of!(BNRelocationInfo, pcRelative) - 1usize];
4011 ["Offset of field: BNRelocationInfo::baseRelative"]
4012 [::std::mem::offset_of!(BNRelocationInfo, baseRelative) - 2usize];
4013 ["Offset of field: BNRelocationInfo::base"]
4014 [::std::mem::offset_of!(BNRelocationInfo, base) - 8usize];
4015 ["Offset of field: BNRelocationInfo::size"]
4016 [::std::mem::offset_of!(BNRelocationInfo, size) - 16usize];
4017 ["Offset of field: BNRelocationInfo::truncateSize"]
4018 [::std::mem::offset_of!(BNRelocationInfo, truncateSize) - 24usize];
4019 ["Offset of field: BNRelocationInfo::nativeType"]
4020 [::std::mem::offset_of!(BNRelocationInfo, nativeType) - 32usize];
4021 ["Offset of field: BNRelocationInfo::addend"]
4022 [::std::mem::offset_of!(BNRelocationInfo, addend) - 40usize];
4023 ["Offset of field: BNRelocationInfo::hasSign"]
4024 [::std::mem::offset_of!(BNRelocationInfo, hasSign) - 48usize];
4025 ["Offset of field: BNRelocationInfo::implicitAddend"]
4026 [::std::mem::offset_of!(BNRelocationInfo, implicitAddend) - 49usize];
4027 ["Offset of field: BNRelocationInfo::external"]
4028 [::std::mem::offset_of!(BNRelocationInfo, external) - 50usize];
4029 ["Offset of field: BNRelocationInfo::symbolIndex"]
4030 [::std::mem::offset_of!(BNRelocationInfo, symbolIndex) - 56usize];
4031 ["Offset of field: BNRelocationInfo::sectionIndex"]
4032 [::std::mem::offset_of!(BNRelocationInfo, sectionIndex) - 64usize];
4033 ["Offset of field: BNRelocationInfo::address"]
4034 [::std::mem::offset_of!(BNRelocationInfo, address) - 72usize];
4035 ["Offset of field: BNRelocationInfo::target"]
4036 [::std::mem::offset_of!(BNRelocationInfo, target) - 80usize];
4037 ["Offset of field: BNRelocationInfo::dataRelocation"]
4038 [::std::mem::offset_of!(BNRelocationInfo, dataRelocation) - 88usize];
4039 ["Offset of field: BNRelocationInfo::relocationDataCache"]
4040 [::std::mem::offset_of!(BNRelocationInfo, relocationDataCache) - 89usize];
4041 ["Offset of field: BNRelocationInfo::prev"]
4042 [::std::mem::offset_of!(BNRelocationInfo, prev) - 104usize];
4043 ["Offset of field: BNRelocationInfo::next"]
4044 [::std::mem::offset_of!(BNRelocationInfo, next) - 112usize];
4045};
4046impl Default for BNRelocationInfo {
4047 fn default() -> Self {
4048 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4049 unsafe {
4050 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4051 s.assume_init()
4052 }
4053 }
4054}
4055#[repr(C)]
4056#[derive(Debug, Copy, Clone)]
4057pub struct BNInstructionTextToken {
4058 pub type_: BNInstructionTextTokenType,
4059 pub text: *mut ::std::os::raw::c_char,
4060 pub value: u64,
4061 pub width: u64,
4062 pub size: usize,
4063 pub operand: usize,
4064 pub context: BNInstructionTextTokenContext,
4065 pub confidence: u8,
4066 pub address: u64,
4067 pub typeNames: *mut *mut ::std::os::raw::c_char,
4068 pub namesCount: usize,
4069 pub exprIndex: usize,
4070}
4071#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4072const _: () = {
4073 ["Size of BNInstructionTextToken"][::std::mem::size_of::<BNInstructionTextToken>() - 88usize];
4074 ["Alignment of BNInstructionTextToken"]
4075 [::std::mem::align_of::<BNInstructionTextToken>() - 8usize];
4076 ["Offset of field: BNInstructionTextToken::type_"]
4077 [::std::mem::offset_of!(BNInstructionTextToken, type_) - 0usize];
4078 ["Offset of field: BNInstructionTextToken::text"]
4079 [::std::mem::offset_of!(BNInstructionTextToken, text) - 8usize];
4080 ["Offset of field: BNInstructionTextToken::value"]
4081 [::std::mem::offset_of!(BNInstructionTextToken, value) - 16usize];
4082 ["Offset of field: BNInstructionTextToken::width"]
4083 [::std::mem::offset_of!(BNInstructionTextToken, width) - 24usize];
4084 ["Offset of field: BNInstructionTextToken::size"]
4085 [::std::mem::offset_of!(BNInstructionTextToken, size) - 32usize];
4086 ["Offset of field: BNInstructionTextToken::operand"]
4087 [::std::mem::offset_of!(BNInstructionTextToken, operand) - 40usize];
4088 ["Offset of field: BNInstructionTextToken::context"]
4089 [::std::mem::offset_of!(BNInstructionTextToken, context) - 48usize];
4090 ["Offset of field: BNInstructionTextToken::confidence"]
4091 [::std::mem::offset_of!(BNInstructionTextToken, confidence) - 49usize];
4092 ["Offset of field: BNInstructionTextToken::address"]
4093 [::std::mem::offset_of!(BNInstructionTextToken, address) - 56usize];
4094 ["Offset of field: BNInstructionTextToken::typeNames"]
4095 [::std::mem::offset_of!(BNInstructionTextToken, typeNames) - 64usize];
4096 ["Offset of field: BNInstructionTextToken::namesCount"]
4097 [::std::mem::offset_of!(BNInstructionTextToken, namesCount) - 72usize];
4098 ["Offset of field: BNInstructionTextToken::exprIndex"]
4099 [::std::mem::offset_of!(BNInstructionTextToken, exprIndex) - 80usize];
4100};
4101impl Default for BNInstructionTextToken {
4102 fn default() -> Self {
4103 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4104 unsafe {
4105 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4106 s.assume_init()
4107 }
4108 }
4109}
4110#[repr(C)]
4111#[derive(Debug, Copy, Clone)]
4112pub struct BNInstructionTextLine {
4113 pub tokens: *mut BNInstructionTextToken,
4114 pub count: usize,
4115}
4116#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4117const _: () = {
4118 ["Size of BNInstructionTextLine"][::std::mem::size_of::<BNInstructionTextLine>() - 16usize];
4119 ["Alignment of BNInstructionTextLine"]
4120 [::std::mem::align_of::<BNInstructionTextLine>() - 8usize];
4121 ["Offset of field: BNInstructionTextLine::tokens"]
4122 [::std::mem::offset_of!(BNInstructionTextLine, tokens) - 0usize];
4123 ["Offset of field: BNInstructionTextLine::count"]
4124 [::std::mem::offset_of!(BNInstructionTextLine, count) - 8usize];
4125};
4126impl Default for BNInstructionTextLine {
4127 fn default() -> Self {
4128 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4129 unsafe {
4130 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4131 s.assume_init()
4132 }
4133 }
4134}
4135#[repr(u8)]
4136#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4137pub enum BNTypeDefinitionLineType {
4138 TypedefLineType = 0,
4139 StructDefinitionLineType = 1,
4140 StructFieldLineType = 2,
4141 StructDefinitionEndLineType = 3,
4142 EnumDefinitionLineType = 4,
4143 EnumMemberLineType = 5,
4144 EnumDefinitionEndLineType = 6,
4145 PaddingLineType = 7,
4146 UndefinedXrefLineType = 8,
4147 CollapsedPaddingLineType = 9,
4148 EmptyLineType = 10,
4149}
4150#[repr(C)]
4151#[derive(Debug, Copy, Clone)]
4152pub struct BNTypeDefinitionLine {
4153 pub lineType: BNTypeDefinitionLineType,
4154 pub tokens: *mut BNInstructionTextToken,
4155 pub count: usize,
4156 pub type_: *mut BNType,
4157 pub parentType: *mut BNType,
4158 pub rootType: *mut BNType,
4159 pub rootTypeName: *mut ::std::os::raw::c_char,
4160 pub baseType: *mut BNNamedTypeReference,
4161 pub baseOffset: u64,
4162 pub offset: u64,
4163 pub fieldIndex: usize,
4164}
4165#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4166const _: () = {
4167 ["Size of BNTypeDefinitionLine"][::std::mem::size_of::<BNTypeDefinitionLine>() - 88usize];
4168 ["Alignment of BNTypeDefinitionLine"][::std::mem::align_of::<BNTypeDefinitionLine>() - 8usize];
4169 ["Offset of field: BNTypeDefinitionLine::lineType"]
4170 [::std::mem::offset_of!(BNTypeDefinitionLine, lineType) - 0usize];
4171 ["Offset of field: BNTypeDefinitionLine::tokens"]
4172 [::std::mem::offset_of!(BNTypeDefinitionLine, tokens) - 8usize];
4173 ["Offset of field: BNTypeDefinitionLine::count"]
4174 [::std::mem::offset_of!(BNTypeDefinitionLine, count) - 16usize];
4175 ["Offset of field: BNTypeDefinitionLine::type_"]
4176 [::std::mem::offset_of!(BNTypeDefinitionLine, type_) - 24usize];
4177 ["Offset of field: BNTypeDefinitionLine::parentType"]
4178 [::std::mem::offset_of!(BNTypeDefinitionLine, parentType) - 32usize];
4179 ["Offset of field: BNTypeDefinitionLine::rootType"]
4180 [::std::mem::offset_of!(BNTypeDefinitionLine, rootType) - 40usize];
4181 ["Offset of field: BNTypeDefinitionLine::rootTypeName"]
4182 [::std::mem::offset_of!(BNTypeDefinitionLine, rootTypeName) - 48usize];
4183 ["Offset of field: BNTypeDefinitionLine::baseType"]
4184 [::std::mem::offset_of!(BNTypeDefinitionLine, baseType) - 56usize];
4185 ["Offset of field: BNTypeDefinitionLine::baseOffset"]
4186 [::std::mem::offset_of!(BNTypeDefinitionLine, baseOffset) - 64usize];
4187 ["Offset of field: BNTypeDefinitionLine::offset"]
4188 [::std::mem::offset_of!(BNTypeDefinitionLine, offset) - 72usize];
4189 ["Offset of field: BNTypeDefinitionLine::fieldIndex"]
4190 [::std::mem::offset_of!(BNTypeDefinitionLine, fieldIndex) - 80usize];
4191};
4192impl Default for BNTypeDefinitionLine {
4193 fn default() -> Self {
4194 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4195 unsafe {
4196 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4197 s.assume_init()
4198 }
4199 }
4200}
4201#[repr(C)]
4202#[derive(Debug, Copy, Clone)]
4203pub struct BNFlagConditionForSemanticClass {
4204 pub semanticClass: u32,
4205 pub condition: BNLowLevelILFlagCondition,
4206}
4207#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4208const _: () = {
4209 ["Size of BNFlagConditionForSemanticClass"]
4210 [::std::mem::size_of::<BNFlagConditionForSemanticClass>() - 8usize];
4211 ["Alignment of BNFlagConditionForSemanticClass"]
4212 [::std::mem::align_of::<BNFlagConditionForSemanticClass>() - 4usize];
4213 ["Offset of field: BNFlagConditionForSemanticClass::semanticClass"]
4214 [::std::mem::offset_of!(BNFlagConditionForSemanticClass, semanticClass) - 0usize];
4215 ["Offset of field: BNFlagConditionForSemanticClass::condition"]
4216 [::std::mem::offset_of!(BNFlagConditionForSemanticClass, condition) - 4usize];
4217};
4218impl Default for BNFlagConditionForSemanticClass {
4219 fn default() -> Self {
4220 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4221 unsafe {
4222 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4223 s.assume_init()
4224 }
4225 }
4226}
4227#[repr(C)]
4228#[derive(Debug, Copy, Clone)]
4229pub struct BNNameAndType {
4230 pub name: *mut ::std::os::raw::c_char,
4231 pub type_: *mut BNType,
4232 pub typeConfidence: u8,
4233}
4234#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4235const _: () = {
4236 ["Size of BNNameAndType"][::std::mem::size_of::<BNNameAndType>() - 24usize];
4237 ["Alignment of BNNameAndType"][::std::mem::align_of::<BNNameAndType>() - 8usize];
4238 ["Offset of field: BNNameAndType::name"][::std::mem::offset_of!(BNNameAndType, name) - 0usize];
4239 ["Offset of field: BNNameAndType::type_"]
4240 [::std::mem::offset_of!(BNNameAndType, type_) - 8usize];
4241 ["Offset of field: BNNameAndType::typeConfidence"]
4242 [::std::mem::offset_of!(BNNameAndType, typeConfidence) - 16usize];
4243};
4244impl Default for BNNameAndType {
4245 fn default() -> Self {
4246 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4247 unsafe {
4248 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4249 s.assume_init()
4250 }
4251 }
4252}
4253#[repr(C)]
4254#[derive(Debug, Copy, Clone)]
4255pub struct BNTypeWithConfidence {
4256 pub type_: *mut BNType,
4257 pub confidence: u8,
4258}
4259#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4260const _: () = {
4261 ["Size of BNTypeWithConfidence"][::std::mem::size_of::<BNTypeWithConfidence>() - 16usize];
4262 ["Alignment of BNTypeWithConfidence"][::std::mem::align_of::<BNTypeWithConfidence>() - 8usize];
4263 ["Offset of field: BNTypeWithConfidence::type_"]
4264 [::std::mem::offset_of!(BNTypeWithConfidence, type_) - 0usize];
4265 ["Offset of field: BNTypeWithConfidence::confidence"]
4266 [::std::mem::offset_of!(BNTypeWithConfidence, confidence) - 8usize];
4267};
4268impl Default for BNTypeWithConfidence {
4269 fn default() -> Self {
4270 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4271 unsafe {
4272 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4273 s.assume_init()
4274 }
4275 }
4276}
4277#[repr(u8)]
4278#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4279pub enum BNFunctionAnalysisSkipOverride {
4280 DefaultFunctionAnalysisSkip = 0,
4281 NeverSkipFunctionAnalysis = 1,
4282 AlwaysSkipFunctionAnalysis = 2,
4283}
4284#[repr(C)]
4285#[derive(Debug, Copy, Clone)]
4286pub struct BNBasicBlockAnalysisContext {
4287 pub function: *mut BNFunction,
4288 #[doc = " IN"]
4289 pub analysisSkipOverride: BNFunctionAnalysisSkipOverride,
4290 pub guidedAnalysisMode: bool,
4291 pub triggerGuidedOnInvalidInstruction: bool,
4292 pub translateTailCalls: bool,
4293 pub disallowBranchToString: bool,
4294 pub maxFunctionSize: u64,
4295 pub indirectBranchesCount: usize,
4296 pub indirectBranches: *mut BNIndirectBranchInfo,
4297 pub indirectNoReturnCallsCount: usize,
4298 pub indirectNoReturnCalls: *mut BNArchitectureAndAddress,
4299 #[doc = " OUT; can be set directly"]
4300 pub maxSizeReached: bool,
4301 #[doc = " IN *and* OUT"]
4302 pub contextualFunctionReturnCount: usize,
4303 pub contextualFunctionReturnLocations: *mut BNArchitectureAndAddress,
4304 pub contextualFunctionReturnValues: *mut bool,
4305 #[doc = " OUT"]
4306 pub directRefCount: usize,
4307 pub directRefSources: *mut BNArchitectureAndAddress,
4308 pub directRefTargets: *mut u64,
4309 pub directNoReturnCallsCount: usize,
4310 pub directNoReturnCalls: *mut BNArchitectureAndAddress,
4311 pub haltedDisassemblyAddressesCount: usize,
4312 pub haltedDisassemblyAddresses: *mut BNArchitectureAndAddress,
4313 pub inlinedUnresolvedIndirectBranchCount: usize,
4314 pub inlinedUnresolvedIndirectBranches: *mut BNArchitectureAndAddress,
4315 pub functionArchContext: *mut ::std::os::raw::c_void,
4316}
4317#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4318const _: () = {
4319 ["Size of BNBasicBlockAnalysisContext"]
4320 [::std::mem::size_of::<BNBasicBlockAnalysisContext>() - 168usize];
4321 ["Alignment of BNBasicBlockAnalysisContext"]
4322 [::std::mem::align_of::<BNBasicBlockAnalysisContext>() - 8usize];
4323 ["Offset of field: BNBasicBlockAnalysisContext::function"]
4324 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, function) - 0usize];
4325 ["Offset of field: BNBasicBlockAnalysisContext::analysisSkipOverride"]
4326 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, analysisSkipOverride) - 8usize];
4327 ["Offset of field: BNBasicBlockAnalysisContext::guidedAnalysisMode"]
4328 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, guidedAnalysisMode) - 9usize];
4329 ["Offset of field: BNBasicBlockAnalysisContext::triggerGuidedOnInvalidInstruction"][::std::mem::offset_of!(
4330 BNBasicBlockAnalysisContext,
4331 triggerGuidedOnInvalidInstruction
4332 )
4333 - 10usize];
4334 ["Offset of field: BNBasicBlockAnalysisContext::translateTailCalls"]
4335 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, translateTailCalls) - 11usize];
4336 ["Offset of field: BNBasicBlockAnalysisContext::disallowBranchToString"]
4337 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, disallowBranchToString) - 12usize];
4338 ["Offset of field: BNBasicBlockAnalysisContext::maxFunctionSize"]
4339 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, maxFunctionSize) - 16usize];
4340 ["Offset of field: BNBasicBlockAnalysisContext::indirectBranchesCount"]
4341 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, indirectBranchesCount) - 24usize];
4342 ["Offset of field: BNBasicBlockAnalysisContext::indirectBranches"]
4343 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, indirectBranches) - 32usize];
4344 ["Offset of field: BNBasicBlockAnalysisContext::indirectNoReturnCallsCount"]
4345 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, indirectNoReturnCallsCount) - 40usize];
4346 ["Offset of field: BNBasicBlockAnalysisContext::indirectNoReturnCalls"]
4347 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, indirectNoReturnCalls) - 48usize];
4348 ["Offset of field: BNBasicBlockAnalysisContext::maxSizeReached"]
4349 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, maxSizeReached) - 56usize];
4350 ["Offset of field: BNBasicBlockAnalysisContext::contextualFunctionReturnCount"][::std::mem::offset_of!(
4351 BNBasicBlockAnalysisContext,
4352 contextualFunctionReturnCount
4353 ) - 64usize];
4354 ["Offset of field: BNBasicBlockAnalysisContext::contextualFunctionReturnLocations"][::std::mem::offset_of!(
4355 BNBasicBlockAnalysisContext,
4356 contextualFunctionReturnLocations
4357 )
4358 - 72usize];
4359 ["Offset of field: BNBasicBlockAnalysisContext::contextualFunctionReturnValues"][::std::mem::offset_of!(
4360 BNBasicBlockAnalysisContext,
4361 contextualFunctionReturnValues
4362 ) - 80usize];
4363 ["Offset of field: BNBasicBlockAnalysisContext::directRefCount"]
4364 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, directRefCount) - 88usize];
4365 ["Offset of field: BNBasicBlockAnalysisContext::directRefSources"]
4366 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, directRefSources) - 96usize];
4367 ["Offset of field: BNBasicBlockAnalysisContext::directRefTargets"]
4368 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, directRefTargets) - 104usize];
4369 ["Offset of field: BNBasicBlockAnalysisContext::directNoReturnCallsCount"]
4370 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, directNoReturnCallsCount) - 112usize];
4371 ["Offset of field: BNBasicBlockAnalysisContext::directNoReturnCalls"]
4372 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, directNoReturnCalls) - 120usize];
4373 ["Offset of field: BNBasicBlockAnalysisContext::haltedDisassemblyAddressesCount"][::std::mem::offset_of!(
4374 BNBasicBlockAnalysisContext,
4375 haltedDisassemblyAddressesCount
4376 ) - 128usize];
4377 ["Offset of field: BNBasicBlockAnalysisContext::haltedDisassemblyAddresses"][::std::mem::offset_of!(
4378 BNBasicBlockAnalysisContext,
4379 haltedDisassemblyAddresses
4380 ) - 136usize];
4381 ["Offset of field: BNBasicBlockAnalysisContext::inlinedUnresolvedIndirectBranchCount"][::std::mem::offset_of!(
4382 BNBasicBlockAnalysisContext,
4383 inlinedUnresolvedIndirectBranchCount
4384 )
4385 - 144usize];
4386 ["Offset of field: BNBasicBlockAnalysisContext::inlinedUnresolvedIndirectBranches"][::std::mem::offset_of!(
4387 BNBasicBlockAnalysisContext,
4388 inlinedUnresolvedIndirectBranches
4389 )
4390 - 152usize];
4391 ["Offset of field: BNBasicBlockAnalysisContext::functionArchContext"]
4392 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, functionArchContext) - 160usize];
4393};
4394impl Default for BNBasicBlockAnalysisContext {
4395 fn default() -> Self {
4396 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4397 unsafe {
4398 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4399 s.assume_init()
4400 }
4401 }
4402}
4403#[repr(C)]
4404#[derive(Debug, Copy, Clone)]
4405pub struct BNFunctionLifterContext {
4406 #[doc = " IN"]
4407 pub platform: *mut BNPlatform,
4408 pub logger: *mut BNLogger,
4409 pub basicBlockCount: usize,
4410 pub basicBlocks: *mut *mut BNBasicBlock,
4411 pub inlinedRemappingEntryCount: usize,
4412 pub inlinedRemappingKeys: *mut BNArchitectureAndAddress,
4413 pub inlinedRemappingValues: *mut BNArchitectureAndAddress,
4414 pub indirectBranchesCount: usize,
4415 pub indirectBranches: *mut BNIndirectBranchInfo,
4416 pub noReturnCallsCount: usize,
4417 pub noReturnCalls: *mut BNArchitectureAndAddress,
4418 pub contextualFunctionReturnCount: usize,
4419 pub contextualFunctionReturnLocations: *mut BNArchitectureAndAddress,
4420 pub contextualFunctionReturnValues: *mut bool,
4421 pub inlinedCallsCount: usize,
4422 pub inlinedCalls: *mut u64,
4423 pub functionArchContext: *mut ::std::os::raw::c_void,
4424 #[doc = " OUT"]
4425 pub containsInlinedFunctions: *mut bool,
4426}
4427#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4428const _: () = {
4429 ["Size of BNFunctionLifterContext"]
4430 [::std::mem::size_of::<BNFunctionLifterContext>() - 144usize];
4431 ["Alignment of BNFunctionLifterContext"]
4432 [::std::mem::align_of::<BNFunctionLifterContext>() - 8usize];
4433 ["Offset of field: BNFunctionLifterContext::platform"]
4434 [::std::mem::offset_of!(BNFunctionLifterContext, platform) - 0usize];
4435 ["Offset of field: BNFunctionLifterContext::logger"]
4436 [::std::mem::offset_of!(BNFunctionLifterContext, logger) - 8usize];
4437 ["Offset of field: BNFunctionLifterContext::basicBlockCount"]
4438 [::std::mem::offset_of!(BNFunctionLifterContext, basicBlockCount) - 16usize];
4439 ["Offset of field: BNFunctionLifterContext::basicBlocks"]
4440 [::std::mem::offset_of!(BNFunctionLifterContext, basicBlocks) - 24usize];
4441 ["Offset of field: BNFunctionLifterContext::inlinedRemappingEntryCount"]
4442 [::std::mem::offset_of!(BNFunctionLifterContext, inlinedRemappingEntryCount) - 32usize];
4443 ["Offset of field: BNFunctionLifterContext::inlinedRemappingKeys"]
4444 [::std::mem::offset_of!(BNFunctionLifterContext, inlinedRemappingKeys) - 40usize];
4445 ["Offset of field: BNFunctionLifterContext::inlinedRemappingValues"]
4446 [::std::mem::offset_of!(BNFunctionLifterContext, inlinedRemappingValues) - 48usize];
4447 ["Offset of field: BNFunctionLifterContext::indirectBranchesCount"]
4448 [::std::mem::offset_of!(BNFunctionLifterContext, indirectBranchesCount) - 56usize];
4449 ["Offset of field: BNFunctionLifterContext::indirectBranches"]
4450 [::std::mem::offset_of!(BNFunctionLifterContext, indirectBranches) - 64usize];
4451 ["Offset of field: BNFunctionLifterContext::noReturnCallsCount"]
4452 [::std::mem::offset_of!(BNFunctionLifterContext, noReturnCallsCount) - 72usize];
4453 ["Offset of field: BNFunctionLifterContext::noReturnCalls"]
4454 [::std::mem::offset_of!(BNFunctionLifterContext, noReturnCalls) - 80usize];
4455 ["Offset of field: BNFunctionLifterContext::contextualFunctionReturnCount"]
4456 [::std::mem::offset_of!(BNFunctionLifterContext, contextualFunctionReturnCount) - 88usize];
4457 ["Offset of field: BNFunctionLifterContext::contextualFunctionReturnLocations"][::std::mem::offset_of!(
4458 BNFunctionLifterContext,
4459 contextualFunctionReturnLocations
4460 ) - 96usize];
4461 ["Offset of field: BNFunctionLifterContext::contextualFunctionReturnValues"][::std::mem::offset_of!(
4462 BNFunctionLifterContext,
4463 contextualFunctionReturnValues
4464 ) - 104usize];
4465 ["Offset of field: BNFunctionLifterContext::inlinedCallsCount"]
4466 [::std::mem::offset_of!(BNFunctionLifterContext, inlinedCallsCount) - 112usize];
4467 ["Offset of field: BNFunctionLifterContext::inlinedCalls"]
4468 [::std::mem::offset_of!(BNFunctionLifterContext, inlinedCalls) - 120usize];
4469 ["Offset of field: BNFunctionLifterContext::functionArchContext"]
4470 [::std::mem::offset_of!(BNFunctionLifterContext, functionArchContext) - 128usize];
4471 ["Offset of field: BNFunctionLifterContext::containsInlinedFunctions"]
4472 [::std::mem::offset_of!(BNFunctionLifterContext, containsInlinedFunctions) - 136usize];
4473};
4474impl Default for BNFunctionLifterContext {
4475 fn default() -> Self {
4476 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4477 unsafe {
4478 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4479 s.assume_init()
4480 }
4481 }
4482}
4483#[repr(C)]
4484#[derive(Debug, Copy, Clone)]
4485pub struct BNCustomArchitecture {
4486 pub context: *mut ::std::os::raw::c_void,
4487 pub init: ::std::option::Option<
4488 unsafe extern "C" fn(context: *mut ::std::os::raw::c_void, obj: *mut BNArchitecture),
4489 >,
4490 pub getEndianness: ::std::option::Option<
4491 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> BNEndianness,
4492 >,
4493 pub getAddressSize:
4494 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
4495 pub getDefaultIntegerSize:
4496 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
4497 pub getInstructionAlignment:
4498 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
4499 pub getMaxInstructionLength:
4500 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
4501 pub getOpcodeDisplayLength:
4502 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
4503 pub getAssociatedArchitectureByAddress: ::std::option::Option<
4504 unsafe extern "C" fn(
4505 ctxt: *mut ::std::os::raw::c_void,
4506 addr: *mut u64,
4507 ) -> *mut BNArchitecture,
4508 >,
4509 pub getInstructionInfo: ::std::option::Option<
4510 unsafe extern "C" fn(
4511 ctxt: *mut ::std::os::raw::c_void,
4512 data: *const u8,
4513 addr: u64,
4514 maxLen: usize,
4515 result: *mut BNInstructionInfo,
4516 ) -> bool,
4517 >,
4518 pub getInstructionText: ::std::option::Option<
4519 unsafe extern "C" fn(
4520 ctxt: *mut ::std::os::raw::c_void,
4521 data: *const u8,
4522 addr: u64,
4523 len: *mut usize,
4524 result: *mut *mut BNInstructionTextToken,
4525 count: *mut usize,
4526 ) -> bool,
4527 >,
4528 pub getInstructionTextWithContext: ::std::option::Option<
4529 unsafe extern "C" fn(
4530 ctxt: *mut ::std::os::raw::c_void,
4531 data: *const u8,
4532 addr: u64,
4533 len: *mut usize,
4534 context: *mut ::std::os::raw::c_void,
4535 result: *mut *mut BNInstructionTextToken,
4536 count: *mut usize,
4537 ) -> bool,
4538 >,
4539 pub freeInstructionText: ::std::option::Option<
4540 unsafe extern "C" fn(tokens: *mut BNInstructionTextToken, count: usize),
4541 >,
4542 pub getInstructionLowLevelIL: ::std::option::Option<
4543 unsafe extern "C" fn(
4544 ctxt: *mut ::std::os::raw::c_void,
4545 data: *const u8,
4546 addr: u64,
4547 len: *mut usize,
4548 il: *mut BNLowLevelILFunction,
4549 ) -> bool,
4550 >,
4551 pub analyzeBasicBlocks: ::std::option::Option<
4552 unsafe extern "C" fn(
4553 ctxt: *mut ::std::os::raw::c_void,
4554 function: *mut BNFunction,
4555 context: *mut BNBasicBlockAnalysisContext,
4556 ),
4557 >,
4558 pub liftFunction: ::std::option::Option<
4559 unsafe extern "C" fn(
4560 ctext: *mut ::std::os::raw::c_void,
4561 function: *mut BNLowLevelILFunction,
4562 context: *mut BNFunctionLifterContext,
4563 ) -> bool,
4564 >,
4565 pub freeFunctionArchContext: ::std::option::Option<
4566 unsafe extern "C" fn(
4567 ctxt: *mut ::std::os::raw::c_void,
4568 context: *mut ::std::os::raw::c_void,
4569 ),
4570 >,
4571 pub getRegisterName: ::std::option::Option<
4572 unsafe extern "C" fn(
4573 ctxt: *mut ::std::os::raw::c_void,
4574 reg: u32,
4575 ) -> *mut ::std::os::raw::c_char,
4576 >,
4577 pub getFlagName: ::std::option::Option<
4578 unsafe extern "C" fn(
4579 ctxt: *mut ::std::os::raw::c_void,
4580 flag: u32,
4581 ) -> *mut ::std::os::raw::c_char,
4582 >,
4583 pub getFlagWriteTypeName: ::std::option::Option<
4584 unsafe extern "C" fn(
4585 ctxt: *mut ::std::os::raw::c_void,
4586 flags: u32,
4587 ) -> *mut ::std::os::raw::c_char,
4588 >,
4589 pub getSemanticFlagClassName: ::std::option::Option<
4590 unsafe extern "C" fn(
4591 ctxt: *mut ::std::os::raw::c_void,
4592 semClass: u32,
4593 ) -> *mut ::std::os::raw::c_char,
4594 >,
4595 pub getSemanticFlagGroupName: ::std::option::Option<
4596 unsafe extern "C" fn(
4597 ctxt: *mut ::std::os::raw::c_void,
4598 semGroup: u32,
4599 ) -> *mut ::std::os::raw::c_char,
4600 >,
4601 pub getFullWidthRegisters: ::std::option::Option<
4602 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4603 >,
4604 pub getAllRegisters: ::std::option::Option<
4605 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4606 >,
4607 pub getAllFlags: ::std::option::Option<
4608 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4609 >,
4610 pub getAllFlagWriteTypes: ::std::option::Option<
4611 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4612 >,
4613 pub getAllSemanticFlagClasses: ::std::option::Option<
4614 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4615 >,
4616 pub getAllSemanticFlagGroups: ::std::option::Option<
4617 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4618 >,
4619 pub getFlagRole: ::std::option::Option<
4620 unsafe extern "C" fn(
4621 ctxt: *mut ::std::os::raw::c_void,
4622 flag: u32,
4623 semClass: u32,
4624 ) -> BNFlagRole,
4625 >,
4626 pub getFlagsRequiredForFlagCondition: ::std::option::Option<
4627 unsafe extern "C" fn(
4628 ctxt: *mut ::std::os::raw::c_void,
4629 cond: BNLowLevelILFlagCondition,
4630 semClass: u32,
4631 count: *mut usize,
4632 ) -> *mut u32,
4633 >,
4634 pub getFlagsRequiredForSemanticFlagGroup: ::std::option::Option<
4635 unsafe extern "C" fn(
4636 ctxt: *mut ::std::os::raw::c_void,
4637 semGroup: u32,
4638 count: *mut usize,
4639 ) -> *mut u32,
4640 >,
4641 pub getFlagConditionsForSemanticFlagGroup: ::std::option::Option<
4642 unsafe extern "C" fn(
4643 ctxt: *mut ::std::os::raw::c_void,
4644 semGroup: u32,
4645 count: *mut usize,
4646 ) -> *mut BNFlagConditionForSemanticClass,
4647 >,
4648 pub freeFlagConditionsForSemanticFlagGroup: ::std::option::Option<
4649 unsafe extern "C" fn(
4650 ctxt: *mut ::std::os::raw::c_void,
4651 conditions: *mut BNFlagConditionForSemanticClass,
4652 count: usize,
4653 ),
4654 >,
4655 pub getFlagsWrittenByFlagWriteType: ::std::option::Option<
4656 unsafe extern "C" fn(
4657 ctxt: *mut ::std::os::raw::c_void,
4658 writeType: u32,
4659 count: *mut usize,
4660 ) -> *mut u32,
4661 >,
4662 pub getSemanticClassForFlagWriteType: ::std::option::Option<
4663 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, writeType: u32) -> u32,
4664 >,
4665 pub getFlagWriteLowLevelIL: ::std::option::Option<
4666 unsafe extern "C" fn(
4667 ctxt: *mut ::std::os::raw::c_void,
4668 op: BNLowLevelILOperation,
4669 size: usize,
4670 flagWriteType: u32,
4671 flag: u32,
4672 operands: *mut BNRegisterOrConstant,
4673 operandCount: usize,
4674 il: *mut BNLowLevelILFunction,
4675 ) -> usize,
4676 >,
4677 pub getFlagConditionLowLevelIL: ::std::option::Option<
4678 unsafe extern "C" fn(
4679 ctxt: *mut ::std::os::raw::c_void,
4680 cond: BNLowLevelILFlagCondition,
4681 semClass: u32,
4682 il: *mut BNLowLevelILFunction,
4683 ) -> usize,
4684 >,
4685 pub getSemanticFlagGroupLowLevelIL: ::std::option::Option<
4686 unsafe extern "C" fn(
4687 ctxt: *mut ::std::os::raw::c_void,
4688 semGroup: u32,
4689 il: *mut BNLowLevelILFunction,
4690 ) -> usize,
4691 >,
4692 pub freeRegisterList: ::std::option::Option<
4693 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, regs: *mut u32, count: usize),
4694 >,
4695 pub getRegisterInfo: ::std::option::Option<
4696 unsafe extern "C" fn(
4697 ctxt: *mut ::std::os::raw::c_void,
4698 reg: u32,
4699 result: *mut BNRegisterInfo,
4700 ),
4701 >,
4702 pub getStackPointerRegister:
4703 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
4704 pub getLinkRegister:
4705 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
4706 pub getGlobalRegisters: ::std::option::Option<
4707 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4708 >,
4709 pub getSystemRegisters: ::std::option::Option<
4710 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4711 >,
4712 pub getRegisterStackName: ::std::option::Option<
4713 unsafe extern "C" fn(
4714 ctxt: *mut ::std::os::raw::c_void,
4715 regStack: u32,
4716 ) -> *mut ::std::os::raw::c_char,
4717 >,
4718 pub getAllRegisterStacks: ::std::option::Option<
4719 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4720 >,
4721 pub getRegisterStackInfo: ::std::option::Option<
4722 unsafe extern "C" fn(
4723 ctxt: *mut ::std::os::raw::c_void,
4724 regStack: u32,
4725 result: *mut BNRegisterStackInfo,
4726 ),
4727 >,
4728 pub getIntrinsicClass: ::std::option::Option<
4729 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, intrinsic: u32) -> BNIntrinsicClass,
4730 >,
4731 pub getIntrinsicName: ::std::option::Option<
4732 unsafe extern "C" fn(
4733 ctxt: *mut ::std::os::raw::c_void,
4734 intrinsic: u32,
4735 ) -> *mut ::std::os::raw::c_char,
4736 >,
4737 pub getAllIntrinsics: ::std::option::Option<
4738 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4739 >,
4740 pub getIntrinsicInputs: ::std::option::Option<
4741 unsafe extern "C" fn(
4742 ctxt: *mut ::std::os::raw::c_void,
4743 intrinsic: u32,
4744 count: *mut usize,
4745 ) -> *mut BNNameAndType,
4746 >,
4747 pub freeNameAndTypeList: ::std::option::Option<
4748 unsafe extern "C" fn(
4749 ctxt: *mut ::std::os::raw::c_void,
4750 nt: *mut BNNameAndType,
4751 count: usize,
4752 ),
4753 >,
4754 pub getIntrinsicOutputs: ::std::option::Option<
4755 unsafe extern "C" fn(
4756 ctxt: *mut ::std::os::raw::c_void,
4757 intrinsic: u32,
4758 count: *mut usize,
4759 ) -> *mut BNTypeWithConfidence,
4760 >,
4761 pub freeTypeList: ::std::option::Option<
4762 unsafe extern "C" fn(
4763 ctxt: *mut ::std::os::raw::c_void,
4764 types: *mut BNTypeWithConfidence,
4765 count: usize,
4766 ),
4767 >,
4768 pub canAssemble:
4769 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
4770 pub assemble: ::std::option::Option<
4771 unsafe extern "C" fn(
4772 ctxt: *mut ::std::os::raw::c_void,
4773 code: *const ::std::os::raw::c_char,
4774 addr: u64,
4775 result: *mut BNDataBuffer,
4776 errors: *mut *mut ::std::os::raw::c_char,
4777 ) -> bool,
4778 >,
4779 pub isNeverBranchPatchAvailable: ::std::option::Option<
4780 unsafe extern "C" fn(
4781 ctxt: *mut ::std::os::raw::c_void,
4782 data: *const u8,
4783 addr: u64,
4784 len: usize,
4785 ) -> bool,
4786 >,
4787 pub isAlwaysBranchPatchAvailable: ::std::option::Option<
4788 unsafe extern "C" fn(
4789 ctxt: *mut ::std::os::raw::c_void,
4790 data: *const u8,
4791 addr: u64,
4792 len: usize,
4793 ) -> bool,
4794 >,
4795 pub isInvertBranchPatchAvailable: ::std::option::Option<
4796 unsafe extern "C" fn(
4797 ctxt: *mut ::std::os::raw::c_void,
4798 data: *const u8,
4799 addr: u64,
4800 len: usize,
4801 ) -> bool,
4802 >,
4803 pub isSkipAndReturnZeroPatchAvailable: ::std::option::Option<
4804 unsafe extern "C" fn(
4805 ctxt: *mut ::std::os::raw::c_void,
4806 data: *const u8,
4807 addr: u64,
4808 len: usize,
4809 ) -> bool,
4810 >,
4811 pub isSkipAndReturnValuePatchAvailable: ::std::option::Option<
4812 unsafe extern "C" fn(
4813 ctxt: *mut ::std::os::raw::c_void,
4814 data: *const u8,
4815 addr: u64,
4816 len: usize,
4817 ) -> bool,
4818 >,
4819 pub convertToNop: ::std::option::Option<
4820 unsafe extern "C" fn(
4821 ctxt: *mut ::std::os::raw::c_void,
4822 data: *mut u8,
4823 addr: u64,
4824 len: usize,
4825 ) -> bool,
4826 >,
4827 pub alwaysBranch: ::std::option::Option<
4828 unsafe extern "C" fn(
4829 ctxt: *mut ::std::os::raw::c_void,
4830 data: *mut u8,
4831 addr: u64,
4832 len: usize,
4833 ) -> bool,
4834 >,
4835 pub invertBranch: ::std::option::Option<
4836 unsafe extern "C" fn(
4837 ctxt: *mut ::std::os::raw::c_void,
4838 data: *mut u8,
4839 addr: u64,
4840 len: usize,
4841 ) -> bool,
4842 >,
4843 pub skipAndReturnValue: ::std::option::Option<
4844 unsafe extern "C" fn(
4845 ctxt: *mut ::std::os::raw::c_void,
4846 data: *mut u8,
4847 addr: u64,
4848 len: usize,
4849 value: u64,
4850 ) -> bool,
4851 >,
4852}
4853#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4854const _: () = {
4855 ["Size of BNCustomArchitecture"][::std::mem::size_of::<BNCustomArchitecture>() - 520usize];
4856 ["Alignment of BNCustomArchitecture"][::std::mem::align_of::<BNCustomArchitecture>() - 8usize];
4857 ["Offset of field: BNCustomArchitecture::context"]
4858 [::std::mem::offset_of!(BNCustomArchitecture, context) - 0usize];
4859 ["Offset of field: BNCustomArchitecture::init"]
4860 [::std::mem::offset_of!(BNCustomArchitecture, init) - 8usize];
4861 ["Offset of field: BNCustomArchitecture::getEndianness"]
4862 [::std::mem::offset_of!(BNCustomArchitecture, getEndianness) - 16usize];
4863 ["Offset of field: BNCustomArchitecture::getAddressSize"]
4864 [::std::mem::offset_of!(BNCustomArchitecture, getAddressSize) - 24usize];
4865 ["Offset of field: BNCustomArchitecture::getDefaultIntegerSize"]
4866 [::std::mem::offset_of!(BNCustomArchitecture, getDefaultIntegerSize) - 32usize];
4867 ["Offset of field: BNCustomArchitecture::getInstructionAlignment"]
4868 [::std::mem::offset_of!(BNCustomArchitecture, getInstructionAlignment) - 40usize];
4869 ["Offset of field: BNCustomArchitecture::getMaxInstructionLength"]
4870 [::std::mem::offset_of!(BNCustomArchitecture, getMaxInstructionLength) - 48usize];
4871 ["Offset of field: BNCustomArchitecture::getOpcodeDisplayLength"]
4872 [::std::mem::offset_of!(BNCustomArchitecture, getOpcodeDisplayLength) - 56usize];
4873 ["Offset of field: BNCustomArchitecture::getAssociatedArchitectureByAddress"][::std::mem::offset_of!(
4874 BNCustomArchitecture,
4875 getAssociatedArchitectureByAddress
4876 ) - 64usize];
4877 ["Offset of field: BNCustomArchitecture::getInstructionInfo"]
4878 [::std::mem::offset_of!(BNCustomArchitecture, getInstructionInfo) - 72usize];
4879 ["Offset of field: BNCustomArchitecture::getInstructionText"]
4880 [::std::mem::offset_of!(BNCustomArchitecture, getInstructionText) - 80usize];
4881 ["Offset of field: BNCustomArchitecture::getInstructionTextWithContext"]
4882 [::std::mem::offset_of!(BNCustomArchitecture, getInstructionTextWithContext) - 88usize];
4883 ["Offset of field: BNCustomArchitecture::freeInstructionText"]
4884 [::std::mem::offset_of!(BNCustomArchitecture, freeInstructionText) - 96usize];
4885 ["Offset of field: BNCustomArchitecture::getInstructionLowLevelIL"]
4886 [::std::mem::offset_of!(BNCustomArchitecture, getInstructionLowLevelIL) - 104usize];
4887 ["Offset of field: BNCustomArchitecture::analyzeBasicBlocks"]
4888 [::std::mem::offset_of!(BNCustomArchitecture, analyzeBasicBlocks) - 112usize];
4889 ["Offset of field: BNCustomArchitecture::liftFunction"]
4890 [::std::mem::offset_of!(BNCustomArchitecture, liftFunction) - 120usize];
4891 ["Offset of field: BNCustomArchitecture::freeFunctionArchContext"]
4892 [::std::mem::offset_of!(BNCustomArchitecture, freeFunctionArchContext) - 128usize];
4893 ["Offset of field: BNCustomArchitecture::getRegisterName"]
4894 [::std::mem::offset_of!(BNCustomArchitecture, getRegisterName) - 136usize];
4895 ["Offset of field: BNCustomArchitecture::getFlagName"]
4896 [::std::mem::offset_of!(BNCustomArchitecture, getFlagName) - 144usize];
4897 ["Offset of field: BNCustomArchitecture::getFlagWriteTypeName"]
4898 [::std::mem::offset_of!(BNCustomArchitecture, getFlagWriteTypeName) - 152usize];
4899 ["Offset of field: BNCustomArchitecture::getSemanticFlagClassName"]
4900 [::std::mem::offset_of!(BNCustomArchitecture, getSemanticFlagClassName) - 160usize];
4901 ["Offset of field: BNCustomArchitecture::getSemanticFlagGroupName"]
4902 [::std::mem::offset_of!(BNCustomArchitecture, getSemanticFlagGroupName) - 168usize];
4903 ["Offset of field: BNCustomArchitecture::getFullWidthRegisters"]
4904 [::std::mem::offset_of!(BNCustomArchitecture, getFullWidthRegisters) - 176usize];
4905 ["Offset of field: BNCustomArchitecture::getAllRegisters"]
4906 [::std::mem::offset_of!(BNCustomArchitecture, getAllRegisters) - 184usize];
4907 ["Offset of field: BNCustomArchitecture::getAllFlags"]
4908 [::std::mem::offset_of!(BNCustomArchitecture, getAllFlags) - 192usize];
4909 ["Offset of field: BNCustomArchitecture::getAllFlagWriteTypes"]
4910 [::std::mem::offset_of!(BNCustomArchitecture, getAllFlagWriteTypes) - 200usize];
4911 ["Offset of field: BNCustomArchitecture::getAllSemanticFlagClasses"]
4912 [::std::mem::offset_of!(BNCustomArchitecture, getAllSemanticFlagClasses) - 208usize];
4913 ["Offset of field: BNCustomArchitecture::getAllSemanticFlagGroups"]
4914 [::std::mem::offset_of!(BNCustomArchitecture, getAllSemanticFlagGroups) - 216usize];
4915 ["Offset of field: BNCustomArchitecture::getFlagRole"]
4916 [::std::mem::offset_of!(BNCustomArchitecture, getFlagRole) - 224usize];
4917 ["Offset of field: BNCustomArchitecture::getFlagsRequiredForFlagCondition"]
4918 [::std::mem::offset_of!(BNCustomArchitecture, getFlagsRequiredForFlagCondition) - 232usize];
4919 ["Offset of field: BNCustomArchitecture::getFlagsRequiredForSemanticFlagGroup"][::std::mem::offset_of!(
4920 BNCustomArchitecture,
4921 getFlagsRequiredForSemanticFlagGroup
4922 ) - 240usize];
4923 ["Offset of field: BNCustomArchitecture::getFlagConditionsForSemanticFlagGroup"][::std::mem::offset_of!(
4924 BNCustomArchitecture,
4925 getFlagConditionsForSemanticFlagGroup
4926 ) - 248usize];
4927 ["Offset of field: BNCustomArchitecture::freeFlagConditionsForSemanticFlagGroup"][::std::mem::offset_of!(
4928 BNCustomArchitecture,
4929 freeFlagConditionsForSemanticFlagGroup
4930 ) - 256usize];
4931 ["Offset of field: BNCustomArchitecture::getFlagsWrittenByFlagWriteType"]
4932 [::std::mem::offset_of!(BNCustomArchitecture, getFlagsWrittenByFlagWriteType) - 264usize];
4933 ["Offset of field: BNCustomArchitecture::getSemanticClassForFlagWriteType"]
4934 [::std::mem::offset_of!(BNCustomArchitecture, getSemanticClassForFlagWriteType) - 272usize];
4935 ["Offset of field: BNCustomArchitecture::getFlagWriteLowLevelIL"]
4936 [::std::mem::offset_of!(BNCustomArchitecture, getFlagWriteLowLevelIL) - 280usize];
4937 ["Offset of field: BNCustomArchitecture::getFlagConditionLowLevelIL"]
4938 [::std::mem::offset_of!(BNCustomArchitecture, getFlagConditionLowLevelIL) - 288usize];
4939 ["Offset of field: BNCustomArchitecture::getSemanticFlagGroupLowLevelIL"]
4940 [::std::mem::offset_of!(BNCustomArchitecture, getSemanticFlagGroupLowLevelIL) - 296usize];
4941 ["Offset of field: BNCustomArchitecture::freeRegisterList"]
4942 [::std::mem::offset_of!(BNCustomArchitecture, freeRegisterList) - 304usize];
4943 ["Offset of field: BNCustomArchitecture::getRegisterInfo"]
4944 [::std::mem::offset_of!(BNCustomArchitecture, getRegisterInfo) - 312usize];
4945 ["Offset of field: BNCustomArchitecture::getStackPointerRegister"]
4946 [::std::mem::offset_of!(BNCustomArchitecture, getStackPointerRegister) - 320usize];
4947 ["Offset of field: BNCustomArchitecture::getLinkRegister"]
4948 [::std::mem::offset_of!(BNCustomArchitecture, getLinkRegister) - 328usize];
4949 ["Offset of field: BNCustomArchitecture::getGlobalRegisters"]
4950 [::std::mem::offset_of!(BNCustomArchitecture, getGlobalRegisters) - 336usize];
4951 ["Offset of field: BNCustomArchitecture::getSystemRegisters"]
4952 [::std::mem::offset_of!(BNCustomArchitecture, getSystemRegisters) - 344usize];
4953 ["Offset of field: BNCustomArchitecture::getRegisterStackName"]
4954 [::std::mem::offset_of!(BNCustomArchitecture, getRegisterStackName) - 352usize];
4955 ["Offset of field: BNCustomArchitecture::getAllRegisterStacks"]
4956 [::std::mem::offset_of!(BNCustomArchitecture, getAllRegisterStacks) - 360usize];
4957 ["Offset of field: BNCustomArchitecture::getRegisterStackInfo"]
4958 [::std::mem::offset_of!(BNCustomArchitecture, getRegisterStackInfo) - 368usize];
4959 ["Offset of field: BNCustomArchitecture::getIntrinsicClass"]
4960 [::std::mem::offset_of!(BNCustomArchitecture, getIntrinsicClass) - 376usize];
4961 ["Offset of field: BNCustomArchitecture::getIntrinsicName"]
4962 [::std::mem::offset_of!(BNCustomArchitecture, getIntrinsicName) - 384usize];
4963 ["Offset of field: BNCustomArchitecture::getAllIntrinsics"]
4964 [::std::mem::offset_of!(BNCustomArchitecture, getAllIntrinsics) - 392usize];
4965 ["Offset of field: BNCustomArchitecture::getIntrinsicInputs"]
4966 [::std::mem::offset_of!(BNCustomArchitecture, getIntrinsicInputs) - 400usize];
4967 ["Offset of field: BNCustomArchitecture::freeNameAndTypeList"]
4968 [::std::mem::offset_of!(BNCustomArchitecture, freeNameAndTypeList) - 408usize];
4969 ["Offset of field: BNCustomArchitecture::getIntrinsicOutputs"]
4970 [::std::mem::offset_of!(BNCustomArchitecture, getIntrinsicOutputs) - 416usize];
4971 ["Offset of field: BNCustomArchitecture::freeTypeList"]
4972 [::std::mem::offset_of!(BNCustomArchitecture, freeTypeList) - 424usize];
4973 ["Offset of field: BNCustomArchitecture::canAssemble"]
4974 [::std::mem::offset_of!(BNCustomArchitecture, canAssemble) - 432usize];
4975 ["Offset of field: BNCustomArchitecture::assemble"]
4976 [::std::mem::offset_of!(BNCustomArchitecture, assemble) - 440usize];
4977 ["Offset of field: BNCustomArchitecture::isNeverBranchPatchAvailable"]
4978 [::std::mem::offset_of!(BNCustomArchitecture, isNeverBranchPatchAvailable) - 448usize];
4979 ["Offset of field: BNCustomArchitecture::isAlwaysBranchPatchAvailable"]
4980 [::std::mem::offset_of!(BNCustomArchitecture, isAlwaysBranchPatchAvailable) - 456usize];
4981 ["Offset of field: BNCustomArchitecture::isInvertBranchPatchAvailable"]
4982 [::std::mem::offset_of!(BNCustomArchitecture, isInvertBranchPatchAvailable) - 464usize];
4983 ["Offset of field: BNCustomArchitecture::isSkipAndReturnZeroPatchAvailable"][::std::mem::offset_of!(
4984 BNCustomArchitecture,
4985 isSkipAndReturnZeroPatchAvailable
4986 ) - 472usize];
4987 ["Offset of field: BNCustomArchitecture::isSkipAndReturnValuePatchAvailable"][::std::mem::offset_of!(
4988 BNCustomArchitecture,
4989 isSkipAndReturnValuePatchAvailable
4990 ) - 480usize];
4991 ["Offset of field: BNCustomArchitecture::convertToNop"]
4992 [::std::mem::offset_of!(BNCustomArchitecture, convertToNop) - 488usize];
4993 ["Offset of field: BNCustomArchitecture::alwaysBranch"]
4994 [::std::mem::offset_of!(BNCustomArchitecture, alwaysBranch) - 496usize];
4995 ["Offset of field: BNCustomArchitecture::invertBranch"]
4996 [::std::mem::offset_of!(BNCustomArchitecture, invertBranch) - 504usize];
4997 ["Offset of field: BNCustomArchitecture::skipAndReturnValue"]
4998 [::std::mem::offset_of!(BNCustomArchitecture, skipAndReturnValue) - 512usize];
4999};
5000impl Default for BNCustomArchitecture {
5001 fn default() -> Self {
5002 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5003 unsafe {
5004 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5005 s.assume_init()
5006 }
5007 }
5008}
5009#[repr(C)]
5010#[derive(Debug, Copy, Clone)]
5011pub struct BNCustomPlatform {
5012 pub context: *mut ::std::os::raw::c_void,
5013 pub init: ::std::option::Option<
5014 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, obj: *mut BNPlatform),
5015 >,
5016 pub viewInit: ::std::option::Option<
5017 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
5018 >,
5019 pub getGlobalRegisters: ::std::option::Option<
5020 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
5021 >,
5022 pub freeRegisterList: ::std::option::Option<
5023 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, regs: *mut u32, len: usize),
5024 >,
5025 pub getGlobalRegisterType: ::std::option::Option<
5026 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, reg: u32) -> *mut BNType,
5027 >,
5028 pub getAddressSize:
5029 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
5030 pub adjustTypeParserInput: ::std::option::Option<
5031 unsafe extern "C" fn(
5032 ctxt: *mut ::std::os::raw::c_void,
5033 parser: *mut BNTypeParser,
5034 argumentsIn: *const *const ::std::os::raw::c_char,
5035 argumentsLenIn: usize,
5036 sourceFileNamesIn: *const *const ::std::os::raw::c_char,
5037 sourceFileValuesIn: *const *const ::std::os::raw::c_char,
5038 sourceFilesLenIn: usize,
5039 argumentsOut: *mut *mut *mut ::std::os::raw::c_char,
5040 argumentsLenOut: *mut usize,
5041 sourceFileNamesOut: *mut *mut *mut ::std::os::raw::c_char,
5042 sourceFileValuesOut: *mut *mut *mut ::std::os::raw::c_char,
5043 sourceFilesLenOut: *mut usize,
5044 ),
5045 >,
5046 pub freeTypeParserInput: ::std::option::Option<
5047 unsafe extern "C" fn(
5048 ctxt: *mut ::std::os::raw::c_void,
5049 arguments: *mut *mut ::std::os::raw::c_char,
5050 argumentsLen: usize,
5051 sourceFileNames: *mut *mut ::std::os::raw::c_char,
5052 sourceFileValues: *mut *mut ::std::os::raw::c_char,
5053 sourceFilesLen: usize,
5054 ),
5055 >,
5056 pub getFallbackEnabled:
5057 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
5058}
5059#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5060const _: () = {
5061 ["Size of BNCustomPlatform"][::std::mem::size_of::<BNCustomPlatform>() - 80usize];
5062 ["Alignment of BNCustomPlatform"][::std::mem::align_of::<BNCustomPlatform>() - 8usize];
5063 ["Offset of field: BNCustomPlatform::context"]
5064 [::std::mem::offset_of!(BNCustomPlatform, context) - 0usize];
5065 ["Offset of field: BNCustomPlatform::init"]
5066 [::std::mem::offset_of!(BNCustomPlatform, init) - 8usize];
5067 ["Offset of field: BNCustomPlatform::viewInit"]
5068 [::std::mem::offset_of!(BNCustomPlatform, viewInit) - 16usize];
5069 ["Offset of field: BNCustomPlatform::getGlobalRegisters"]
5070 [::std::mem::offset_of!(BNCustomPlatform, getGlobalRegisters) - 24usize];
5071 ["Offset of field: BNCustomPlatform::freeRegisterList"]
5072 [::std::mem::offset_of!(BNCustomPlatform, freeRegisterList) - 32usize];
5073 ["Offset of field: BNCustomPlatform::getGlobalRegisterType"]
5074 [::std::mem::offset_of!(BNCustomPlatform, getGlobalRegisterType) - 40usize];
5075 ["Offset of field: BNCustomPlatform::getAddressSize"]
5076 [::std::mem::offset_of!(BNCustomPlatform, getAddressSize) - 48usize];
5077 ["Offset of field: BNCustomPlatform::adjustTypeParserInput"]
5078 [::std::mem::offset_of!(BNCustomPlatform, adjustTypeParserInput) - 56usize];
5079 ["Offset of field: BNCustomPlatform::freeTypeParserInput"]
5080 [::std::mem::offset_of!(BNCustomPlatform, freeTypeParserInput) - 64usize];
5081 ["Offset of field: BNCustomPlatform::getFallbackEnabled"]
5082 [::std::mem::offset_of!(BNCustomPlatform, getFallbackEnabled) - 72usize];
5083};
5084impl Default for BNCustomPlatform {
5085 fn default() -> Self {
5086 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5087 unsafe {
5088 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5089 s.assume_init()
5090 }
5091 }
5092}
5093#[repr(C)]
5094#[derive(Debug, Copy, Clone)]
5095pub struct BNBasicBlockEdge {
5096 pub type_: BNBranchType,
5097 pub target: *mut BNBasicBlock,
5098 pub backEdge: bool,
5099 pub fallThrough: bool,
5100}
5101#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5102const _: () = {
5103 ["Size of BNBasicBlockEdge"][::std::mem::size_of::<BNBasicBlockEdge>() - 24usize];
5104 ["Alignment of BNBasicBlockEdge"][::std::mem::align_of::<BNBasicBlockEdge>() - 8usize];
5105 ["Offset of field: BNBasicBlockEdge::type_"]
5106 [::std::mem::offset_of!(BNBasicBlockEdge, type_) - 0usize];
5107 ["Offset of field: BNBasicBlockEdge::target"]
5108 [::std::mem::offset_of!(BNBasicBlockEdge, target) - 8usize];
5109 ["Offset of field: BNBasicBlockEdge::backEdge"]
5110 [::std::mem::offset_of!(BNBasicBlockEdge, backEdge) - 16usize];
5111 ["Offset of field: BNBasicBlockEdge::fallThrough"]
5112 [::std::mem::offset_of!(BNBasicBlockEdge, fallThrough) - 17usize];
5113};
5114impl Default for BNBasicBlockEdge {
5115 fn default() -> Self {
5116 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5117 unsafe {
5118 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5119 s.assume_init()
5120 }
5121 }
5122}
5123#[repr(C)]
5124#[derive(Debug, Copy, Clone)]
5125pub struct BNPendingBasicBlockEdge {
5126 pub type_: BNBranchType,
5127 pub arch: *mut BNArchitecture,
5128 pub target: u64,
5129 pub fallThrough: bool,
5130}
5131#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5132const _: () = {
5133 ["Size of BNPendingBasicBlockEdge"][::std::mem::size_of::<BNPendingBasicBlockEdge>() - 32usize];
5134 ["Alignment of BNPendingBasicBlockEdge"]
5135 [::std::mem::align_of::<BNPendingBasicBlockEdge>() - 8usize];
5136 ["Offset of field: BNPendingBasicBlockEdge::type_"]
5137 [::std::mem::offset_of!(BNPendingBasicBlockEdge, type_) - 0usize];
5138 ["Offset of field: BNPendingBasicBlockEdge::arch"]
5139 [::std::mem::offset_of!(BNPendingBasicBlockEdge, arch) - 8usize];
5140 ["Offset of field: BNPendingBasicBlockEdge::target"]
5141 [::std::mem::offset_of!(BNPendingBasicBlockEdge, target) - 16usize];
5142 ["Offset of field: BNPendingBasicBlockEdge::fallThrough"]
5143 [::std::mem::offset_of!(BNPendingBasicBlockEdge, fallThrough) - 24usize];
5144};
5145impl Default for BNPendingBasicBlockEdge {
5146 fn default() -> Self {
5147 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5148 unsafe {
5149 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5150 s.assume_init()
5151 }
5152 }
5153}
5154#[repr(C)]
5155#[derive(Debug, Default, Copy, Clone)]
5156pub struct BNPoint {
5157 pub x: f32,
5158 pub y: f32,
5159}
5160#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5161const _: () = {
5162 ["Size of BNPoint"][::std::mem::size_of::<BNPoint>() - 8usize];
5163 ["Alignment of BNPoint"][::std::mem::align_of::<BNPoint>() - 4usize];
5164 ["Offset of field: BNPoint::x"][::std::mem::offset_of!(BNPoint, x) - 0usize];
5165 ["Offset of field: BNPoint::y"][::std::mem::offset_of!(BNPoint, y) - 4usize];
5166};
5167#[repr(u8)]
5168#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5169pub enum BNThemeColor {
5170 #[doc = " Hex dump colors"]
5171 AddressColor = 0,
5172 #[doc = " Hex dump colors"]
5173 ModifiedColor = 1,
5174 #[doc = " Hex dump colors"]
5175 InsertedColor = 2,
5176 #[doc = " Hex dump colors"]
5177 NotPresentColor = 3,
5178 #[doc = " Hex dump colors"]
5179 SelectionColor = 4,
5180 #[doc = " Hex dump colors"]
5181 OutlineColor = 5,
5182 #[doc = " Hex dump colors"]
5183 BackgroundHighlightDarkColor = 6,
5184 #[doc = " Hex dump colors"]
5185 BackgroundHighlightLightColor = 7,
5186 #[doc = " Hex dump colors"]
5187 BoldBackgroundHighlightDarkColor = 8,
5188 #[doc = " Hex dump colors"]
5189 BoldBackgroundHighlightLightColor = 9,
5190 #[doc = " Hex dump colors"]
5191 AlphanumericHighlightColor = 10,
5192 #[doc = " Hex dump colors"]
5193 PrintableHighlightColor = 11,
5194 #[doc = " Graph colors"]
5195 GraphBackgroundDarkColor = 12,
5196 #[doc = " Graph colors"]
5197 GraphBackgroundLightColor = 13,
5198 #[doc = " Graph colors"]
5199 GraphNodeDarkColor = 14,
5200 #[doc = " Graph colors"]
5201 GraphNodeLightColor = 15,
5202 #[doc = " Graph colors"]
5203 GraphNodeOutlineColor = 16,
5204 #[doc = " Graph colors"]
5205 GraphNodeShadowColor = 17,
5206 #[doc = " Graph colors"]
5207 GraphEntryNodeIndicatorColor = 18,
5208 #[doc = " Graph colors"]
5209 GraphExitNodeIndicatorColor = 19,
5210 #[doc = " Graph colors"]
5211 GraphExitNoreturnNodeIndicatorColor = 20,
5212 #[doc = " Graph colors"]
5213 TrueBranchColor = 21,
5214 #[doc = " Graph colors"]
5215 FalseBranchColor = 22,
5216 #[doc = " Graph colors"]
5217 UnconditionalBranchColor = 23,
5218 #[doc = " Graph colors"]
5219 AltTrueBranchColor = 24,
5220 #[doc = " Graph colors"]
5221 AltFalseBranchColor = 25,
5222 #[doc = " Graph colors"]
5223 AltUnconditionalBranchColor = 26,
5224 #[doc = " Disassembly colors"]
5225 InstructionColor = 27,
5226 #[doc = " Disassembly colors"]
5227 RegisterColor = 28,
5228 #[doc = " Disassembly colors"]
5229 NumberColor = 29,
5230 #[doc = " Disassembly colors"]
5231 CodeSymbolColor = 30,
5232 #[doc = " Disassembly colors"]
5233 DataSymbolColor = 31,
5234 #[doc = " Disassembly colors"]
5235 LocalVariableColor = 32,
5236 #[doc = " Disassembly colors"]
5237 StackVariableColor = 33,
5238 #[doc = " Disassembly colors"]
5239 ImportColor = 34,
5240 #[doc = " Disassembly colors"]
5241 ExportColor = 35,
5242 #[doc = " Disassembly colors"]
5243 InstructionHighlightColor = 36,
5244 #[doc = " Disassembly colors"]
5245 RelatedInstructionHighlightColor = 37,
5246 #[doc = " Disassembly colors"]
5247 TokenHighlightColor = 38,
5248 #[doc = " Disassembly colors"]
5249 TokenSelectionColor = 39,
5250 #[doc = " Disassembly colors"]
5251 AnnotationColor = 40,
5252 #[doc = " Disassembly colors"]
5253 OpcodeColor = 41,
5254 #[doc = " Disassembly colors"]
5255 LinearDisassemblyFunctionHeaderColor = 42,
5256 #[doc = " Disassembly colors"]
5257 LinearDisassemblyBlockColor = 43,
5258 #[doc = " Disassembly colors"]
5259 LinearDisassemblyNoteColor = 44,
5260 #[doc = " Disassembly colors"]
5261 LinearDisassemblySeparatorColor = 45,
5262 #[doc = " Disassembly colors"]
5263 LinearDisassemblyCodeFoldColor = 46,
5264 #[doc = " Disassembly colors"]
5265 StringColor = 47,
5266 #[doc = " Disassembly colors"]
5267 TypeNameColor = 48,
5268 #[doc = " Disassembly colors"]
5269 FieldNameColor = 49,
5270 #[doc = " Disassembly colors"]
5271 KeywordColor = 50,
5272 #[doc = " Disassembly colors"]
5273 UncertainColor = 51,
5274 #[doc = " Disassembly colors"]
5275 NameSpaceColor = 52,
5276 #[doc = " Disassembly colors"]
5277 NameSpaceSeparatorColor = 53,
5278 #[doc = " Disassembly colors"]
5279 GotoLabelColor = 54,
5280 #[doc = " Disassembly colors"]
5281 CommentColor = 55,
5282 #[doc = " Disassembly colors"]
5283 OperationColor = 56,
5284 #[doc = " Disassembly colors"]
5285 BaseStructureNameColor = 57,
5286 #[doc = " Disassembly colors"]
5287 IndentationLineColor = 58,
5288 #[doc = " Disassembly colors"]
5289 IndentationLineHighlightColor = 59,
5290 #[doc = " Script console colors"]
5291 ScriptConsoleOutputColor = 60,
5292 #[doc = " Script console colors"]
5293 ScriptConsoleWarningColor = 61,
5294 #[doc = " Script console colors"]
5295 ScriptConsoleErrorColor = 62,
5296 #[doc = " Script console colors"]
5297 ScriptConsoleEchoColor = 63,
5298 #[doc = " Highlighting colors"]
5299 BlueStandardHighlightColor = 64,
5300 #[doc = " Highlighting colors"]
5301 GreenStandardHighlightColor = 65,
5302 #[doc = " Highlighting colors"]
5303 CyanStandardHighlightColor = 66,
5304 #[doc = " Highlighting colors"]
5305 RedStandardHighlightColor = 67,
5306 #[doc = " Highlighting colors"]
5307 MagentaStandardHighlightColor = 68,
5308 #[doc = " Highlighting colors"]
5309 YellowStandardHighlightColor = 69,
5310 #[doc = " Highlighting colors"]
5311 OrangeStandardHighlightColor = 70,
5312 #[doc = " Highlighting colors"]
5313 WhiteStandardHighlightColor = 71,
5314 #[doc = " Highlighting colors"]
5315 BlackStandardHighlightColor = 72,
5316 #[doc = " MiniGraph"]
5317 MiniGraphOverlayColor = 73,
5318 #[doc = " FeatureMap"]
5319 FeatureMapBaseColor = 74,
5320 #[doc = " FeatureMap"]
5321 FeatureMapNavLineColor = 75,
5322 #[doc = " FeatureMap"]
5323 FeatureMapNavHighlightColor = 76,
5324 #[doc = " FeatureMap"]
5325 FeatureMapDataVariableColor = 77,
5326 #[doc = " FeatureMap"]
5327 FeatureMapAsciiStringColor = 78,
5328 #[doc = " FeatureMap"]
5329 FeatureMapUnicodeStringColor = 79,
5330 #[doc = " FeatureMap"]
5331 FeatureMapFunctionColor = 80,
5332 #[doc = " FeatureMap"]
5333 FeatureMapImportColor = 81,
5334 #[doc = " FeatureMap"]
5335 FeatureMapExternColor = 82,
5336 #[doc = " FeatureMap"]
5337 FeatureMapLibraryColor = 83,
5338 #[doc = " Sidebar colors"]
5339 SidebarBackgroundColor = 84,
5340 #[doc = " Sidebar colors"]
5341 SidebarInactiveIconColor = 85,
5342 #[doc = " Sidebar colors"]
5343 SidebarHoverIconColor = 86,
5344 #[doc = " Sidebar colors"]
5345 SidebarActiveIconColor = 87,
5346 #[doc = " Sidebar colors"]
5347 SidebarFocusedIconColor = 88,
5348 #[doc = " Sidebar colors"]
5349 SidebarHoverBackgroundColor = 89,
5350 #[doc = " Sidebar colors"]
5351 SidebarActiveBackgroundColor = 90,
5352 #[doc = " Sidebar colors"]
5353 SidebarFocusedBackgroundColor = 91,
5354 #[doc = " Sidebar colors"]
5355 SidebarActiveIndicatorLineColor = 92,
5356 #[doc = " Deprecated, has no effect (paints as QPalette::Window)"]
5357 SidebarHeaderBackgroundColor = 93,
5358 SidebarHeaderTextColor = 94,
5359 SidebarWidgetBackgroundColor = 95,
5360 #[doc = " Pane colors"]
5361 ActivePaneBackgroundColor = 96,
5362 #[doc = " Pane colors"]
5363 InactivePaneBackgroundColor = 97,
5364 #[doc = " Pane colors"]
5365 FocusedPaneBackgroundColor = 98,
5366 #[doc = " Tab colors"]
5367 TabBarTabActiveColor = 99,
5368 #[doc = " Tab colors"]
5369 TabBarTabHoverColor = 100,
5370 #[doc = " Tab colors"]
5371 TabBarTabInactiveColor = 101,
5372 #[doc = " Tab colors"]
5373 TabBarTabBorderColor = 102,
5374 #[doc = " Tab colors"]
5375 TabBarTabGlowColor = 103,
5376 #[doc = " Status colors"]
5377 StatusBarServerConnectedColor = 104,
5378 #[doc = " Status colors"]
5379 StatusBarServerDisconnectedColor = 105,
5380 #[doc = " Status colors"]
5381 StatusBarServerWarningColor = 106,
5382 #[doc = " Status colors"]
5383 StatusBarProjectColor = 107,
5384 #[doc = " Brace colors"]
5385 BraceOption1Color = 108,
5386 #[doc = " Brace colors"]
5387 BraceOption2Color = 109,
5388 #[doc = " Brace colors"]
5389 BraceOption3Color = 110,
5390 #[doc = " Brace colors"]
5391 BraceOption4Color = 111,
5392 #[doc = " Brace colors"]
5393 BraceOption5Color = 112,
5394 #[doc = " Brace colors"]
5395 BraceOption6Color = 113,
5396 #[doc = " Type class colors"]
5397 VoidTypeColor = 114,
5398 #[doc = " Type class colors"]
5399 StructureTypeColor = 115,
5400 #[doc = " Type class colors"]
5401 EnumerationTypeColor = 116,
5402 #[doc = " Type class colors"]
5403 FunctionTypeColor = 117,
5404 #[doc = " Type class colors"]
5405 BoolTypeColor = 118,
5406 #[doc = " Type class colors"]
5407 IntegerTypeColor = 119,
5408 #[doc = " Type class colors"]
5409 FloatTypeColor = 120,
5410 #[doc = " Type class colors"]
5411 PointerTypeColor = 121,
5412 #[doc = " Type class colors"]
5413 ArrayTypeColor = 122,
5414 #[doc = " Type class colors"]
5415 VarArgsTypeColor = 123,
5416 #[doc = " Type class colors"]
5417 ValueTypeColor = 124,
5418 #[doc = " Type class colors"]
5419 NamedTypeReferenceColor = 125,
5420 #[doc = " Type class colors"]
5421 WideCharTypeColor = 126,
5422}
5423#[repr(u8)]
5424#[doc = " The following edge styles map to Qt's Qt::PenStyle enumeration"]
5425#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5426pub enum BNEdgePenStyle {
5427 #[doc = " no line at all."]
5428 NoPen = 0,
5429 #[doc = " A plain line (default)"]
5430 SolidLine = 1,
5431 #[doc = " Dashes separated by a few pixels."]
5432 DashLine = 2,
5433 #[doc = " Dots separated by a few pixels."]
5434 DotLine = 3,
5435 #[doc = " Alternate dots and dashes."]
5436 DashDotLine = 4,
5437 #[doc = " One dash, two dots, one dash, two dots."]
5438 DashDotDotLine = 5,
5439}
5440#[repr(C)]
5441#[derive(Debug, Copy, Clone)]
5442pub struct BNEdgeStyle {
5443 pub style: BNEdgePenStyle,
5444 pub width: usize,
5445 pub color: BNThemeColor,
5446}
5447#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5448const _: () = {
5449 ["Size of BNEdgeStyle"][::std::mem::size_of::<BNEdgeStyle>() - 24usize];
5450 ["Alignment of BNEdgeStyle"][::std::mem::align_of::<BNEdgeStyle>() - 8usize];
5451 ["Offset of field: BNEdgeStyle::style"][::std::mem::offset_of!(BNEdgeStyle, style) - 0usize];
5452 ["Offset of field: BNEdgeStyle::width"][::std::mem::offset_of!(BNEdgeStyle, width) - 8usize];
5453 ["Offset of field: BNEdgeStyle::color"][::std::mem::offset_of!(BNEdgeStyle, color) - 16usize];
5454};
5455impl Default for BNEdgeStyle {
5456 fn default() -> Self {
5457 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5458 unsafe {
5459 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5460 s.assume_init()
5461 }
5462 }
5463}
5464#[repr(C)]
5465#[derive(Debug, Copy, Clone)]
5466pub struct BNFlowGraphEdge {
5467 pub type_: BNBranchType,
5468 pub target: *mut BNFlowGraphNode,
5469 pub points: *mut BNPoint,
5470 pub pointCount: usize,
5471 pub backEdge: bool,
5472 pub style: BNEdgeStyle,
5473}
5474#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5475const _: () = {
5476 ["Size of BNFlowGraphEdge"][::std::mem::size_of::<BNFlowGraphEdge>() - 64usize];
5477 ["Alignment of BNFlowGraphEdge"][::std::mem::align_of::<BNFlowGraphEdge>() - 8usize];
5478 ["Offset of field: BNFlowGraphEdge::type_"]
5479 [::std::mem::offset_of!(BNFlowGraphEdge, type_) - 0usize];
5480 ["Offset of field: BNFlowGraphEdge::target"]
5481 [::std::mem::offset_of!(BNFlowGraphEdge, target) - 8usize];
5482 ["Offset of field: BNFlowGraphEdge::points"]
5483 [::std::mem::offset_of!(BNFlowGraphEdge, points) - 16usize];
5484 ["Offset of field: BNFlowGraphEdge::pointCount"]
5485 [::std::mem::offset_of!(BNFlowGraphEdge, pointCount) - 24usize];
5486 ["Offset of field: BNFlowGraphEdge::backEdge"]
5487 [::std::mem::offset_of!(BNFlowGraphEdge, backEdge) - 32usize];
5488 ["Offset of field: BNFlowGraphEdge::style"]
5489 [::std::mem::offset_of!(BNFlowGraphEdge, style) - 40usize];
5490};
5491impl Default for BNFlowGraphEdge {
5492 fn default() -> Self {
5493 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5494 unsafe {
5495 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5496 s.assume_init()
5497 }
5498 }
5499}
5500#[repr(u8)]
5501#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5502pub enum BNHighlightColorStyle {
5503 StandardHighlightColor = 0,
5504 MixedHighlightColor = 1,
5505 CustomHighlightColor = 2,
5506}
5507#[repr(u8)]
5508#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5509pub enum BNHighlightStandardColor {
5510 NoHighlightColor = 0,
5511 BlueHighlightColor = 1,
5512 GreenHighlightColor = 2,
5513 CyanHighlightColor = 3,
5514 RedHighlightColor = 4,
5515 MagentaHighlightColor = 5,
5516 YellowHighlightColor = 6,
5517 OrangeHighlightColor = 7,
5518 WhiteHighlightColor = 8,
5519 BlackHighlightColor = 9,
5520}
5521#[repr(C)]
5522#[derive(Debug, Copy, Clone)]
5523pub struct BNHighlightColor {
5524 pub style: BNHighlightColorStyle,
5525 pub color: BNHighlightStandardColor,
5526 pub mixColor: BNHighlightStandardColor,
5527 pub mix: u8,
5528 pub r: u8,
5529 pub g: u8,
5530 pub b: u8,
5531 pub alpha: u8,
5532}
5533#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5534const _: () = {
5535 ["Size of BNHighlightColor"][::std::mem::size_of::<BNHighlightColor>() - 8usize];
5536 ["Alignment of BNHighlightColor"][::std::mem::align_of::<BNHighlightColor>() - 1usize];
5537 ["Offset of field: BNHighlightColor::style"]
5538 [::std::mem::offset_of!(BNHighlightColor, style) - 0usize];
5539 ["Offset of field: BNHighlightColor::color"]
5540 [::std::mem::offset_of!(BNHighlightColor, color) - 1usize];
5541 ["Offset of field: BNHighlightColor::mixColor"]
5542 [::std::mem::offset_of!(BNHighlightColor, mixColor) - 2usize];
5543 ["Offset of field: BNHighlightColor::mix"]
5544 [::std::mem::offset_of!(BNHighlightColor, mix) - 3usize];
5545 ["Offset of field: BNHighlightColor::r"][::std::mem::offset_of!(BNHighlightColor, r) - 4usize];
5546 ["Offset of field: BNHighlightColor::g"][::std::mem::offset_of!(BNHighlightColor, g) - 5usize];
5547 ["Offset of field: BNHighlightColor::b"][::std::mem::offset_of!(BNHighlightColor, b) - 6usize];
5548 ["Offset of field: BNHighlightColor::alpha"]
5549 [::std::mem::offset_of!(BNHighlightColor, alpha) - 7usize];
5550};
5551impl Default for BNHighlightColor {
5552 fn default() -> Self {
5553 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5554 unsafe {
5555 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5556 s.assume_init()
5557 }
5558 }
5559}
5560#[repr(C)]
5561#[derive(Debug, Copy, Clone)]
5562pub struct BNDisassemblyTextLineTypeInfo {
5563 pub hasTypeInfo: bool,
5564 pub parentType: *mut BNType,
5565 pub fieldIndex: usize,
5566 pub offset: u64,
5567}
5568#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5569const _: () = {
5570 ["Size of BNDisassemblyTextLineTypeInfo"]
5571 [::std::mem::size_of::<BNDisassemblyTextLineTypeInfo>() - 32usize];
5572 ["Alignment of BNDisassemblyTextLineTypeInfo"]
5573 [::std::mem::align_of::<BNDisassemblyTextLineTypeInfo>() - 8usize];
5574 ["Offset of field: BNDisassemblyTextLineTypeInfo::hasTypeInfo"]
5575 [::std::mem::offset_of!(BNDisassemblyTextLineTypeInfo, hasTypeInfo) - 0usize];
5576 ["Offset of field: BNDisassemblyTextLineTypeInfo::parentType"]
5577 [::std::mem::offset_of!(BNDisassemblyTextLineTypeInfo, parentType) - 8usize];
5578 ["Offset of field: BNDisassemblyTextLineTypeInfo::fieldIndex"]
5579 [::std::mem::offset_of!(BNDisassemblyTextLineTypeInfo, fieldIndex) - 16usize];
5580 ["Offset of field: BNDisassemblyTextLineTypeInfo::offset"]
5581 [::std::mem::offset_of!(BNDisassemblyTextLineTypeInfo, offset) - 24usize];
5582};
5583impl Default for BNDisassemblyTextLineTypeInfo {
5584 fn default() -> Self {
5585 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5586 unsafe {
5587 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5588 s.assume_init()
5589 }
5590 }
5591}
5592#[repr(C)]
5593#[derive(Debug, Copy, Clone)]
5594pub struct BNDisassemblyTextLine {
5595 pub addr: u64,
5596 pub instrIndex: usize,
5597 pub tokens: *mut BNInstructionTextToken,
5598 pub count: usize,
5599 pub highlight: BNHighlightColor,
5600 pub tags: *mut *mut BNTag,
5601 pub tagCount: usize,
5602 pub typeInfo: BNDisassemblyTextLineTypeInfo,
5603}
5604#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5605const _: () = {
5606 ["Size of BNDisassemblyTextLine"][::std::mem::size_of::<BNDisassemblyTextLine>() - 88usize];
5607 ["Alignment of BNDisassemblyTextLine"]
5608 [::std::mem::align_of::<BNDisassemblyTextLine>() - 8usize];
5609 ["Offset of field: BNDisassemblyTextLine::addr"]
5610 [::std::mem::offset_of!(BNDisassemblyTextLine, addr) - 0usize];
5611 ["Offset of field: BNDisassemblyTextLine::instrIndex"]
5612 [::std::mem::offset_of!(BNDisassemblyTextLine, instrIndex) - 8usize];
5613 ["Offset of field: BNDisassemblyTextLine::tokens"]
5614 [::std::mem::offset_of!(BNDisassemblyTextLine, tokens) - 16usize];
5615 ["Offset of field: BNDisassemblyTextLine::count"]
5616 [::std::mem::offset_of!(BNDisassemblyTextLine, count) - 24usize];
5617 ["Offset of field: BNDisassemblyTextLine::highlight"]
5618 [::std::mem::offset_of!(BNDisassemblyTextLine, highlight) - 32usize];
5619 ["Offset of field: BNDisassemblyTextLine::tags"]
5620 [::std::mem::offset_of!(BNDisassemblyTextLine, tags) - 40usize];
5621 ["Offset of field: BNDisassemblyTextLine::tagCount"]
5622 [::std::mem::offset_of!(BNDisassemblyTextLine, tagCount) - 48usize];
5623 ["Offset of field: BNDisassemblyTextLine::typeInfo"]
5624 [::std::mem::offset_of!(BNDisassemblyTextLine, typeInfo) - 56usize];
5625};
5626impl Default for BNDisassemblyTextLine {
5627 fn default() -> Self {
5628 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5629 unsafe {
5630 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5631 s.assume_init()
5632 }
5633 }
5634}
5635#[repr(C)]
5636#[derive(Debug, Copy, Clone)]
5637pub struct BNLinearDisassemblyLine {
5638 pub type_: BNLinearDisassemblyLineType,
5639 pub function: *mut BNFunction,
5640 pub block: *mut BNBasicBlock,
5641 pub contents: BNDisassemblyTextLine,
5642}
5643#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5644const _: () = {
5645 ["Size of BNLinearDisassemblyLine"]
5646 [::std::mem::size_of::<BNLinearDisassemblyLine>() - 112usize];
5647 ["Alignment of BNLinearDisassemblyLine"]
5648 [::std::mem::align_of::<BNLinearDisassemblyLine>() - 8usize];
5649 ["Offset of field: BNLinearDisassemblyLine::type_"]
5650 [::std::mem::offset_of!(BNLinearDisassemblyLine, type_) - 0usize];
5651 ["Offset of field: BNLinearDisassemblyLine::function"]
5652 [::std::mem::offset_of!(BNLinearDisassemblyLine, function) - 8usize];
5653 ["Offset of field: BNLinearDisassemblyLine::block"]
5654 [::std::mem::offset_of!(BNLinearDisassemblyLine, block) - 16usize];
5655 ["Offset of field: BNLinearDisassemblyLine::contents"]
5656 [::std::mem::offset_of!(BNLinearDisassemblyLine, contents) - 24usize];
5657};
5658impl Default for BNLinearDisassemblyLine {
5659 fn default() -> Self {
5660 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5661 unsafe {
5662 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5663 s.assume_init()
5664 }
5665 }
5666}
5667#[repr(C)]
5668#[derive(Debug, Copy, Clone)]
5669pub struct BNReferenceSource {
5670 pub func: *mut BNFunction,
5671 pub arch: *mut BNArchitecture,
5672 pub addr: u64,
5673}
5674#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5675const _: () = {
5676 ["Size of BNReferenceSource"][::std::mem::size_of::<BNReferenceSource>() - 24usize];
5677 ["Alignment of BNReferenceSource"][::std::mem::align_of::<BNReferenceSource>() - 8usize];
5678 ["Offset of field: BNReferenceSource::func"]
5679 [::std::mem::offset_of!(BNReferenceSource, func) - 0usize];
5680 ["Offset of field: BNReferenceSource::arch"]
5681 [::std::mem::offset_of!(BNReferenceSource, arch) - 8usize];
5682 ["Offset of field: BNReferenceSource::addr"]
5683 [::std::mem::offset_of!(BNReferenceSource, addr) - 16usize];
5684};
5685impl Default for BNReferenceSource {
5686 fn default() -> Self {
5687 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5688 unsafe {
5689 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5690 s.assume_init()
5691 }
5692 }
5693}
5694#[repr(C)]
5695#[derive(Debug, Copy, Clone)]
5696pub struct BNTypeFieldReference {
5697 pub func: *mut BNFunction,
5698 pub arch: *mut BNArchitecture,
5699 pub addr: u64,
5700 pub size: usize,
5701 pub incomingType: BNTypeWithConfidence,
5702}
5703#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5704const _: () = {
5705 ["Size of BNTypeFieldReference"][::std::mem::size_of::<BNTypeFieldReference>() - 48usize];
5706 ["Alignment of BNTypeFieldReference"][::std::mem::align_of::<BNTypeFieldReference>() - 8usize];
5707 ["Offset of field: BNTypeFieldReference::func"]
5708 [::std::mem::offset_of!(BNTypeFieldReference, func) - 0usize];
5709 ["Offset of field: BNTypeFieldReference::arch"]
5710 [::std::mem::offset_of!(BNTypeFieldReference, arch) - 8usize];
5711 ["Offset of field: BNTypeFieldReference::addr"]
5712 [::std::mem::offset_of!(BNTypeFieldReference, addr) - 16usize];
5713 ["Offset of field: BNTypeFieldReference::size"]
5714 [::std::mem::offset_of!(BNTypeFieldReference, size) - 24usize];
5715 ["Offset of field: BNTypeFieldReference::incomingType"]
5716 [::std::mem::offset_of!(BNTypeFieldReference, incomingType) - 32usize];
5717};
5718impl Default for BNTypeFieldReference {
5719 fn default() -> Self {
5720 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5721 unsafe {
5722 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5723 s.assume_init()
5724 }
5725 }
5726}
5727#[repr(C)]
5728#[derive(Debug, Copy, Clone)]
5729pub struct BNILReferenceSource {
5730 pub func: *mut BNFunction,
5731 pub arch: *mut BNArchitecture,
5732 pub addr: u64,
5733 pub type_: BNFunctionGraphType,
5734 pub exprId: usize,
5735}
5736#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5737const _: () = {
5738 ["Size of BNILReferenceSource"][::std::mem::size_of::<BNILReferenceSource>() - 40usize];
5739 ["Alignment of BNILReferenceSource"][::std::mem::align_of::<BNILReferenceSource>() - 8usize];
5740 ["Offset of field: BNILReferenceSource::func"]
5741 [::std::mem::offset_of!(BNILReferenceSource, func) - 0usize];
5742 ["Offset of field: BNILReferenceSource::arch"]
5743 [::std::mem::offset_of!(BNILReferenceSource, arch) - 8usize];
5744 ["Offset of field: BNILReferenceSource::addr"]
5745 [::std::mem::offset_of!(BNILReferenceSource, addr) - 16usize];
5746 ["Offset of field: BNILReferenceSource::type_"]
5747 [::std::mem::offset_of!(BNILReferenceSource, type_) - 24usize];
5748 ["Offset of field: BNILReferenceSource::exprId"]
5749 [::std::mem::offset_of!(BNILReferenceSource, exprId) - 32usize];
5750};
5751impl Default for BNILReferenceSource {
5752 fn default() -> Self {
5753 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5754 unsafe {
5755 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5756 s.assume_init()
5757 }
5758 }
5759}
5760#[repr(C)]
5761#[derive(Debug, Copy, Clone)]
5762pub struct BNTypeFieldReferenceSizeInfo {
5763 pub offset: u64,
5764 pub sizes: *mut usize,
5765 pub count: usize,
5766}
5767#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5768const _: () = {
5769 ["Size of BNTypeFieldReferenceSizeInfo"]
5770 [::std::mem::size_of::<BNTypeFieldReferenceSizeInfo>() - 24usize];
5771 ["Alignment of BNTypeFieldReferenceSizeInfo"]
5772 [::std::mem::align_of::<BNTypeFieldReferenceSizeInfo>() - 8usize];
5773 ["Offset of field: BNTypeFieldReferenceSizeInfo::offset"]
5774 [::std::mem::offset_of!(BNTypeFieldReferenceSizeInfo, offset) - 0usize];
5775 ["Offset of field: BNTypeFieldReferenceSizeInfo::sizes"]
5776 [::std::mem::offset_of!(BNTypeFieldReferenceSizeInfo, sizes) - 8usize];
5777 ["Offset of field: BNTypeFieldReferenceSizeInfo::count"]
5778 [::std::mem::offset_of!(BNTypeFieldReferenceSizeInfo, count) - 16usize];
5779};
5780impl Default for BNTypeFieldReferenceSizeInfo {
5781 fn default() -> Self {
5782 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5783 unsafe {
5784 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5785 s.assume_init()
5786 }
5787 }
5788}
5789#[repr(C)]
5790#[derive(Debug, Copy, Clone)]
5791pub struct BNTypeFieldReferenceTypeInfo {
5792 pub offset: u64,
5793 pub types: *mut BNTypeWithConfidence,
5794 pub count: usize,
5795}
5796#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5797const _: () = {
5798 ["Size of BNTypeFieldReferenceTypeInfo"]
5799 [::std::mem::size_of::<BNTypeFieldReferenceTypeInfo>() - 24usize];
5800 ["Alignment of BNTypeFieldReferenceTypeInfo"]
5801 [::std::mem::align_of::<BNTypeFieldReferenceTypeInfo>() - 8usize];
5802 ["Offset of field: BNTypeFieldReferenceTypeInfo::offset"]
5803 [::std::mem::offset_of!(BNTypeFieldReferenceTypeInfo, offset) - 0usize];
5804 ["Offset of field: BNTypeFieldReferenceTypeInfo::types"]
5805 [::std::mem::offset_of!(BNTypeFieldReferenceTypeInfo, types) - 8usize];
5806 ["Offset of field: BNTypeFieldReferenceTypeInfo::count"]
5807 [::std::mem::offset_of!(BNTypeFieldReferenceTypeInfo, count) - 16usize];
5808};
5809impl Default for BNTypeFieldReferenceTypeInfo {
5810 fn default() -> Self {
5811 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5812 unsafe {
5813 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5814 s.assume_init()
5815 }
5816 }
5817}
5818#[repr(C)]
5819#[derive(Debug, Copy, Clone)]
5820pub struct BNVariableReferenceSource {
5821 pub var: BNVariable,
5822 pub source: BNILReferenceSource,
5823}
5824#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5825const _: () = {
5826 ["Size of BNVariableReferenceSource"]
5827 [::std::mem::size_of::<BNVariableReferenceSource>() - 56usize];
5828 ["Alignment of BNVariableReferenceSource"]
5829 [::std::mem::align_of::<BNVariableReferenceSource>() - 8usize];
5830 ["Offset of field: BNVariableReferenceSource::var"]
5831 [::std::mem::offset_of!(BNVariableReferenceSource, var) - 0usize];
5832 ["Offset of field: BNVariableReferenceSource::source"]
5833 [::std::mem::offset_of!(BNVariableReferenceSource, source) - 16usize];
5834};
5835impl Default for BNVariableReferenceSource {
5836 fn default() -> Self {
5837 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5838 unsafe {
5839 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5840 s.assume_init()
5841 }
5842 }
5843}
5844#[repr(u8)]
5845#[doc = " This describes how a type is referenced"]
5846#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5847pub enum BNTypeReferenceType {
5848 #[doc = " Type A contains type B"]
5849 DirectTypeReferenceType = 0,
5850 #[doc = " All other cases, e.g., type A contains a pointer to type B"]
5851 IndirectTypeReferenceType = 1,
5852 #[doc = " The nature of the reference is unknown"]
5853 UnknownTypeReferenceType = 2,
5854}
5855#[repr(C)]
5856#[derive(Debug, Copy, Clone)]
5857pub struct BNTypeReferenceSource {
5858 pub name: BNQualifiedName,
5859 pub offset: u64,
5860 pub type_: BNTypeReferenceType,
5861}
5862#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5863const _: () = {
5864 ["Size of BNTypeReferenceSource"][::std::mem::size_of::<BNTypeReferenceSource>() - 40usize];
5865 ["Alignment of BNTypeReferenceSource"]
5866 [::std::mem::align_of::<BNTypeReferenceSource>() - 8usize];
5867 ["Offset of field: BNTypeReferenceSource::name"]
5868 [::std::mem::offset_of!(BNTypeReferenceSource, name) - 0usize];
5869 ["Offset of field: BNTypeReferenceSource::offset"]
5870 [::std::mem::offset_of!(BNTypeReferenceSource, offset) - 24usize];
5871 ["Offset of field: BNTypeReferenceSource::type_"]
5872 [::std::mem::offset_of!(BNTypeReferenceSource, type_) - 32usize];
5873};
5874impl Default for BNTypeReferenceSource {
5875 fn default() -> Self {
5876 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5877 unsafe {
5878 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5879 s.assume_init()
5880 }
5881 }
5882}
5883#[repr(u8)]
5884#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5885pub enum BNTagTypeType {
5886 UserTagType = 0,
5887 NotificationTagType = 1,
5888 BookmarksTagType = 2,
5889}
5890#[repr(u8)]
5891#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5892pub enum BNTagReferenceType {
5893 AddressTagReference = 0,
5894 FunctionTagReference = 1,
5895 DataTagReference = 2,
5896}
5897#[repr(C)]
5898#[derive(Debug, Copy, Clone)]
5899pub struct BNTagReference {
5900 pub refType: BNTagReferenceType,
5901 pub autoDefined: bool,
5902 pub tag: *mut BNTag,
5903 pub arch: *mut BNArchitecture,
5904 pub func: *mut BNFunction,
5905 pub addr: u64,
5906}
5907#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5908const _: () = {
5909 ["Size of BNTagReference"][::std::mem::size_of::<BNTagReference>() - 40usize];
5910 ["Alignment of BNTagReference"][::std::mem::align_of::<BNTagReference>() - 8usize];
5911 ["Offset of field: BNTagReference::refType"]
5912 [::std::mem::offset_of!(BNTagReference, refType) - 0usize];
5913 ["Offset of field: BNTagReference::autoDefined"]
5914 [::std::mem::offset_of!(BNTagReference, autoDefined) - 1usize];
5915 ["Offset of field: BNTagReference::tag"][::std::mem::offset_of!(BNTagReference, tag) - 8usize];
5916 ["Offset of field: BNTagReference::arch"]
5917 [::std::mem::offset_of!(BNTagReference, arch) - 16usize];
5918 ["Offset of field: BNTagReference::func"]
5919 [::std::mem::offset_of!(BNTagReference, func) - 24usize];
5920 ["Offset of field: BNTagReference::addr"]
5921 [::std::mem::offset_of!(BNTagReference, addr) - 32usize];
5922};
5923impl Default for BNTagReference {
5924 fn default() -> Self {
5925 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5926 unsafe {
5927 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5928 s.assume_init()
5929 }
5930 }
5931}
5932#[repr(C)]
5933#[derive(Debug, Copy, Clone)]
5934pub struct BNCallingConventionWithConfidence {
5935 pub convention: *mut BNCallingConvention,
5936 pub confidence: u8,
5937}
5938#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5939const _: () = {
5940 ["Size of BNCallingConventionWithConfidence"]
5941 [::std::mem::size_of::<BNCallingConventionWithConfidence>() - 16usize];
5942 ["Alignment of BNCallingConventionWithConfidence"]
5943 [::std::mem::align_of::<BNCallingConventionWithConfidence>() - 8usize];
5944 ["Offset of field: BNCallingConventionWithConfidence::convention"]
5945 [::std::mem::offset_of!(BNCallingConventionWithConfidence, convention) - 0usize];
5946 ["Offset of field: BNCallingConventionWithConfidence::confidence"]
5947 [::std::mem::offset_of!(BNCallingConventionWithConfidence, confidence) - 8usize];
5948};
5949impl Default for BNCallingConventionWithConfidence {
5950 fn default() -> Self {
5951 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5952 unsafe {
5953 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5954 s.assume_init()
5955 }
5956 }
5957}
5958#[repr(C)]
5959#[derive(Debug, Default, Copy, Clone)]
5960pub struct BNBoolWithConfidence {
5961 pub value: bool,
5962 pub confidence: u8,
5963}
5964#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5965const _: () = {
5966 ["Size of BNBoolWithConfidence"][::std::mem::size_of::<BNBoolWithConfidence>() - 2usize];
5967 ["Alignment of BNBoolWithConfidence"][::std::mem::align_of::<BNBoolWithConfidence>() - 1usize];
5968 ["Offset of field: BNBoolWithConfidence::value"]
5969 [::std::mem::offset_of!(BNBoolWithConfidence, value) - 0usize];
5970 ["Offset of field: BNBoolWithConfidence::confidence"]
5971 [::std::mem::offset_of!(BNBoolWithConfidence, confidence) - 1usize];
5972};
5973#[repr(C)]
5974#[derive(Debug, Default, Copy, Clone)]
5975pub struct BNOffsetWithConfidence {
5976 pub value: i64,
5977 pub confidence: u8,
5978}
5979#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5980const _: () = {
5981 ["Size of BNOffsetWithConfidence"][::std::mem::size_of::<BNOffsetWithConfidence>() - 16usize];
5982 ["Alignment of BNOffsetWithConfidence"]
5983 [::std::mem::align_of::<BNOffsetWithConfidence>() - 8usize];
5984 ["Offset of field: BNOffsetWithConfidence::value"]
5985 [::std::mem::offset_of!(BNOffsetWithConfidence, value) - 0usize];
5986 ["Offset of field: BNOffsetWithConfidence::confidence"]
5987 [::std::mem::offset_of!(BNOffsetWithConfidence, confidence) - 8usize];
5988};
5989#[repr(C)]
5990#[derive(Debug, Copy, Clone)]
5991pub struct BNParameterVariablesWithConfidence {
5992 pub vars: *mut BNVariable,
5993 pub count: usize,
5994 pub confidence: u8,
5995}
5996#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5997const _: () = {
5998 ["Size of BNParameterVariablesWithConfidence"]
5999 [::std::mem::size_of::<BNParameterVariablesWithConfidence>() - 24usize];
6000 ["Alignment of BNParameterVariablesWithConfidence"]
6001 [::std::mem::align_of::<BNParameterVariablesWithConfidence>() - 8usize];
6002 ["Offset of field: BNParameterVariablesWithConfidence::vars"]
6003 [::std::mem::offset_of!(BNParameterVariablesWithConfidence, vars) - 0usize];
6004 ["Offset of field: BNParameterVariablesWithConfidence::count"]
6005 [::std::mem::offset_of!(BNParameterVariablesWithConfidence, count) - 8usize];
6006 ["Offset of field: BNParameterVariablesWithConfidence::confidence"]
6007 [::std::mem::offset_of!(BNParameterVariablesWithConfidence, confidence) - 16usize];
6008};
6009impl Default for BNParameterVariablesWithConfidence {
6010 fn default() -> Self {
6011 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6012 unsafe {
6013 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6014 s.assume_init()
6015 }
6016 }
6017}
6018#[repr(C)]
6019#[derive(Debug, Copy, Clone)]
6020pub struct BNRegisterSetWithConfidence {
6021 pub regs: *mut u32,
6022 pub count: usize,
6023 pub confidence: u8,
6024}
6025#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6026const _: () = {
6027 ["Size of BNRegisterSetWithConfidence"]
6028 [::std::mem::size_of::<BNRegisterSetWithConfidence>() - 24usize];
6029 ["Alignment of BNRegisterSetWithConfidence"]
6030 [::std::mem::align_of::<BNRegisterSetWithConfidence>() - 8usize];
6031 ["Offset of field: BNRegisterSetWithConfidence::regs"]
6032 [::std::mem::offset_of!(BNRegisterSetWithConfidence, regs) - 0usize];
6033 ["Offset of field: BNRegisterSetWithConfidence::count"]
6034 [::std::mem::offset_of!(BNRegisterSetWithConfidence, count) - 8usize];
6035 ["Offset of field: BNRegisterSetWithConfidence::confidence"]
6036 [::std::mem::offset_of!(BNRegisterSetWithConfidence, confidence) - 16usize];
6037};
6038impl Default for BNRegisterSetWithConfidence {
6039 fn default() -> Self {
6040 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6041 unsafe {
6042 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6043 s.assume_init()
6044 }
6045 }
6046}
6047#[repr(C)]
6048#[derive(Debug, Copy, Clone)]
6049pub struct BNValueLocationComponent {
6050 pub variable: BNVariable,
6051 pub offset: i64,
6052 pub sizeValid: bool,
6053 pub size: u64,
6054}
6055#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6056const _: () = {
6057 ["Size of BNValueLocationComponent"]
6058 [::std::mem::size_of::<BNValueLocationComponent>() - 40usize];
6059 ["Alignment of BNValueLocationComponent"]
6060 [::std::mem::align_of::<BNValueLocationComponent>() - 8usize];
6061 ["Offset of field: BNValueLocationComponent::variable"]
6062 [::std::mem::offset_of!(BNValueLocationComponent, variable) - 0usize];
6063 ["Offset of field: BNValueLocationComponent::offset"]
6064 [::std::mem::offset_of!(BNValueLocationComponent, offset) - 16usize];
6065 ["Offset of field: BNValueLocationComponent::sizeValid"]
6066 [::std::mem::offset_of!(BNValueLocationComponent, sizeValid) - 24usize];
6067 ["Offset of field: BNValueLocationComponent::size"]
6068 [::std::mem::offset_of!(BNValueLocationComponent, size) - 32usize];
6069};
6070impl Default for BNValueLocationComponent {
6071 fn default() -> Self {
6072 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6073 unsafe {
6074 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6075 s.assume_init()
6076 }
6077 }
6078}
6079#[repr(C)]
6080#[derive(Debug, Copy, Clone)]
6081pub struct BNValueLocation {
6082 pub count: usize,
6083 pub components: *mut BNValueLocationComponent,
6084 pub indirect: bool,
6085 pub returnedPointerValid: bool,
6086 pub returnedPointer: BNVariable,
6087}
6088#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6089const _: () = {
6090 ["Size of BNValueLocation"][::std::mem::size_of::<BNValueLocation>() - 40usize];
6091 ["Alignment of BNValueLocation"][::std::mem::align_of::<BNValueLocation>() - 8usize];
6092 ["Offset of field: BNValueLocation::count"]
6093 [::std::mem::offset_of!(BNValueLocation, count) - 0usize];
6094 ["Offset of field: BNValueLocation::components"]
6095 [::std::mem::offset_of!(BNValueLocation, components) - 8usize];
6096 ["Offset of field: BNValueLocation::indirect"]
6097 [::std::mem::offset_of!(BNValueLocation, indirect) - 16usize];
6098 ["Offset of field: BNValueLocation::returnedPointerValid"]
6099 [::std::mem::offset_of!(BNValueLocation, returnedPointerValid) - 17usize];
6100 ["Offset of field: BNValueLocation::returnedPointer"]
6101 [::std::mem::offset_of!(BNValueLocation, returnedPointer) - 24usize];
6102};
6103impl Default for BNValueLocation {
6104 fn default() -> Self {
6105 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6106 unsafe {
6107 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6108 s.assume_init()
6109 }
6110 }
6111}
6112#[repr(C)]
6113#[derive(Debug, Copy, Clone)]
6114pub struct BNValueLocationWithConfidence {
6115 pub location: BNValueLocation,
6116 pub confidence: u8,
6117}
6118#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6119const _: () = {
6120 ["Size of BNValueLocationWithConfidence"]
6121 [::std::mem::size_of::<BNValueLocationWithConfidence>() - 48usize];
6122 ["Alignment of BNValueLocationWithConfidence"]
6123 [::std::mem::align_of::<BNValueLocationWithConfidence>() - 8usize];
6124 ["Offset of field: BNValueLocationWithConfidence::location"]
6125 [::std::mem::offset_of!(BNValueLocationWithConfidence, location) - 0usize];
6126 ["Offset of field: BNValueLocationWithConfidence::confidence"]
6127 [::std::mem::offset_of!(BNValueLocationWithConfidence, confidence) - 40usize];
6128};
6129impl Default for BNValueLocationWithConfidence {
6130 fn default() -> Self {
6131 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6132 unsafe {
6133 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6134 s.assume_init()
6135 }
6136 }
6137}
6138#[repr(C)]
6139#[derive(Debug, Copy, Clone)]
6140pub struct BNValueLocationListWithConfidence {
6141 pub locations: *mut BNValueLocation,
6142 pub count: usize,
6143 pub confidence: u8,
6144}
6145#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6146const _: () = {
6147 ["Size of BNValueLocationListWithConfidence"]
6148 [::std::mem::size_of::<BNValueLocationListWithConfidence>() - 24usize];
6149 ["Alignment of BNValueLocationListWithConfidence"]
6150 [::std::mem::align_of::<BNValueLocationListWithConfidence>() - 8usize];
6151 ["Offset of field: BNValueLocationListWithConfidence::locations"]
6152 [::std::mem::offset_of!(BNValueLocationListWithConfidence, locations) - 0usize];
6153 ["Offset of field: BNValueLocationListWithConfidence::count"]
6154 [::std::mem::offset_of!(BNValueLocationListWithConfidence, count) - 8usize];
6155 ["Offset of field: BNValueLocationListWithConfidence::confidence"]
6156 [::std::mem::offset_of!(BNValueLocationListWithConfidence, confidence) - 16usize];
6157};
6158impl Default for BNValueLocationListWithConfidence {
6159 fn default() -> Self {
6160 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6161 unsafe {
6162 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6163 s.assume_init()
6164 }
6165 }
6166}
6167#[repr(u8)]
6168#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6169pub enum BNValueLocationSource {
6170 DefaultLocationSource = 0,
6171 PassByValueLocationSource = 1,
6172 PassByReferenceLocationSource = 2,
6173 CustomLocationSource = 3,
6174}
6175#[repr(C)]
6176#[derive(Debug, Copy, Clone)]
6177pub struct BNFunctionParameter {
6178 pub name: *mut ::std::os::raw::c_char,
6179 pub type_: *mut BNType,
6180 pub typeConfidence: u8,
6181 pub locationSource: BNValueLocationSource,
6182 pub location: BNValueLocation,
6183}
6184#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6185const _: () = {
6186 ["Size of BNFunctionParameter"][::std::mem::size_of::<BNFunctionParameter>() - 64usize];
6187 ["Alignment of BNFunctionParameter"][::std::mem::align_of::<BNFunctionParameter>() - 8usize];
6188 ["Offset of field: BNFunctionParameter::name"]
6189 [::std::mem::offset_of!(BNFunctionParameter, name) - 0usize];
6190 ["Offset of field: BNFunctionParameter::type_"]
6191 [::std::mem::offset_of!(BNFunctionParameter, type_) - 8usize];
6192 ["Offset of field: BNFunctionParameter::typeConfidence"]
6193 [::std::mem::offset_of!(BNFunctionParameter, typeConfidence) - 16usize];
6194 ["Offset of field: BNFunctionParameter::locationSource"]
6195 [::std::mem::offset_of!(BNFunctionParameter, locationSource) - 17usize];
6196 ["Offset of field: BNFunctionParameter::location"]
6197 [::std::mem::offset_of!(BNFunctionParameter, location) - 24usize];
6198};
6199impl Default for BNFunctionParameter {
6200 fn default() -> Self {
6201 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6202 unsafe {
6203 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6204 s.assume_init()
6205 }
6206 }
6207}
6208#[repr(C)]
6209#[derive(Debug, Copy, Clone)]
6210pub struct BNReturnValue {
6211 pub type_: *mut BNType,
6212 pub typeConfidence: u8,
6213 pub defaultLocation: bool,
6214 pub location: BNValueLocation,
6215 pub locationConfidence: u8,
6216}
6217#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6218const _: () = {
6219 ["Size of BNReturnValue"][::std::mem::size_of::<BNReturnValue>() - 64usize];
6220 ["Alignment of BNReturnValue"][::std::mem::align_of::<BNReturnValue>() - 8usize];
6221 ["Offset of field: BNReturnValue::type_"]
6222 [::std::mem::offset_of!(BNReturnValue, type_) - 0usize];
6223 ["Offset of field: BNReturnValue::typeConfidence"]
6224 [::std::mem::offset_of!(BNReturnValue, typeConfidence) - 8usize];
6225 ["Offset of field: BNReturnValue::defaultLocation"]
6226 [::std::mem::offset_of!(BNReturnValue, defaultLocation) - 9usize];
6227 ["Offset of field: BNReturnValue::location"]
6228 [::std::mem::offset_of!(BNReturnValue, location) - 16usize];
6229 ["Offset of field: BNReturnValue::locationConfidence"]
6230 [::std::mem::offset_of!(BNReturnValue, locationConfidence) - 56usize];
6231};
6232impl Default for BNReturnValue {
6233 fn default() -> Self {
6234 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6235 unsafe {
6236 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6237 s.assume_init()
6238 }
6239 }
6240}
6241#[repr(C)]
6242#[derive(Debug, Copy, Clone)]
6243pub struct BNCallLayout {
6244 pub parameters: *mut BNValueLocation,
6245 pub parameterCount: usize,
6246 pub returnValueValid: bool,
6247 pub returnValue: BNValueLocation,
6248 pub stackAdjustment: i64,
6249 pub registerStackAdjustmentRegisters: *mut u32,
6250 pub registerStackAdjustmentAmounts: *mut i32,
6251 pub registerStackAdjustmentCount: usize,
6252}
6253#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6254const _: () = {
6255 ["Size of BNCallLayout"][::std::mem::size_of::<BNCallLayout>() - 96usize];
6256 ["Alignment of BNCallLayout"][::std::mem::align_of::<BNCallLayout>() - 8usize];
6257 ["Offset of field: BNCallLayout::parameters"]
6258 [::std::mem::offset_of!(BNCallLayout, parameters) - 0usize];
6259 ["Offset of field: BNCallLayout::parameterCount"]
6260 [::std::mem::offset_of!(BNCallLayout, parameterCount) - 8usize];
6261 ["Offset of field: BNCallLayout::returnValueValid"]
6262 [::std::mem::offset_of!(BNCallLayout, returnValueValid) - 16usize];
6263 ["Offset of field: BNCallLayout::returnValue"]
6264 [::std::mem::offset_of!(BNCallLayout, returnValue) - 24usize];
6265 ["Offset of field: BNCallLayout::stackAdjustment"]
6266 [::std::mem::offset_of!(BNCallLayout, stackAdjustment) - 64usize];
6267 ["Offset of field: BNCallLayout::registerStackAdjustmentRegisters"]
6268 [::std::mem::offset_of!(BNCallLayout, registerStackAdjustmentRegisters) - 72usize];
6269 ["Offset of field: BNCallLayout::registerStackAdjustmentAmounts"]
6270 [::std::mem::offset_of!(BNCallLayout, registerStackAdjustmentAmounts) - 80usize];
6271 ["Offset of field: BNCallLayout::registerStackAdjustmentCount"]
6272 [::std::mem::offset_of!(BNCallLayout, registerStackAdjustmentCount) - 88usize];
6273};
6274impl Default for BNCallLayout {
6275 fn default() -> Self {
6276 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6277 unsafe {
6278 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6279 s.assume_init()
6280 }
6281 }
6282}
6283#[repr(C)]
6284#[derive(Debug, Copy, Clone)]
6285pub struct BNQualifiedNameAndType {
6286 pub name: BNQualifiedName,
6287 pub type_: *mut BNType,
6288}
6289#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6290const _: () = {
6291 ["Size of BNQualifiedNameAndType"][::std::mem::size_of::<BNQualifiedNameAndType>() - 32usize];
6292 ["Alignment of BNQualifiedNameAndType"]
6293 [::std::mem::align_of::<BNQualifiedNameAndType>() - 8usize];
6294 ["Offset of field: BNQualifiedNameAndType::name"]
6295 [::std::mem::offset_of!(BNQualifiedNameAndType, name) - 0usize];
6296 ["Offset of field: BNQualifiedNameAndType::type_"]
6297 [::std::mem::offset_of!(BNQualifiedNameAndType, type_) - 24usize];
6298};
6299impl Default for BNQualifiedNameAndType {
6300 fn default() -> Self {
6301 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6302 unsafe {
6303 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6304 s.assume_init()
6305 }
6306 }
6307}
6308#[repr(C)]
6309#[derive(Debug, Copy, Clone)]
6310pub struct BNQualifiedNameTypeAndId {
6311 pub name: BNQualifiedName,
6312 pub id: *mut ::std::os::raw::c_char,
6313 pub type_: *mut BNType,
6314}
6315#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6316const _: () = {
6317 ["Size of BNQualifiedNameTypeAndId"]
6318 [::std::mem::size_of::<BNQualifiedNameTypeAndId>() - 40usize];
6319 ["Alignment of BNQualifiedNameTypeAndId"]
6320 [::std::mem::align_of::<BNQualifiedNameTypeAndId>() - 8usize];
6321 ["Offset of field: BNQualifiedNameTypeAndId::name"]
6322 [::std::mem::offset_of!(BNQualifiedNameTypeAndId, name) - 0usize];
6323 ["Offset of field: BNQualifiedNameTypeAndId::id"]
6324 [::std::mem::offset_of!(BNQualifiedNameTypeAndId, id) - 24usize];
6325 ["Offset of field: BNQualifiedNameTypeAndId::type_"]
6326 [::std::mem::offset_of!(BNQualifiedNameTypeAndId, type_) - 32usize];
6327};
6328impl Default for BNQualifiedNameTypeAndId {
6329 fn default() -> Self {
6330 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6331 unsafe {
6332 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6333 s.assume_init()
6334 }
6335 }
6336}
6337#[repr(C)]
6338#[derive(Debug, Copy, Clone)]
6339pub struct BNStructureMember {
6340 pub type_: *mut BNType,
6341 pub name: *mut ::std::os::raw::c_char,
6342 pub offset: u64,
6343 pub typeConfidence: u8,
6344 pub access: BNMemberAccess,
6345 pub scope: BNMemberScope,
6346 pub bitPosition: u8,
6347 pub bitWidth: u8,
6348}
6349#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6350const _: () = {
6351 ["Size of BNStructureMember"][::std::mem::size_of::<BNStructureMember>() - 32usize];
6352 ["Alignment of BNStructureMember"][::std::mem::align_of::<BNStructureMember>() - 8usize];
6353 ["Offset of field: BNStructureMember::type_"]
6354 [::std::mem::offset_of!(BNStructureMember, type_) - 0usize];
6355 ["Offset of field: BNStructureMember::name"]
6356 [::std::mem::offset_of!(BNStructureMember, name) - 8usize];
6357 ["Offset of field: BNStructureMember::offset"]
6358 [::std::mem::offset_of!(BNStructureMember, offset) - 16usize];
6359 ["Offset of field: BNStructureMember::typeConfidence"]
6360 [::std::mem::offset_of!(BNStructureMember, typeConfidence) - 24usize];
6361 ["Offset of field: BNStructureMember::access"]
6362 [::std::mem::offset_of!(BNStructureMember, access) - 25usize];
6363 ["Offset of field: BNStructureMember::scope"]
6364 [::std::mem::offset_of!(BNStructureMember, scope) - 26usize];
6365 ["Offset of field: BNStructureMember::bitPosition"]
6366 [::std::mem::offset_of!(BNStructureMember, bitPosition) - 27usize];
6367 ["Offset of field: BNStructureMember::bitWidth"]
6368 [::std::mem::offset_of!(BNStructureMember, bitWidth) - 28usize];
6369};
6370impl Default for BNStructureMember {
6371 fn default() -> Self {
6372 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6373 unsafe {
6374 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6375 s.assume_init()
6376 }
6377 }
6378}
6379#[repr(C)]
6380#[derive(Debug, Copy, Clone)]
6381pub struct BNInheritedStructureMember {
6382 pub base: *mut BNNamedTypeReference,
6383 pub baseOffset: u64,
6384 pub member: BNStructureMember,
6385 pub memberIndex: usize,
6386}
6387#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6388const _: () = {
6389 ["Size of BNInheritedStructureMember"]
6390 [::std::mem::size_of::<BNInheritedStructureMember>() - 56usize];
6391 ["Alignment of BNInheritedStructureMember"]
6392 [::std::mem::align_of::<BNInheritedStructureMember>() - 8usize];
6393 ["Offset of field: BNInheritedStructureMember::base"]
6394 [::std::mem::offset_of!(BNInheritedStructureMember, base) - 0usize];
6395 ["Offset of field: BNInheritedStructureMember::baseOffset"]
6396 [::std::mem::offset_of!(BNInheritedStructureMember, baseOffset) - 8usize];
6397 ["Offset of field: BNInheritedStructureMember::member"]
6398 [::std::mem::offset_of!(BNInheritedStructureMember, member) - 16usize];
6399 ["Offset of field: BNInheritedStructureMember::memberIndex"]
6400 [::std::mem::offset_of!(BNInheritedStructureMember, memberIndex) - 48usize];
6401};
6402impl Default for BNInheritedStructureMember {
6403 fn default() -> Self {
6404 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6405 unsafe {
6406 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6407 s.assume_init()
6408 }
6409 }
6410}
6411#[repr(C)]
6412#[derive(Debug, Copy, Clone)]
6413pub struct BNBaseStructure {
6414 pub type_: *mut BNNamedTypeReference,
6415 pub offset: u64,
6416 pub width: u64,
6417}
6418#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6419const _: () = {
6420 ["Size of BNBaseStructure"][::std::mem::size_of::<BNBaseStructure>() - 24usize];
6421 ["Alignment of BNBaseStructure"][::std::mem::align_of::<BNBaseStructure>() - 8usize];
6422 ["Offset of field: BNBaseStructure::type_"]
6423 [::std::mem::offset_of!(BNBaseStructure, type_) - 0usize];
6424 ["Offset of field: BNBaseStructure::offset"]
6425 [::std::mem::offset_of!(BNBaseStructure, offset) - 8usize];
6426 ["Offset of field: BNBaseStructure::width"]
6427 [::std::mem::offset_of!(BNBaseStructure, width) - 16usize];
6428};
6429impl Default for BNBaseStructure {
6430 fn default() -> Self {
6431 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6432 unsafe {
6433 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6434 s.assume_init()
6435 }
6436 }
6437}
6438#[repr(C)]
6439#[derive(Debug, Copy, Clone)]
6440pub struct BNEnumerationMember {
6441 pub name: *mut ::std::os::raw::c_char,
6442 pub value: u64,
6443 pub isDefault: bool,
6444}
6445#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6446const _: () = {
6447 ["Size of BNEnumerationMember"][::std::mem::size_of::<BNEnumerationMember>() - 24usize];
6448 ["Alignment of BNEnumerationMember"][::std::mem::align_of::<BNEnumerationMember>() - 8usize];
6449 ["Offset of field: BNEnumerationMember::name"]
6450 [::std::mem::offset_of!(BNEnumerationMember, name) - 0usize];
6451 ["Offset of field: BNEnumerationMember::value"]
6452 [::std::mem::offset_of!(BNEnumerationMember, value) - 8usize];
6453 ["Offset of field: BNEnumerationMember::isDefault"]
6454 [::std::mem::offset_of!(BNEnumerationMember, isDefault) - 16usize];
6455};
6456impl Default for BNEnumerationMember {
6457 fn default() -> Self {
6458 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6459 unsafe {
6460 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6461 s.assume_init()
6462 }
6463 }
6464}
6465#[repr(C)]
6466#[derive(Debug, Copy, Clone)]
6467pub struct BNFunctionRecognizer {
6468 pub context: *mut ::std::os::raw::c_void,
6469 pub recognizeLowLevelIL: ::std::option::Option<
6470 unsafe extern "C" fn(
6471 ctxt: *mut ::std::os::raw::c_void,
6472 data: *mut BNBinaryView,
6473 func: *mut BNFunction,
6474 il: *mut BNLowLevelILFunction,
6475 ) -> bool,
6476 >,
6477 pub recognizeMediumLevelIL: ::std::option::Option<
6478 unsafe extern "C" fn(
6479 ctxt: *mut ::std::os::raw::c_void,
6480 data: *mut BNBinaryView,
6481 func: *mut BNFunction,
6482 il: *mut BNMediumLevelILFunction,
6483 ) -> bool,
6484 >,
6485}
6486#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6487const _: () = {
6488 ["Size of BNFunctionRecognizer"][::std::mem::size_of::<BNFunctionRecognizer>() - 24usize];
6489 ["Alignment of BNFunctionRecognizer"][::std::mem::align_of::<BNFunctionRecognizer>() - 8usize];
6490 ["Offset of field: BNFunctionRecognizer::context"]
6491 [::std::mem::offset_of!(BNFunctionRecognizer, context) - 0usize];
6492 ["Offset of field: BNFunctionRecognizer::recognizeLowLevelIL"]
6493 [::std::mem::offset_of!(BNFunctionRecognizer, recognizeLowLevelIL) - 8usize];
6494 ["Offset of field: BNFunctionRecognizer::recognizeMediumLevelIL"]
6495 [::std::mem::offset_of!(BNFunctionRecognizer, recognizeMediumLevelIL) - 16usize];
6496};
6497impl Default for BNFunctionRecognizer {
6498 fn default() -> Self {
6499 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6500 unsafe {
6501 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6502 s.assume_init()
6503 }
6504 }
6505}
6506#[repr(C)]
6507#[derive(Debug, Copy, Clone)]
6508pub struct BNCustomRelocationHandler {
6509 pub context: *mut ::std::os::raw::c_void,
6510 pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
6511 pub getRelocationInfo: ::std::option::Option<
6512 unsafe extern "C" fn(
6513 ctxt: *mut ::std::os::raw::c_void,
6514 view: *mut BNBinaryView,
6515 arch: *mut BNArchitecture,
6516 result: *mut BNRelocationInfo,
6517 resultCount: usize,
6518 ) -> bool,
6519 >,
6520 pub applyRelocation: ::std::option::Option<
6521 unsafe extern "C" fn(
6522 ctxt: *mut ::std::os::raw::c_void,
6523 view: *mut BNBinaryView,
6524 arch: *mut BNArchitecture,
6525 reloc: *mut BNRelocation,
6526 dest: *mut u8,
6527 len: usize,
6528 ) -> bool,
6529 >,
6530 pub getOperandForExternalRelocation: ::std::option::Option<
6531 unsafe extern "C" fn(
6532 ctxt: *mut ::std::os::raw::c_void,
6533 data: *const u8,
6534 addr: u64,
6535 length: usize,
6536 il: *mut BNLowLevelILFunction,
6537 relocation: *mut BNRelocation,
6538 ) -> usize,
6539 >,
6540}
6541#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6542const _: () = {
6543 ["Size of BNCustomRelocationHandler"]
6544 [::std::mem::size_of::<BNCustomRelocationHandler>() - 40usize];
6545 ["Alignment of BNCustomRelocationHandler"]
6546 [::std::mem::align_of::<BNCustomRelocationHandler>() - 8usize];
6547 ["Offset of field: BNCustomRelocationHandler::context"]
6548 [::std::mem::offset_of!(BNCustomRelocationHandler, context) - 0usize];
6549 ["Offset of field: BNCustomRelocationHandler::freeObject"]
6550 [::std::mem::offset_of!(BNCustomRelocationHandler, freeObject) - 8usize];
6551 ["Offset of field: BNCustomRelocationHandler::getRelocationInfo"]
6552 [::std::mem::offset_of!(BNCustomRelocationHandler, getRelocationInfo) - 16usize];
6553 ["Offset of field: BNCustomRelocationHandler::applyRelocation"]
6554 [::std::mem::offset_of!(BNCustomRelocationHandler, applyRelocation) - 24usize];
6555 ["Offset of field: BNCustomRelocationHandler::getOperandForExternalRelocation"][::std::mem::offset_of!(
6556 BNCustomRelocationHandler,
6557 getOperandForExternalRelocation
6558 ) - 32usize];
6559};
6560impl Default for BNCustomRelocationHandler {
6561 fn default() -> Self {
6562 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6563 unsafe {
6564 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6565 s.assume_init()
6566 }
6567 }
6568}
6569#[repr(u8)]
6570#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6571pub enum BNTypeParserOption {
6572 IncludeSystemTypes = 0,
6573 BuiltinMacros = 1,
6574}
6575#[repr(C)]
6576#[derive(Debug, Copy, Clone)]
6577pub struct BNParsedType {
6578 pub name: BNQualifiedName,
6579 pub type_: *mut BNType,
6580 pub isUser: bool,
6581}
6582#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6583const _: () = {
6584 ["Size of BNParsedType"][::std::mem::size_of::<BNParsedType>() - 40usize];
6585 ["Alignment of BNParsedType"][::std::mem::align_of::<BNParsedType>() - 8usize];
6586 ["Offset of field: BNParsedType::name"][::std::mem::offset_of!(BNParsedType, name) - 0usize];
6587 ["Offset of field: BNParsedType::type_"][::std::mem::offset_of!(BNParsedType, type_) - 24usize];
6588 ["Offset of field: BNParsedType::isUser"]
6589 [::std::mem::offset_of!(BNParsedType, isUser) - 32usize];
6590};
6591impl Default for BNParsedType {
6592 fn default() -> Self {
6593 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6594 unsafe {
6595 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6596 s.assume_init()
6597 }
6598 }
6599}
6600#[repr(C)]
6601#[derive(Debug, Copy, Clone)]
6602pub struct BNTypeParserResult {
6603 pub types: *mut BNParsedType,
6604 pub variables: *mut BNParsedType,
6605 pub functions: *mut BNParsedType,
6606 pub typeCount: usize,
6607 pub variableCount: usize,
6608 pub functionCount: usize,
6609}
6610#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6611const _: () = {
6612 ["Size of BNTypeParserResult"][::std::mem::size_of::<BNTypeParserResult>() - 48usize];
6613 ["Alignment of BNTypeParserResult"][::std::mem::align_of::<BNTypeParserResult>() - 8usize];
6614 ["Offset of field: BNTypeParserResult::types"]
6615 [::std::mem::offset_of!(BNTypeParserResult, types) - 0usize];
6616 ["Offset of field: BNTypeParserResult::variables"]
6617 [::std::mem::offset_of!(BNTypeParserResult, variables) - 8usize];
6618 ["Offset of field: BNTypeParserResult::functions"]
6619 [::std::mem::offset_of!(BNTypeParserResult, functions) - 16usize];
6620 ["Offset of field: BNTypeParserResult::typeCount"]
6621 [::std::mem::offset_of!(BNTypeParserResult, typeCount) - 24usize];
6622 ["Offset of field: BNTypeParserResult::variableCount"]
6623 [::std::mem::offset_of!(BNTypeParserResult, variableCount) - 32usize];
6624 ["Offset of field: BNTypeParserResult::functionCount"]
6625 [::std::mem::offset_of!(BNTypeParserResult, functionCount) - 40usize];
6626};
6627impl Default for BNTypeParserResult {
6628 fn default() -> Self {
6629 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6630 unsafe {
6631 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6632 s.assume_init()
6633 }
6634 }
6635}
6636#[repr(u8)]
6637#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6638pub enum BNTypeParserErrorSeverity {
6639 IgnoredSeverity = 0,
6640 NoteSeverity = 1,
6641 RemarkSeverity = 2,
6642 WarningSeverity = 3,
6643 ErrorSeverity = 4,
6644 FatalSeverity = 5,
6645}
6646#[repr(C)]
6647#[derive(Debug, Copy, Clone)]
6648pub struct BNTypeParserError {
6649 pub severity: BNTypeParserErrorSeverity,
6650 pub message: *mut ::std::os::raw::c_char,
6651 pub fileName: *mut ::std::os::raw::c_char,
6652 pub line: u64,
6653 pub column: u64,
6654}
6655#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6656const _: () = {
6657 ["Size of BNTypeParserError"][::std::mem::size_of::<BNTypeParserError>() - 40usize];
6658 ["Alignment of BNTypeParserError"][::std::mem::align_of::<BNTypeParserError>() - 8usize];
6659 ["Offset of field: BNTypeParserError::severity"]
6660 [::std::mem::offset_of!(BNTypeParserError, severity) - 0usize];
6661 ["Offset of field: BNTypeParserError::message"]
6662 [::std::mem::offset_of!(BNTypeParserError, message) - 8usize];
6663 ["Offset of field: BNTypeParserError::fileName"]
6664 [::std::mem::offset_of!(BNTypeParserError, fileName) - 16usize];
6665 ["Offset of field: BNTypeParserError::line"]
6666 [::std::mem::offset_of!(BNTypeParserError, line) - 24usize];
6667 ["Offset of field: BNTypeParserError::column"]
6668 [::std::mem::offset_of!(BNTypeParserError, column) - 32usize];
6669};
6670impl Default for BNTypeParserError {
6671 fn default() -> Self {
6672 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6673 unsafe {
6674 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6675 s.assume_init()
6676 }
6677 }
6678}
6679#[repr(C)]
6680#[derive(Debug, Copy, Clone)]
6681pub struct BNQualifiedNameList {
6682 pub names: *mut BNQualifiedName,
6683 pub count: usize,
6684}
6685#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6686const _: () = {
6687 ["Size of BNQualifiedNameList"][::std::mem::size_of::<BNQualifiedNameList>() - 16usize];
6688 ["Alignment of BNQualifiedNameList"][::std::mem::align_of::<BNQualifiedNameList>() - 8usize];
6689 ["Offset of field: BNQualifiedNameList::names"]
6690 [::std::mem::offset_of!(BNQualifiedNameList, names) - 0usize];
6691 ["Offset of field: BNQualifiedNameList::count"]
6692 [::std::mem::offset_of!(BNQualifiedNameList, count) - 8usize];
6693};
6694impl Default for BNQualifiedNameList {
6695 fn default() -> Self {
6696 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6697 unsafe {
6698 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6699 s.assume_init()
6700 }
6701 }
6702}
6703#[repr(u8)]
6704#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6705pub enum BNUpdateResult {
6706 UpdateFailed = 0,
6707 UpdateSuccess = 1,
6708 AlreadyUpToDate = 2,
6709 UpdateAvailable = 3,
6710}
6711#[repr(C)]
6712#[derive(Debug, Copy, Clone)]
6713pub struct BNUpdateChannel {
6714 pub name: *mut ::std::os::raw::c_char,
6715 pub description: *mut ::std::os::raw::c_char,
6716 pub latestVersion: *mut ::std::os::raw::c_char,
6717}
6718#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6719const _: () = {
6720 ["Size of BNUpdateChannel"][::std::mem::size_of::<BNUpdateChannel>() - 24usize];
6721 ["Alignment of BNUpdateChannel"][::std::mem::align_of::<BNUpdateChannel>() - 8usize];
6722 ["Offset of field: BNUpdateChannel::name"]
6723 [::std::mem::offset_of!(BNUpdateChannel, name) - 0usize];
6724 ["Offset of field: BNUpdateChannel::description"]
6725 [::std::mem::offset_of!(BNUpdateChannel, description) - 8usize];
6726 ["Offset of field: BNUpdateChannel::latestVersion"]
6727 [::std::mem::offset_of!(BNUpdateChannel, latestVersion) - 16usize];
6728};
6729impl Default for BNUpdateChannel {
6730 fn default() -> Self {
6731 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6732 unsafe {
6733 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6734 s.assume_init()
6735 }
6736 }
6737}
6738#[repr(C)]
6739#[derive(Debug, Copy, Clone)]
6740pub struct BNChangelogEntry {
6741 pub version: BNVersionInfo,
6742 pub notes: *mut ::std::os::raw::c_char,
6743 pub time: u64,
6744}
6745#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6746const _: () = {
6747 ["Size of BNChangelogEntry"][::std::mem::size_of::<BNChangelogEntry>() - 40usize];
6748 ["Alignment of BNChangelogEntry"][::std::mem::align_of::<BNChangelogEntry>() - 8usize];
6749 ["Offset of field: BNChangelogEntry::version"]
6750 [::std::mem::offset_of!(BNChangelogEntry, version) - 0usize];
6751 ["Offset of field: BNChangelogEntry::notes"]
6752 [::std::mem::offset_of!(BNChangelogEntry, notes) - 24usize];
6753 ["Offset of field: BNChangelogEntry::time"]
6754 [::std::mem::offset_of!(BNChangelogEntry, time) - 32usize];
6755};
6756impl Default for BNChangelogEntry {
6757 fn default() -> Self {
6758 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6759 unsafe {
6760 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6761 s.assume_init()
6762 }
6763 }
6764}
6765#[repr(C)]
6766#[derive(Debug, Copy, Clone)]
6767pub struct BNUpdateVersionNew {
6768 pub version: BNVersionInfo,
6769 pub name: *mut ::std::os::raw::c_char,
6770 pub time: u64,
6771}
6772#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6773const _: () = {
6774 ["Size of BNUpdateVersionNew"][::std::mem::size_of::<BNUpdateVersionNew>() - 40usize];
6775 ["Alignment of BNUpdateVersionNew"][::std::mem::align_of::<BNUpdateVersionNew>() - 8usize];
6776 ["Offset of field: BNUpdateVersionNew::version"]
6777 [::std::mem::offset_of!(BNUpdateVersionNew, version) - 0usize];
6778 ["Offset of field: BNUpdateVersionNew::name"]
6779 [::std::mem::offset_of!(BNUpdateVersionNew, name) - 24usize];
6780 ["Offset of field: BNUpdateVersionNew::time"]
6781 [::std::mem::offset_of!(BNUpdateVersionNew, time) - 32usize];
6782};
6783impl Default for BNUpdateVersionNew {
6784 fn default() -> Self {
6785 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6786 unsafe {
6787 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6788 s.assume_init()
6789 }
6790 }
6791}
6792#[repr(C)]
6793#[derive(Debug, Copy, Clone)]
6794pub struct BNUpdateChannelFullInfo {
6795 pub versions: *mut BNUpdateVersionNew,
6796 pub versionCount: u64,
6797 pub changelogEntries: *mut BNChangelogEntry,
6798 pub changelogEntryCount: u64,
6799 pub name: *mut ::std::os::raw::c_char,
6800 pub desc: *mut ::std::os::raw::c_char,
6801 pub latestVersion: *mut ::std::os::raw::c_char,
6802}
6803#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6804const _: () = {
6805 ["Size of BNUpdateChannelFullInfo"][::std::mem::size_of::<BNUpdateChannelFullInfo>() - 56usize];
6806 ["Alignment of BNUpdateChannelFullInfo"]
6807 [::std::mem::align_of::<BNUpdateChannelFullInfo>() - 8usize];
6808 ["Offset of field: BNUpdateChannelFullInfo::versions"]
6809 [::std::mem::offset_of!(BNUpdateChannelFullInfo, versions) - 0usize];
6810 ["Offset of field: BNUpdateChannelFullInfo::versionCount"]
6811 [::std::mem::offset_of!(BNUpdateChannelFullInfo, versionCount) - 8usize];
6812 ["Offset of field: BNUpdateChannelFullInfo::changelogEntries"]
6813 [::std::mem::offset_of!(BNUpdateChannelFullInfo, changelogEntries) - 16usize];
6814 ["Offset of field: BNUpdateChannelFullInfo::changelogEntryCount"]
6815 [::std::mem::offset_of!(BNUpdateChannelFullInfo, changelogEntryCount) - 24usize];
6816 ["Offset of field: BNUpdateChannelFullInfo::name"]
6817 [::std::mem::offset_of!(BNUpdateChannelFullInfo, name) - 32usize];
6818 ["Offset of field: BNUpdateChannelFullInfo::desc"]
6819 [::std::mem::offset_of!(BNUpdateChannelFullInfo, desc) - 40usize];
6820 ["Offset of field: BNUpdateChannelFullInfo::latestVersion"]
6821 [::std::mem::offset_of!(BNUpdateChannelFullInfo, latestVersion) - 48usize];
6822};
6823impl Default for BNUpdateChannelFullInfo {
6824 fn default() -> Self {
6825 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6826 unsafe {
6827 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6828 s.assume_init()
6829 }
6830 }
6831}
6832#[repr(C)]
6833#[derive(Debug, Copy, Clone)]
6834pub struct BNUpdateVersion {
6835 pub version: *mut ::std::os::raw::c_char,
6836 pub notes: *mut ::std::os::raw::c_char,
6837 pub time: u64,
6838}
6839#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6840const _: () = {
6841 ["Size of BNUpdateVersion"][::std::mem::size_of::<BNUpdateVersion>() - 24usize];
6842 ["Alignment of BNUpdateVersion"][::std::mem::align_of::<BNUpdateVersion>() - 8usize];
6843 ["Offset of field: BNUpdateVersion::version"]
6844 [::std::mem::offset_of!(BNUpdateVersion, version) - 0usize];
6845 ["Offset of field: BNUpdateVersion::notes"]
6846 [::std::mem::offset_of!(BNUpdateVersion, notes) - 8usize];
6847 ["Offset of field: BNUpdateVersion::time"]
6848 [::std::mem::offset_of!(BNUpdateVersion, time) - 16usize];
6849};
6850impl Default for BNUpdateVersion {
6851 fn default() -> Self {
6852 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6853 unsafe {
6854 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6855 s.assume_init()
6856 }
6857 }
6858}
6859#[repr(C)]
6860#[derive(Debug, Copy, Clone)]
6861pub struct BNStringReference {
6862 pub type_: BNStringType,
6863 pub start: u64,
6864 pub length: usize,
6865}
6866#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6867const _: () = {
6868 ["Size of BNStringReference"][::std::mem::size_of::<BNStringReference>() - 24usize];
6869 ["Alignment of BNStringReference"][::std::mem::align_of::<BNStringReference>() - 8usize];
6870 ["Offset of field: BNStringReference::type_"]
6871 [::std::mem::offset_of!(BNStringReference, type_) - 0usize];
6872 ["Offset of field: BNStringReference::start"]
6873 [::std::mem::offset_of!(BNStringReference, start) - 8usize];
6874 ["Offset of field: BNStringReference::length"]
6875 [::std::mem::offset_of!(BNStringReference, length) - 16usize];
6876};
6877impl Default for BNStringReference {
6878 fn default() -> Self {
6879 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6880 unsafe {
6881 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6882 s.assume_init()
6883 }
6884 }
6885}
6886#[repr(u8)]
6887#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6888pub enum BNPluginCommandType {
6889 DefaultPluginCommand = 0,
6890 AddressPluginCommand = 1,
6891 RangePluginCommand = 2,
6892 FunctionPluginCommand = 3,
6893 LowLevelILFunctionPluginCommand = 4,
6894 LowLevelILInstructionPluginCommand = 5,
6895 MediumLevelILFunctionPluginCommand = 6,
6896 MediumLevelILInstructionPluginCommand = 7,
6897 HighLevelILFunctionPluginCommand = 8,
6898 HighLevelILInstructionPluginCommand = 9,
6899 ProjectPluginCommand = 10,
6900 GlobalPluginCommand = 11,
6901}
6902#[repr(C)]
6903#[derive(Debug, Copy, Clone)]
6904pub struct BNPluginCommand {
6905 pub name: *mut ::std::os::raw::c_char,
6906 pub description: *mut ::std::os::raw::c_char,
6907 pub type_: BNPluginCommandType,
6908 pub context: *mut ::std::os::raw::c_void,
6909 pub globalCommand:
6910 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
6911 pub defaultCommand: ::std::option::Option<
6912 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
6913 >,
6914 pub addressCommand: ::std::option::Option<
6915 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView, addr: u64),
6916 >,
6917 pub rangeCommand: ::std::option::Option<
6918 unsafe extern "C" fn(
6919 ctxt: *mut ::std::os::raw::c_void,
6920 view: *mut BNBinaryView,
6921 addr: u64,
6922 len: u64,
6923 ),
6924 >,
6925 pub functionCommand: ::std::option::Option<
6926 unsafe extern "C" fn(
6927 ctxt: *mut ::std::os::raw::c_void,
6928 view: *mut BNBinaryView,
6929 func: *mut BNFunction,
6930 ),
6931 >,
6932 pub lowLevelILFunctionCommand: ::std::option::Option<
6933 unsafe extern "C" fn(
6934 ctxt: *mut ::std::os::raw::c_void,
6935 view: *mut BNBinaryView,
6936 func: *mut BNLowLevelILFunction,
6937 ),
6938 >,
6939 pub lowLevelILInstructionCommand: ::std::option::Option<
6940 unsafe extern "C" fn(
6941 ctxt: *mut ::std::os::raw::c_void,
6942 view: *mut BNBinaryView,
6943 func: *mut BNLowLevelILFunction,
6944 instr: usize,
6945 ),
6946 >,
6947 pub mediumLevelILFunctionCommand: ::std::option::Option<
6948 unsafe extern "C" fn(
6949 ctxt: *mut ::std::os::raw::c_void,
6950 view: *mut BNBinaryView,
6951 func: *mut BNMediumLevelILFunction,
6952 ),
6953 >,
6954 pub mediumLevelILInstructionCommand: ::std::option::Option<
6955 unsafe extern "C" fn(
6956 ctxt: *mut ::std::os::raw::c_void,
6957 view: *mut BNBinaryView,
6958 func: *mut BNMediumLevelILFunction,
6959 instr: usize,
6960 ),
6961 >,
6962 pub highLevelILFunctionCommand: ::std::option::Option<
6963 unsafe extern "C" fn(
6964 ctxt: *mut ::std::os::raw::c_void,
6965 view: *mut BNBinaryView,
6966 func: *mut BNHighLevelILFunction,
6967 ),
6968 >,
6969 pub highLevelILInstructionCommand: ::std::option::Option<
6970 unsafe extern "C" fn(
6971 ctxt: *mut ::std::os::raw::c_void,
6972 view: *mut BNBinaryView,
6973 func: *mut BNHighLevelILFunction,
6974 instr: usize,
6975 ),
6976 >,
6977 pub projectCommand: ::std::option::Option<
6978 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNProject),
6979 >,
6980 pub globalIsValid:
6981 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
6982 pub defaultIsValid: ::std::option::Option<
6983 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView) -> bool,
6984 >,
6985 pub addressIsValid: ::std::option::Option<
6986 unsafe extern "C" fn(
6987 ctxt: *mut ::std::os::raw::c_void,
6988 view: *mut BNBinaryView,
6989 addr: u64,
6990 ) -> bool,
6991 >,
6992 pub rangeIsValid: ::std::option::Option<
6993 unsafe extern "C" fn(
6994 ctxt: *mut ::std::os::raw::c_void,
6995 view: *mut BNBinaryView,
6996 addr: u64,
6997 len: u64,
6998 ) -> bool,
6999 >,
7000 pub functionIsValid: ::std::option::Option<
7001 unsafe extern "C" fn(
7002 ctxt: *mut ::std::os::raw::c_void,
7003 view: *mut BNBinaryView,
7004 func: *mut BNFunction,
7005 ) -> bool,
7006 >,
7007 pub lowLevelILFunctionIsValid: ::std::option::Option<
7008 unsafe extern "C" fn(
7009 ctxt: *mut ::std::os::raw::c_void,
7010 view: *mut BNBinaryView,
7011 func: *mut BNLowLevelILFunction,
7012 ) -> bool,
7013 >,
7014 pub lowLevelILInstructionIsValid: ::std::option::Option<
7015 unsafe extern "C" fn(
7016 ctxt: *mut ::std::os::raw::c_void,
7017 view: *mut BNBinaryView,
7018 func: *mut BNLowLevelILFunction,
7019 instr: usize,
7020 ) -> bool,
7021 >,
7022 pub mediumLevelILFunctionIsValid: ::std::option::Option<
7023 unsafe extern "C" fn(
7024 ctxt: *mut ::std::os::raw::c_void,
7025 view: *mut BNBinaryView,
7026 func: *mut BNMediumLevelILFunction,
7027 ) -> bool,
7028 >,
7029 pub mediumLevelILInstructionIsValid: ::std::option::Option<
7030 unsafe extern "C" fn(
7031 ctxt: *mut ::std::os::raw::c_void,
7032 view: *mut BNBinaryView,
7033 func: *mut BNMediumLevelILFunction,
7034 instr: usize,
7035 ) -> bool,
7036 >,
7037 pub highLevelILFunctionIsValid: ::std::option::Option<
7038 unsafe extern "C" fn(
7039 ctxt: *mut ::std::os::raw::c_void,
7040 view: *mut BNBinaryView,
7041 func: *mut BNHighLevelILFunction,
7042 ) -> bool,
7043 >,
7044 pub highLevelILInstructionIsValid: ::std::option::Option<
7045 unsafe extern "C" fn(
7046 ctxt: *mut ::std::os::raw::c_void,
7047 view: *mut BNBinaryView,
7048 func: *mut BNHighLevelILFunction,
7049 instr: usize,
7050 ) -> bool,
7051 >,
7052 pub projectIsValid: ::std::option::Option<
7053 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNProject) -> bool,
7054 >,
7055}
7056#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7057const _: () = {
7058 ["Size of BNPluginCommand"][::std::mem::size_of::<BNPluginCommand>() - 224usize];
7059 ["Alignment of BNPluginCommand"][::std::mem::align_of::<BNPluginCommand>() - 8usize];
7060 ["Offset of field: BNPluginCommand::name"]
7061 [::std::mem::offset_of!(BNPluginCommand, name) - 0usize];
7062 ["Offset of field: BNPluginCommand::description"]
7063 [::std::mem::offset_of!(BNPluginCommand, description) - 8usize];
7064 ["Offset of field: BNPluginCommand::type_"]
7065 [::std::mem::offset_of!(BNPluginCommand, type_) - 16usize];
7066 ["Offset of field: BNPluginCommand::context"]
7067 [::std::mem::offset_of!(BNPluginCommand, context) - 24usize];
7068 ["Offset of field: BNPluginCommand::globalCommand"]
7069 [::std::mem::offset_of!(BNPluginCommand, globalCommand) - 32usize];
7070 ["Offset of field: BNPluginCommand::defaultCommand"]
7071 [::std::mem::offset_of!(BNPluginCommand, defaultCommand) - 40usize];
7072 ["Offset of field: BNPluginCommand::addressCommand"]
7073 [::std::mem::offset_of!(BNPluginCommand, addressCommand) - 48usize];
7074 ["Offset of field: BNPluginCommand::rangeCommand"]
7075 [::std::mem::offset_of!(BNPluginCommand, rangeCommand) - 56usize];
7076 ["Offset of field: BNPluginCommand::functionCommand"]
7077 [::std::mem::offset_of!(BNPluginCommand, functionCommand) - 64usize];
7078 ["Offset of field: BNPluginCommand::lowLevelILFunctionCommand"]
7079 [::std::mem::offset_of!(BNPluginCommand, lowLevelILFunctionCommand) - 72usize];
7080 ["Offset of field: BNPluginCommand::lowLevelILInstructionCommand"]
7081 [::std::mem::offset_of!(BNPluginCommand, lowLevelILInstructionCommand) - 80usize];
7082 ["Offset of field: BNPluginCommand::mediumLevelILFunctionCommand"]
7083 [::std::mem::offset_of!(BNPluginCommand, mediumLevelILFunctionCommand) - 88usize];
7084 ["Offset of field: BNPluginCommand::mediumLevelILInstructionCommand"]
7085 [::std::mem::offset_of!(BNPluginCommand, mediumLevelILInstructionCommand) - 96usize];
7086 ["Offset of field: BNPluginCommand::highLevelILFunctionCommand"]
7087 [::std::mem::offset_of!(BNPluginCommand, highLevelILFunctionCommand) - 104usize];
7088 ["Offset of field: BNPluginCommand::highLevelILInstructionCommand"]
7089 [::std::mem::offset_of!(BNPluginCommand, highLevelILInstructionCommand) - 112usize];
7090 ["Offset of field: BNPluginCommand::projectCommand"]
7091 [::std::mem::offset_of!(BNPluginCommand, projectCommand) - 120usize];
7092 ["Offset of field: BNPluginCommand::globalIsValid"]
7093 [::std::mem::offset_of!(BNPluginCommand, globalIsValid) - 128usize];
7094 ["Offset of field: BNPluginCommand::defaultIsValid"]
7095 [::std::mem::offset_of!(BNPluginCommand, defaultIsValid) - 136usize];
7096 ["Offset of field: BNPluginCommand::addressIsValid"]
7097 [::std::mem::offset_of!(BNPluginCommand, addressIsValid) - 144usize];
7098 ["Offset of field: BNPluginCommand::rangeIsValid"]
7099 [::std::mem::offset_of!(BNPluginCommand, rangeIsValid) - 152usize];
7100 ["Offset of field: BNPluginCommand::functionIsValid"]
7101 [::std::mem::offset_of!(BNPluginCommand, functionIsValid) - 160usize];
7102 ["Offset of field: BNPluginCommand::lowLevelILFunctionIsValid"]
7103 [::std::mem::offset_of!(BNPluginCommand, lowLevelILFunctionIsValid) - 168usize];
7104 ["Offset of field: BNPluginCommand::lowLevelILInstructionIsValid"]
7105 [::std::mem::offset_of!(BNPluginCommand, lowLevelILInstructionIsValid) - 176usize];
7106 ["Offset of field: BNPluginCommand::mediumLevelILFunctionIsValid"]
7107 [::std::mem::offset_of!(BNPluginCommand, mediumLevelILFunctionIsValid) - 184usize];
7108 ["Offset of field: BNPluginCommand::mediumLevelILInstructionIsValid"]
7109 [::std::mem::offset_of!(BNPluginCommand, mediumLevelILInstructionIsValid) - 192usize];
7110 ["Offset of field: BNPluginCommand::highLevelILFunctionIsValid"]
7111 [::std::mem::offset_of!(BNPluginCommand, highLevelILFunctionIsValid) - 200usize];
7112 ["Offset of field: BNPluginCommand::highLevelILInstructionIsValid"]
7113 [::std::mem::offset_of!(BNPluginCommand, highLevelILInstructionIsValid) - 208usize];
7114 ["Offset of field: BNPluginCommand::projectIsValid"]
7115 [::std::mem::offset_of!(BNPluginCommand, projectIsValid) - 216usize];
7116};
7117impl Default for BNPluginCommand {
7118 fn default() -> Self {
7119 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7120 unsafe {
7121 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7122 s.assume_init()
7123 }
7124 }
7125}
7126#[repr(C)]
7127#[derive(Debug, Copy, Clone)]
7128pub struct BNCustomCallingConvention {
7129 pub context: *mut ::std::os::raw::c_void,
7130 pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
7131 pub getCallerSavedRegisters: ::std::option::Option<
7132 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
7133 >,
7134 pub getCalleeSavedRegisters: ::std::option::Option<
7135 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
7136 >,
7137 pub getIntegerArgumentRegisters: ::std::option::Option<
7138 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
7139 >,
7140 pub getFloatArgumentRegisters: ::std::option::Option<
7141 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
7142 >,
7143 pub getRequiredArgumentRegisters: ::std::option::Option<
7144 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
7145 >,
7146 pub getRequiredClobberedRegisters: ::std::option::Option<
7147 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
7148 >,
7149 pub freeRegisterList: ::std::option::Option<
7150 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, regs: *mut u32, len: usize),
7151 >,
7152 pub areArgumentRegistersSharedIndex:
7153 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
7154 pub isStackReservedForArgumentRegisters:
7155 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
7156 pub isStackAdjustedOnReturn:
7157 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
7158 pub isEligibleForHeuristics:
7159 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
7160 pub getIntegerReturnValueRegister:
7161 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
7162 pub getHighIntegerReturnValueRegister:
7163 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
7164 pub getFloatReturnValueRegister:
7165 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
7166 pub getGlobalPointerRegisters: ::std::option::Option<
7167 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
7168 >,
7169 pub getImplicitlyDefinedRegisters: ::std::option::Option<
7170 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
7171 >,
7172 pub getIncomingRegisterValue: ::std::option::Option<
7173 unsafe extern "C" fn(
7174 ctxt: *mut ::std::os::raw::c_void,
7175 reg: u32,
7176 func: *mut BNFunction,
7177 result: *mut BNRegisterValue,
7178 ),
7179 >,
7180 pub getIncomingFlagValue: ::std::option::Option<
7181 unsafe extern "C" fn(
7182 ctxt: *mut ::std::os::raw::c_void,
7183 flag: u32,
7184 func: *mut BNFunction,
7185 result: *mut BNRegisterValue,
7186 ),
7187 >,
7188 pub isReturnTypeRegisterCompatible: ::std::option::Option<
7189 unsafe extern "C" fn(
7190 ctxt: *mut ::std::os::raw::c_void,
7191 view: *mut BNBinaryView,
7192 type_: *mut BNType,
7193 ) -> bool,
7194 >,
7195 pub getIndirectReturnValueLocation: ::std::option::Option<
7196 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, outVar: *mut BNVariable),
7197 >,
7198 pub getReturnedIndirectReturnValuePointer: ::std::option::Option<
7199 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, outVar: *mut BNVariable) -> bool,
7200 >,
7201 pub isArgumentTypeRegisterCompatible: ::std::option::Option<
7202 unsafe extern "C" fn(
7203 ctxt: *mut ::std::os::raw::c_void,
7204 view: *mut BNBinaryView,
7205 type_: *mut BNType,
7206 ) -> bool,
7207 >,
7208 pub isNonRegisterArgumentIndirect: ::std::option::Option<
7209 unsafe extern "C" fn(
7210 ctxt: *mut ::std::os::raw::c_void,
7211 view: *mut BNBinaryView,
7212 type_: *mut BNType,
7213 ) -> bool,
7214 >,
7215 pub areStackArgumentsNaturallyAligned:
7216 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
7217 pub areStackArgumentsPushedLeftToRight:
7218 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
7219 pub getIncomingVariableForParameterVariable: ::std::option::Option<
7220 unsafe extern "C" fn(
7221 ctxt: *mut ::std::os::raw::c_void,
7222 var: *const BNVariable,
7223 func: *mut BNFunction,
7224 result: *mut BNVariable,
7225 ),
7226 >,
7227 pub getParameterVariableForIncomingVariable: ::std::option::Option<
7228 unsafe extern "C" fn(
7229 ctxt: *mut ::std::os::raw::c_void,
7230 var: *const BNVariable,
7231 func: *mut BNFunction,
7232 result: *mut BNVariable,
7233 ),
7234 >,
7235 pub areArgumentRegistersUsedForVarArgs:
7236 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
7237 pub getCallLayout: ::std::option::Option<
7238 unsafe extern "C" fn(
7239 ctxt: *mut ::std::os::raw::c_void,
7240 view: *mut BNBinaryView,
7241 returnValue: *mut BNReturnValue,
7242 params: *mut BNFunctionParameter,
7243 paramCount: usize,
7244 hasPermittedRegs: bool,
7245 permittedRegs: *mut u32,
7246 permittedRegCount: usize,
7247 result: *mut BNCallLayout,
7248 ),
7249 >,
7250 pub freeCallLayout: ::std::option::Option<
7251 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, layout: *mut BNCallLayout),
7252 >,
7253 pub getReturnValueLocation: ::std::option::Option<
7254 unsafe extern "C" fn(
7255 ctxt: *mut ::std::os::raw::c_void,
7256 view: *mut BNBinaryView,
7257 returnValue: *mut BNReturnValue,
7258 outLocation: *mut BNValueLocation,
7259 ),
7260 >,
7261 pub freeValueLocation: ::std::option::Option<
7262 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, location: *mut BNValueLocation),
7263 >,
7264 pub getParameterLocations: ::std::option::Option<
7265 unsafe extern "C" fn(
7266 ctxt: *mut ::std::os::raw::c_void,
7267 view: *mut BNBinaryView,
7268 returnValue: *mut BNValueLocation,
7269 params: *mut BNFunctionParameter,
7270 paramCount: usize,
7271 hasPermittedRegs: bool,
7272 permittedRegs: *mut u32,
7273 permittedRegCount: usize,
7274 outLocationCount: *mut usize,
7275 ) -> *mut BNValueLocation,
7276 >,
7277 pub freeParameterLocations: ::std::option::Option<
7278 unsafe extern "C" fn(
7279 ctxt: *mut ::std::os::raw::c_void,
7280 locations: *mut BNValueLocation,
7281 count: usize,
7282 ),
7283 >,
7284 pub getParameterOrderingForVariables: ::std::option::Option<
7285 unsafe extern "C" fn(
7286 ctxt: *mut ::std::os::raw::c_void,
7287 view: *mut BNBinaryView,
7288 vars: *mut BNVariable,
7289 types: *mut *mut BNType,
7290 paramCount: usize,
7291 outCount: *mut usize,
7292 ) -> *mut BNVariable,
7293 >,
7294 pub freeVariableList: ::std::option::Option<
7295 unsafe extern "C" fn(
7296 ctxt: *mut ::std::os::raw::c_void,
7297 vars: *mut BNVariable,
7298 count: usize,
7299 ),
7300 >,
7301 pub getStackAdjustmentForLocations: ::std::option::Option<
7302 unsafe extern "C" fn(
7303 ctxt: *mut ::std::os::raw::c_void,
7304 view: *mut BNBinaryView,
7305 returnValue: *mut BNValueLocation,
7306 locations: *mut BNValueLocation,
7307 types: *mut *mut BNType,
7308 paramCount: usize,
7309 ) -> i64,
7310 >,
7311 pub getRegisterStackAdjustments: ::std::option::Option<
7312 unsafe extern "C" fn(
7313 ctxt: *mut ::std::os::raw::c_void,
7314 view: *mut BNBinaryView,
7315 returnValue: *mut BNValueLocation,
7316 params: *mut BNValueLocation,
7317 paramCount: usize,
7318 outRegs: *mut *mut u32,
7319 outAdjust: *mut *mut i32,
7320 ) -> usize,
7321 >,
7322 pub freeRegisterStackAdjustments: ::std::option::Option<
7323 unsafe extern "C" fn(
7324 ctxt: *mut ::std::os::raw::c_void,
7325 regs: *mut u32,
7326 adjust: *mut i32,
7327 count: usize,
7328 ),
7329 >,
7330}
7331#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7332const _: () = {
7333 ["Size of BNCustomCallingConvention"]
7334 [::std::mem::size_of::<BNCustomCallingConvention>() - 328usize];
7335 ["Alignment of BNCustomCallingConvention"]
7336 [::std::mem::align_of::<BNCustomCallingConvention>() - 8usize];
7337 ["Offset of field: BNCustomCallingConvention::context"]
7338 [::std::mem::offset_of!(BNCustomCallingConvention, context) - 0usize];
7339 ["Offset of field: BNCustomCallingConvention::freeObject"]
7340 [::std::mem::offset_of!(BNCustomCallingConvention, freeObject) - 8usize];
7341 ["Offset of field: BNCustomCallingConvention::getCallerSavedRegisters"]
7342 [::std::mem::offset_of!(BNCustomCallingConvention, getCallerSavedRegisters) - 16usize];
7343 ["Offset of field: BNCustomCallingConvention::getCalleeSavedRegisters"]
7344 [::std::mem::offset_of!(BNCustomCallingConvention, getCalleeSavedRegisters) - 24usize];
7345 ["Offset of field: BNCustomCallingConvention::getIntegerArgumentRegisters"]
7346 [::std::mem::offset_of!(BNCustomCallingConvention, getIntegerArgumentRegisters) - 32usize];
7347 ["Offset of field: BNCustomCallingConvention::getFloatArgumentRegisters"]
7348 [::std::mem::offset_of!(BNCustomCallingConvention, getFloatArgumentRegisters) - 40usize];
7349 ["Offset of field: BNCustomCallingConvention::getRequiredArgumentRegisters"]
7350 [::std::mem::offset_of!(BNCustomCallingConvention, getRequiredArgumentRegisters) - 48usize];
7351 ["Offset of field: BNCustomCallingConvention::getRequiredClobberedRegisters"][::std::mem::offset_of!(
7352 BNCustomCallingConvention,
7353 getRequiredClobberedRegisters
7354 ) - 56usize];
7355 ["Offset of field: BNCustomCallingConvention::freeRegisterList"]
7356 [::std::mem::offset_of!(BNCustomCallingConvention, freeRegisterList) - 64usize];
7357 ["Offset of field: BNCustomCallingConvention::areArgumentRegistersSharedIndex"][::std::mem::offset_of!(
7358 BNCustomCallingConvention,
7359 areArgumentRegistersSharedIndex
7360 ) - 72usize];
7361 ["Offset of field: BNCustomCallingConvention::isStackReservedForArgumentRegisters"][::std::mem::offset_of!(
7362 BNCustomCallingConvention,
7363 isStackReservedForArgumentRegisters
7364 )
7365 - 80usize];
7366 ["Offset of field: BNCustomCallingConvention::isStackAdjustedOnReturn"]
7367 [::std::mem::offset_of!(BNCustomCallingConvention, isStackAdjustedOnReturn) - 88usize];
7368 ["Offset of field: BNCustomCallingConvention::isEligibleForHeuristics"]
7369 [::std::mem::offset_of!(BNCustomCallingConvention, isEligibleForHeuristics) - 96usize];
7370 ["Offset of field: BNCustomCallingConvention::getIntegerReturnValueRegister"][::std::mem::offset_of!(
7371 BNCustomCallingConvention,
7372 getIntegerReturnValueRegister
7373 ) - 104usize];
7374 ["Offset of field: BNCustomCallingConvention::getHighIntegerReturnValueRegister"][::std::mem::offset_of!(
7375 BNCustomCallingConvention,
7376 getHighIntegerReturnValueRegister
7377 ) - 112usize];
7378 ["Offset of field: BNCustomCallingConvention::getFloatReturnValueRegister"]
7379 [::std::mem::offset_of!(BNCustomCallingConvention, getFloatReturnValueRegister) - 120usize];
7380 ["Offset of field: BNCustomCallingConvention::getGlobalPointerRegisters"]
7381 [::std::mem::offset_of!(BNCustomCallingConvention, getGlobalPointerRegisters) - 128usize];
7382 ["Offset of field: BNCustomCallingConvention::getImplicitlyDefinedRegisters"][::std::mem::offset_of!(
7383 BNCustomCallingConvention,
7384 getImplicitlyDefinedRegisters
7385 ) - 136usize];
7386 ["Offset of field: BNCustomCallingConvention::getIncomingRegisterValue"]
7387 [::std::mem::offset_of!(BNCustomCallingConvention, getIncomingRegisterValue) - 144usize];
7388 ["Offset of field: BNCustomCallingConvention::getIncomingFlagValue"]
7389 [::std::mem::offset_of!(BNCustomCallingConvention, getIncomingFlagValue) - 152usize];
7390 ["Offset of field: BNCustomCallingConvention::isReturnTypeRegisterCompatible"][::std::mem::offset_of!(
7391 BNCustomCallingConvention,
7392 isReturnTypeRegisterCompatible
7393 ) - 160usize];
7394 ["Offset of field: BNCustomCallingConvention::getIndirectReturnValueLocation"][::std::mem::offset_of!(
7395 BNCustomCallingConvention,
7396 getIndirectReturnValueLocation
7397 ) - 168usize];
7398 ["Offset of field: BNCustomCallingConvention::getReturnedIndirectReturnValuePointer"][::std::mem::offset_of!(
7399 BNCustomCallingConvention,
7400 getReturnedIndirectReturnValuePointer
7401 )
7402 - 176usize];
7403 ["Offset of field: BNCustomCallingConvention::isArgumentTypeRegisterCompatible"][::std::mem::offset_of!(
7404 BNCustomCallingConvention,
7405 isArgumentTypeRegisterCompatible
7406 ) - 184usize];
7407 ["Offset of field: BNCustomCallingConvention::isNonRegisterArgumentIndirect"][::std::mem::offset_of!(
7408 BNCustomCallingConvention,
7409 isNonRegisterArgumentIndirect
7410 ) - 192usize];
7411 ["Offset of field: BNCustomCallingConvention::areStackArgumentsNaturallyAligned"][::std::mem::offset_of!(
7412 BNCustomCallingConvention,
7413 areStackArgumentsNaturallyAligned
7414 ) - 200usize];
7415 ["Offset of field: BNCustomCallingConvention::areStackArgumentsPushedLeftToRight"][::std::mem::offset_of!(
7416 BNCustomCallingConvention,
7417 areStackArgumentsPushedLeftToRight
7418 )
7419 - 208usize];
7420 ["Offset of field: BNCustomCallingConvention::getIncomingVariableForParameterVariable"][::std::mem::offset_of!(
7421 BNCustomCallingConvention,
7422 getIncomingVariableForParameterVariable
7423 )
7424 - 216usize];
7425 ["Offset of field: BNCustomCallingConvention::getParameterVariableForIncomingVariable"][::std::mem::offset_of!(
7426 BNCustomCallingConvention,
7427 getParameterVariableForIncomingVariable
7428 )
7429 - 224usize];
7430 ["Offset of field: BNCustomCallingConvention::areArgumentRegistersUsedForVarArgs"][::std::mem::offset_of!(
7431 BNCustomCallingConvention,
7432 areArgumentRegistersUsedForVarArgs
7433 )
7434 - 232usize];
7435 ["Offset of field: BNCustomCallingConvention::getCallLayout"]
7436 [::std::mem::offset_of!(BNCustomCallingConvention, getCallLayout) - 240usize];
7437 ["Offset of field: BNCustomCallingConvention::freeCallLayout"]
7438 [::std::mem::offset_of!(BNCustomCallingConvention, freeCallLayout) - 248usize];
7439 ["Offset of field: BNCustomCallingConvention::getReturnValueLocation"]
7440 [::std::mem::offset_of!(BNCustomCallingConvention, getReturnValueLocation) - 256usize];
7441 ["Offset of field: BNCustomCallingConvention::freeValueLocation"]
7442 [::std::mem::offset_of!(BNCustomCallingConvention, freeValueLocation) - 264usize];
7443 ["Offset of field: BNCustomCallingConvention::getParameterLocations"]
7444 [::std::mem::offset_of!(BNCustomCallingConvention, getParameterLocations) - 272usize];
7445 ["Offset of field: BNCustomCallingConvention::freeParameterLocations"]
7446 [::std::mem::offset_of!(BNCustomCallingConvention, freeParameterLocations) - 280usize];
7447 ["Offset of field: BNCustomCallingConvention::getParameterOrderingForVariables"][::std::mem::offset_of!(
7448 BNCustomCallingConvention,
7449 getParameterOrderingForVariables
7450 ) - 288usize];
7451 ["Offset of field: BNCustomCallingConvention::freeVariableList"]
7452 [::std::mem::offset_of!(BNCustomCallingConvention, freeVariableList) - 296usize];
7453 ["Offset of field: BNCustomCallingConvention::getStackAdjustmentForLocations"][::std::mem::offset_of!(
7454 BNCustomCallingConvention,
7455 getStackAdjustmentForLocations
7456 ) - 304usize];
7457 ["Offset of field: BNCustomCallingConvention::getRegisterStackAdjustments"]
7458 [::std::mem::offset_of!(BNCustomCallingConvention, getRegisterStackAdjustments) - 312usize];
7459 ["Offset of field: BNCustomCallingConvention::freeRegisterStackAdjustments"][::std::mem::offset_of!(
7460 BNCustomCallingConvention,
7461 freeRegisterStackAdjustments
7462 ) - 320usize];
7463};
7464impl Default for BNCustomCallingConvention {
7465 fn default() -> Self {
7466 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7467 unsafe {
7468 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7469 s.assume_init()
7470 }
7471 }
7472}
7473#[repr(C)]
7474#[derive(Debug, Copy, Clone)]
7475pub struct BNVariableNameAndType {
7476 pub var: BNVariable,
7477 pub type_: *mut BNType,
7478 pub name: *mut ::std::os::raw::c_char,
7479 pub autoDefined: bool,
7480 pub typeConfidence: u8,
7481}
7482#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7483const _: () = {
7484 ["Size of BNVariableNameAndType"][::std::mem::size_of::<BNVariableNameAndType>() - 40usize];
7485 ["Alignment of BNVariableNameAndType"]
7486 [::std::mem::align_of::<BNVariableNameAndType>() - 8usize];
7487 ["Offset of field: BNVariableNameAndType::var"]
7488 [::std::mem::offset_of!(BNVariableNameAndType, var) - 0usize];
7489 ["Offset of field: BNVariableNameAndType::type_"]
7490 [::std::mem::offset_of!(BNVariableNameAndType, type_) - 16usize];
7491 ["Offset of field: BNVariableNameAndType::name"]
7492 [::std::mem::offset_of!(BNVariableNameAndType, name) - 24usize];
7493 ["Offset of field: BNVariableNameAndType::autoDefined"]
7494 [::std::mem::offset_of!(BNVariableNameAndType, autoDefined) - 32usize];
7495 ["Offset of field: BNVariableNameAndType::typeConfidence"]
7496 [::std::mem::offset_of!(BNVariableNameAndType, typeConfidence) - 33usize];
7497};
7498impl Default for BNVariableNameAndType {
7499 fn default() -> Self {
7500 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7501 unsafe {
7502 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7503 s.assume_init()
7504 }
7505 }
7506}
7507#[repr(C)]
7508#[derive(Debug, Copy, Clone)]
7509pub struct BNStackVariableReference {
7510 pub sourceOperand: u32,
7511 pub typeConfidence: u8,
7512 pub type_: *mut BNType,
7513 pub name: *mut ::std::os::raw::c_char,
7514 pub varIdentifier: u64,
7515 pub referencedOffset: i64,
7516 pub size: usize,
7517}
7518#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7519const _: () = {
7520 ["Size of BNStackVariableReference"]
7521 [::std::mem::size_of::<BNStackVariableReference>() - 48usize];
7522 ["Alignment of BNStackVariableReference"]
7523 [::std::mem::align_of::<BNStackVariableReference>() - 8usize];
7524 ["Offset of field: BNStackVariableReference::sourceOperand"]
7525 [::std::mem::offset_of!(BNStackVariableReference, sourceOperand) - 0usize];
7526 ["Offset of field: BNStackVariableReference::typeConfidence"]
7527 [::std::mem::offset_of!(BNStackVariableReference, typeConfidence) - 4usize];
7528 ["Offset of field: BNStackVariableReference::type_"]
7529 [::std::mem::offset_of!(BNStackVariableReference, type_) - 8usize];
7530 ["Offset of field: BNStackVariableReference::name"]
7531 [::std::mem::offset_of!(BNStackVariableReference, name) - 16usize];
7532 ["Offset of field: BNStackVariableReference::varIdentifier"]
7533 [::std::mem::offset_of!(BNStackVariableReference, varIdentifier) - 24usize];
7534 ["Offset of field: BNStackVariableReference::referencedOffset"]
7535 [::std::mem::offset_of!(BNStackVariableReference, referencedOffset) - 32usize];
7536 ["Offset of field: BNStackVariableReference::size"]
7537 [::std::mem::offset_of!(BNStackVariableReference, size) - 40usize];
7538};
7539impl Default for BNStackVariableReference {
7540 fn default() -> Self {
7541 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7542 unsafe {
7543 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7544 s.assume_init()
7545 }
7546 }
7547}
7548#[repr(C)]
7549#[derive(Debug, Copy, Clone)]
7550pub struct BNIndirectBranchInfo {
7551 pub sourceArch: *mut BNArchitecture,
7552 pub sourceAddr: u64,
7553 pub destArch: *mut BNArchitecture,
7554 pub destAddr: u64,
7555 pub autoDefined: bool,
7556}
7557#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7558const _: () = {
7559 ["Size of BNIndirectBranchInfo"][::std::mem::size_of::<BNIndirectBranchInfo>() - 40usize];
7560 ["Alignment of BNIndirectBranchInfo"][::std::mem::align_of::<BNIndirectBranchInfo>() - 8usize];
7561 ["Offset of field: BNIndirectBranchInfo::sourceArch"]
7562 [::std::mem::offset_of!(BNIndirectBranchInfo, sourceArch) - 0usize];
7563 ["Offset of field: BNIndirectBranchInfo::sourceAddr"]
7564 [::std::mem::offset_of!(BNIndirectBranchInfo, sourceAddr) - 8usize];
7565 ["Offset of field: BNIndirectBranchInfo::destArch"]
7566 [::std::mem::offset_of!(BNIndirectBranchInfo, destArch) - 16usize];
7567 ["Offset of field: BNIndirectBranchInfo::destAddr"]
7568 [::std::mem::offset_of!(BNIndirectBranchInfo, destAddr) - 24usize];
7569 ["Offset of field: BNIndirectBranchInfo::autoDefined"]
7570 [::std::mem::offset_of!(BNIndirectBranchInfo, autoDefined) - 32usize];
7571};
7572impl Default for BNIndirectBranchInfo {
7573 fn default() -> Self {
7574 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7575 unsafe {
7576 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7577 s.assume_init()
7578 }
7579 }
7580}
7581#[repr(C)]
7582#[derive(Debug, Copy, Clone)]
7583pub struct BNArchitectureAndAddress {
7584 pub arch: *mut BNArchitecture,
7585 pub address: u64,
7586}
7587#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7588const _: () = {
7589 ["Size of BNArchitectureAndAddress"]
7590 [::std::mem::size_of::<BNArchitectureAndAddress>() - 16usize];
7591 ["Alignment of BNArchitectureAndAddress"]
7592 [::std::mem::align_of::<BNArchitectureAndAddress>() - 8usize];
7593 ["Offset of field: BNArchitectureAndAddress::arch"]
7594 [::std::mem::offset_of!(BNArchitectureAndAddress, arch) - 0usize];
7595 ["Offset of field: BNArchitectureAndAddress::address"]
7596 [::std::mem::offset_of!(BNArchitectureAndAddress, address) - 8usize];
7597};
7598impl Default for BNArchitectureAndAddress {
7599 fn default() -> Self {
7600 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7601 unsafe {
7602 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7603 s.assume_init()
7604 }
7605 }
7606}
7607#[repr(C)]
7608#[derive(Debug, Copy, Clone)]
7609pub struct BNUserVariableValue {
7610 pub var: BNVariable,
7611 pub defSite: BNArchitectureAndAddress,
7612 pub after: bool,
7613 pub value: BNPossibleValueSet,
7614}
7615#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7616const _: () = {
7617 ["Size of BNUserVariableValue"][::std::mem::size_of::<BNUserVariableValue>() - 104usize];
7618 ["Alignment of BNUserVariableValue"][::std::mem::align_of::<BNUserVariableValue>() - 8usize];
7619 ["Offset of field: BNUserVariableValue::var"]
7620 [::std::mem::offset_of!(BNUserVariableValue, var) - 0usize];
7621 ["Offset of field: BNUserVariableValue::defSite"]
7622 [::std::mem::offset_of!(BNUserVariableValue, defSite) - 16usize];
7623 ["Offset of field: BNUserVariableValue::after"]
7624 [::std::mem::offset_of!(BNUserVariableValue, after) - 32usize];
7625 ["Offset of field: BNUserVariableValue::value"]
7626 [::std::mem::offset_of!(BNUserVariableValue, value) - 40usize];
7627};
7628impl Default for BNUserVariableValue {
7629 fn default() -> Self {
7630 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7631 unsafe {
7632 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7633 s.assume_init()
7634 }
7635 }
7636}
7637#[repr(C)]
7638#[derive(Debug, Copy, Clone)]
7639pub struct BNVariableFieldResolutionInfo {
7640 pub location: BNArchitectureAndAddress,
7641 pub var: BNVariable,
7642 pub info: *mut BNFieldResolutionInfo,
7643}
7644#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7645const _: () = {
7646 ["Size of BNVariableFieldResolutionInfo"]
7647 [::std::mem::size_of::<BNVariableFieldResolutionInfo>() - 40usize];
7648 ["Alignment of BNVariableFieldResolutionInfo"]
7649 [::std::mem::align_of::<BNVariableFieldResolutionInfo>() - 8usize];
7650 ["Offset of field: BNVariableFieldResolutionInfo::location"]
7651 [::std::mem::offset_of!(BNVariableFieldResolutionInfo, location) - 0usize];
7652 ["Offset of field: BNVariableFieldResolutionInfo::var"]
7653 [::std::mem::offset_of!(BNVariableFieldResolutionInfo, var) - 16usize];
7654 ["Offset of field: BNVariableFieldResolutionInfo::info"]
7655 [::std::mem::offset_of!(BNVariableFieldResolutionInfo, info) - 32usize];
7656};
7657impl Default for BNVariableFieldResolutionInfo {
7658 fn default() -> Self {
7659 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7660 unsafe {
7661 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7662 s.assume_init()
7663 }
7664 }
7665}
7666#[repr(u8)]
7667#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7668pub enum BNFunctionUpdateType {
7669 UserFunctionUpdate = 0,
7670 FullAutoFunctionUpdate = 1,
7671 IncrementalAutoFunctionUpdate = 2,
7672}
7673#[repr(u8)]
7674#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7675pub enum BNAnalysisState {
7676 #[doc = " Entry point before any analysis begins"]
7677 InitialState = 0,
7678 #[doc = " Module-level analysis is deferred; On-demand function analysis is permitted"]
7679 HoldState = 1,
7680 #[doc = " No active analysis; system is idle and ready"]
7681 IdleState = 2,
7682 #[doc = " Context gathering and auxiliary data preparation"]
7683 DiscoveryState = 3,
7684 #[doc = " Instruction decoding and control flow discovery"]
7685 DisassembleState = 4,
7686 #[doc = " Core semantic and structural analysis"]
7687 AnalyzeState = 5,
7688 #[doc = " Supplemental analysis: sweeping, type resolution, and pattern matching"]
7689 ExtendedAnalyzeState = 6,
7690}
7691#[repr(C)]
7692#[derive(Debug, Copy, Clone)]
7693pub struct BNActiveAnalysisInfo {
7694 pub func: *mut BNFunction,
7695 pub analysisTime: u64,
7696 pub updateCount: usize,
7697 pub submitCount: usize,
7698}
7699#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7700const _: () = {
7701 ["Size of BNActiveAnalysisInfo"][::std::mem::size_of::<BNActiveAnalysisInfo>() - 32usize];
7702 ["Alignment of BNActiveAnalysisInfo"][::std::mem::align_of::<BNActiveAnalysisInfo>() - 8usize];
7703 ["Offset of field: BNActiveAnalysisInfo::func"]
7704 [::std::mem::offset_of!(BNActiveAnalysisInfo, func) - 0usize];
7705 ["Offset of field: BNActiveAnalysisInfo::analysisTime"]
7706 [::std::mem::offset_of!(BNActiveAnalysisInfo, analysisTime) - 8usize];
7707 ["Offset of field: BNActiveAnalysisInfo::updateCount"]
7708 [::std::mem::offset_of!(BNActiveAnalysisInfo, updateCount) - 16usize];
7709 ["Offset of field: BNActiveAnalysisInfo::submitCount"]
7710 [::std::mem::offset_of!(BNActiveAnalysisInfo, submitCount) - 24usize];
7711};
7712impl Default for BNActiveAnalysisInfo {
7713 fn default() -> Self {
7714 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7715 unsafe {
7716 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7717 s.assume_init()
7718 }
7719 }
7720}
7721#[repr(C)]
7722#[derive(Debug, Copy, Clone)]
7723pub struct BNAnalysisInfo {
7724 pub state: BNAnalysisState,
7725 pub analysisTime: u64,
7726 pub activeInfo: *mut BNActiveAnalysisInfo,
7727 pub count: usize,
7728}
7729#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7730const _: () = {
7731 ["Size of BNAnalysisInfo"][::std::mem::size_of::<BNAnalysisInfo>() - 32usize];
7732 ["Alignment of BNAnalysisInfo"][::std::mem::align_of::<BNAnalysisInfo>() - 8usize];
7733 ["Offset of field: BNAnalysisInfo::state"]
7734 [::std::mem::offset_of!(BNAnalysisInfo, state) - 0usize];
7735 ["Offset of field: BNAnalysisInfo::analysisTime"]
7736 [::std::mem::offset_of!(BNAnalysisInfo, analysisTime) - 8usize];
7737 ["Offset of field: BNAnalysisInfo::activeInfo"]
7738 [::std::mem::offset_of!(BNAnalysisInfo, activeInfo) - 16usize];
7739 ["Offset of field: BNAnalysisInfo::count"]
7740 [::std::mem::offset_of!(BNAnalysisInfo, count) - 24usize];
7741};
7742impl Default for BNAnalysisInfo {
7743 fn default() -> Self {
7744 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7745 unsafe {
7746 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7747 s.assume_init()
7748 }
7749 }
7750}
7751#[repr(C)]
7752#[derive(Debug, Copy, Clone)]
7753pub struct BNAnalysisProgress {
7754 pub state: BNAnalysisState,
7755 pub count: usize,
7756 pub total: usize,
7757}
7758#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7759const _: () = {
7760 ["Size of BNAnalysisProgress"][::std::mem::size_of::<BNAnalysisProgress>() - 24usize];
7761 ["Alignment of BNAnalysisProgress"][::std::mem::align_of::<BNAnalysisProgress>() - 8usize];
7762 ["Offset of field: BNAnalysisProgress::state"]
7763 [::std::mem::offset_of!(BNAnalysisProgress, state) - 0usize];
7764 ["Offset of field: BNAnalysisProgress::count"]
7765 [::std::mem::offset_of!(BNAnalysisProgress, count) - 8usize];
7766 ["Offset of field: BNAnalysisProgress::total"]
7767 [::std::mem::offset_of!(BNAnalysisProgress, total) - 16usize];
7768};
7769impl Default for BNAnalysisProgress {
7770 fn default() -> Self {
7771 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7772 unsafe {
7773 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7774 s.assume_init()
7775 }
7776 }
7777}
7778#[repr(u8)]
7779#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7780pub enum BNAnalysisMode {
7781 FullAnalysisMode = 0,
7782 IntermediateAnalysisMode = 1,
7783 BasicAnalysisMode = 2,
7784 ControlFlowAnalysisMode = 3,
7785}
7786#[repr(C)]
7787#[derive(Debug, Copy, Clone)]
7788pub struct BNAnalysisParameters {
7789 pub maxAnalysisTime: u64,
7790 pub maxFunctionSize: u64,
7791 pub maxFunctionAnalysisTime: u64,
7792 pub maxFunctionUpdateCount: usize,
7793 pub maxFunctionSubmitCount: usize,
7794 pub suppressNewAutoFunctionAnalysis: bool,
7795 pub mode: BNAnalysisMode,
7796 pub alwaysAnalyzeIndirectBranches: bool,
7797 pub advancedAnalysisCacheSize: usize,
7798}
7799#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7800const _: () = {
7801 ["Size of BNAnalysisParameters"][::std::mem::size_of::<BNAnalysisParameters>() - 56usize];
7802 ["Alignment of BNAnalysisParameters"][::std::mem::align_of::<BNAnalysisParameters>() - 8usize];
7803 ["Offset of field: BNAnalysisParameters::maxAnalysisTime"]
7804 [::std::mem::offset_of!(BNAnalysisParameters, maxAnalysisTime) - 0usize];
7805 ["Offset of field: BNAnalysisParameters::maxFunctionSize"]
7806 [::std::mem::offset_of!(BNAnalysisParameters, maxFunctionSize) - 8usize];
7807 ["Offset of field: BNAnalysisParameters::maxFunctionAnalysisTime"]
7808 [::std::mem::offset_of!(BNAnalysisParameters, maxFunctionAnalysisTime) - 16usize];
7809 ["Offset of field: BNAnalysisParameters::maxFunctionUpdateCount"]
7810 [::std::mem::offset_of!(BNAnalysisParameters, maxFunctionUpdateCount) - 24usize];
7811 ["Offset of field: BNAnalysisParameters::maxFunctionSubmitCount"]
7812 [::std::mem::offset_of!(BNAnalysisParameters, maxFunctionSubmitCount) - 32usize];
7813 ["Offset of field: BNAnalysisParameters::suppressNewAutoFunctionAnalysis"]
7814 [::std::mem::offset_of!(BNAnalysisParameters, suppressNewAutoFunctionAnalysis) - 40usize];
7815 ["Offset of field: BNAnalysisParameters::mode"]
7816 [::std::mem::offset_of!(BNAnalysisParameters, mode) - 41usize];
7817 ["Offset of field: BNAnalysisParameters::alwaysAnalyzeIndirectBranches"]
7818 [::std::mem::offset_of!(BNAnalysisParameters, alwaysAnalyzeIndirectBranches) - 42usize];
7819 ["Offset of field: BNAnalysisParameters::advancedAnalysisCacheSize"]
7820 [::std::mem::offset_of!(BNAnalysisParameters, advancedAnalysisCacheSize) - 48usize];
7821};
7822impl Default for BNAnalysisParameters {
7823 fn default() -> Self {
7824 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7825 unsafe {
7826 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7827 s.assume_init()
7828 }
7829 }
7830}
7831#[repr(C)]
7832#[derive(Debug, Copy, Clone)]
7833pub struct BNDownloadInstanceResponse {
7834 pub statusCode: u16,
7835 pub headerCount: u64,
7836 pub headerKeys: *mut *mut ::std::os::raw::c_char,
7837 pub headerValues: *mut *mut ::std::os::raw::c_char,
7838}
7839#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7840const _: () = {
7841 ["Size of BNDownloadInstanceResponse"]
7842 [::std::mem::size_of::<BNDownloadInstanceResponse>() - 32usize];
7843 ["Alignment of BNDownloadInstanceResponse"]
7844 [::std::mem::align_of::<BNDownloadInstanceResponse>() - 8usize];
7845 ["Offset of field: BNDownloadInstanceResponse::statusCode"]
7846 [::std::mem::offset_of!(BNDownloadInstanceResponse, statusCode) - 0usize];
7847 ["Offset of field: BNDownloadInstanceResponse::headerCount"]
7848 [::std::mem::offset_of!(BNDownloadInstanceResponse, headerCount) - 8usize];
7849 ["Offset of field: BNDownloadInstanceResponse::headerKeys"]
7850 [::std::mem::offset_of!(BNDownloadInstanceResponse, headerKeys) - 16usize];
7851 ["Offset of field: BNDownloadInstanceResponse::headerValues"]
7852 [::std::mem::offset_of!(BNDownloadInstanceResponse, headerValues) - 24usize];
7853};
7854impl Default for BNDownloadInstanceResponse {
7855 fn default() -> Self {
7856 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7857 unsafe {
7858 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7859 s.assume_init()
7860 }
7861 }
7862}
7863#[repr(C)]
7864#[derive(Debug, Copy, Clone)]
7865pub struct BNDownloadInstanceInputOutputCallbacks {
7866 pub readCallback: ::std::option::Option<
7867 unsafe extern "C" fn(data: *mut u8, len: u64, ctxt: *mut ::std::os::raw::c_void) -> i64,
7868 >,
7869 pub readContext: *mut ::std::os::raw::c_void,
7870 pub writeCallback: ::std::option::Option<
7871 unsafe extern "C" fn(data: *mut u8, len: u64, ctxt: *mut ::std::os::raw::c_void) -> u64,
7872 >,
7873 pub writeContext: *mut ::std::os::raw::c_void,
7874 pub progressCallback: BNProgressFunction,
7875 pub progressContext: *mut ::std::os::raw::c_void,
7876}
7877#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7878const _: () = {
7879 ["Size of BNDownloadInstanceInputOutputCallbacks"]
7880 [::std::mem::size_of::<BNDownloadInstanceInputOutputCallbacks>() - 48usize];
7881 ["Alignment of BNDownloadInstanceInputOutputCallbacks"]
7882 [::std::mem::align_of::<BNDownloadInstanceInputOutputCallbacks>() - 8usize];
7883 ["Offset of field: BNDownloadInstanceInputOutputCallbacks::readCallback"]
7884 [::std::mem::offset_of!(BNDownloadInstanceInputOutputCallbacks, readCallback) - 0usize];
7885 ["Offset of field: BNDownloadInstanceInputOutputCallbacks::readContext"]
7886 [::std::mem::offset_of!(BNDownloadInstanceInputOutputCallbacks, readContext) - 8usize];
7887 ["Offset of field: BNDownloadInstanceInputOutputCallbacks::writeCallback"]
7888 [::std::mem::offset_of!(BNDownloadInstanceInputOutputCallbacks, writeCallback) - 16usize];
7889 ["Offset of field: BNDownloadInstanceInputOutputCallbacks::writeContext"]
7890 [::std::mem::offset_of!(BNDownloadInstanceInputOutputCallbacks, writeContext) - 24usize];
7891 ["Offset of field: BNDownloadInstanceInputOutputCallbacks::progressCallback"][::std::mem::offset_of!(
7892 BNDownloadInstanceInputOutputCallbacks,
7893 progressCallback
7894 ) - 32usize];
7895 ["Offset of field: BNDownloadInstanceInputOutputCallbacks::progressContext"]
7896 [::std::mem::offset_of!(BNDownloadInstanceInputOutputCallbacks, progressContext) - 40usize];
7897};
7898impl Default for BNDownloadInstanceInputOutputCallbacks {
7899 fn default() -> Self {
7900 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7901 unsafe {
7902 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7903 s.assume_init()
7904 }
7905 }
7906}
7907#[repr(C)]
7908#[derive(Debug, Copy, Clone)]
7909pub struct BNDownloadInstanceOutputCallbacks {
7910 pub writeCallback: ::std::option::Option<
7911 unsafe extern "C" fn(data: *mut u8, len: u64, ctxt: *mut ::std::os::raw::c_void) -> u64,
7912 >,
7913 pub writeContext: *mut ::std::os::raw::c_void,
7914 pub progressCallback: BNProgressFunction,
7915 pub progressContext: *mut ::std::os::raw::c_void,
7916}
7917#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7918const _: () = {
7919 ["Size of BNDownloadInstanceOutputCallbacks"]
7920 [::std::mem::size_of::<BNDownloadInstanceOutputCallbacks>() - 32usize];
7921 ["Alignment of BNDownloadInstanceOutputCallbacks"]
7922 [::std::mem::align_of::<BNDownloadInstanceOutputCallbacks>() - 8usize];
7923 ["Offset of field: BNDownloadInstanceOutputCallbacks::writeCallback"]
7924 [::std::mem::offset_of!(BNDownloadInstanceOutputCallbacks, writeCallback) - 0usize];
7925 ["Offset of field: BNDownloadInstanceOutputCallbacks::writeContext"]
7926 [::std::mem::offset_of!(BNDownloadInstanceOutputCallbacks, writeContext) - 8usize];
7927 ["Offset of field: BNDownloadInstanceOutputCallbacks::progressCallback"]
7928 [::std::mem::offset_of!(BNDownloadInstanceOutputCallbacks, progressCallback) - 16usize];
7929 ["Offset of field: BNDownloadInstanceOutputCallbacks::progressContext"]
7930 [::std::mem::offset_of!(BNDownloadInstanceOutputCallbacks, progressContext) - 24usize];
7931};
7932impl Default for BNDownloadInstanceOutputCallbacks {
7933 fn default() -> Self {
7934 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7935 unsafe {
7936 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7937 s.assume_init()
7938 }
7939 }
7940}
7941#[repr(C)]
7942#[derive(Debug, Copy, Clone)]
7943pub struct BNDownloadInstanceCallbacks {
7944 pub context: *mut ::std::os::raw::c_void,
7945 pub destroyInstance:
7946 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
7947 pub performRequest: ::std::option::Option<
7948 unsafe extern "C" fn(
7949 ctxt: *mut ::std::os::raw::c_void,
7950 url: *const ::std::os::raw::c_char,
7951 ) -> ::std::os::raw::c_int,
7952 >,
7953 pub performCustomRequest: ::std::option::Option<
7954 unsafe extern "C" fn(
7955 ctxt: *mut ::std::os::raw::c_void,
7956 method: *const ::std::os::raw::c_char,
7957 url: *const ::std::os::raw::c_char,
7958 headerCount: u64,
7959 headerKeys: *const *const ::std::os::raw::c_char,
7960 headerValues: *const *const ::std::os::raw::c_char,
7961 response: *mut *mut BNDownloadInstanceResponse,
7962 ) -> ::std::os::raw::c_int,
7963 >,
7964 pub freeResponse: ::std::option::Option<
7965 unsafe extern "C" fn(
7966 ctxt: *mut ::std::os::raw::c_void,
7967 response: *mut BNDownloadInstanceResponse,
7968 ),
7969 >,
7970}
7971#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7972const _: () = {
7973 ["Size of BNDownloadInstanceCallbacks"]
7974 [::std::mem::size_of::<BNDownloadInstanceCallbacks>() - 40usize];
7975 ["Alignment of BNDownloadInstanceCallbacks"]
7976 [::std::mem::align_of::<BNDownloadInstanceCallbacks>() - 8usize];
7977 ["Offset of field: BNDownloadInstanceCallbacks::context"]
7978 [::std::mem::offset_of!(BNDownloadInstanceCallbacks, context) - 0usize];
7979 ["Offset of field: BNDownloadInstanceCallbacks::destroyInstance"]
7980 [::std::mem::offset_of!(BNDownloadInstanceCallbacks, destroyInstance) - 8usize];
7981 ["Offset of field: BNDownloadInstanceCallbacks::performRequest"]
7982 [::std::mem::offset_of!(BNDownloadInstanceCallbacks, performRequest) - 16usize];
7983 ["Offset of field: BNDownloadInstanceCallbacks::performCustomRequest"]
7984 [::std::mem::offset_of!(BNDownloadInstanceCallbacks, performCustomRequest) - 24usize];
7985 ["Offset of field: BNDownloadInstanceCallbacks::freeResponse"]
7986 [::std::mem::offset_of!(BNDownloadInstanceCallbacks, freeResponse) - 32usize];
7987};
7988impl Default for BNDownloadInstanceCallbacks {
7989 fn default() -> Self {
7990 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7991 unsafe {
7992 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7993 s.assume_init()
7994 }
7995 }
7996}
7997#[repr(C)]
7998#[derive(Debug, Copy, Clone)]
7999pub struct BNDownloadProviderCallbacks {
8000 pub context: *mut ::std::os::raw::c_void,
8001 pub createInstance: ::std::option::Option<
8002 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNDownloadInstance,
8003 >,
8004}
8005#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8006const _: () = {
8007 ["Size of BNDownloadProviderCallbacks"]
8008 [::std::mem::size_of::<BNDownloadProviderCallbacks>() - 16usize];
8009 ["Alignment of BNDownloadProviderCallbacks"]
8010 [::std::mem::align_of::<BNDownloadProviderCallbacks>() - 8usize];
8011 ["Offset of field: BNDownloadProviderCallbacks::context"]
8012 [::std::mem::offset_of!(BNDownloadProviderCallbacks, context) - 0usize];
8013 ["Offset of field: BNDownloadProviderCallbacks::createInstance"]
8014 [::std::mem::offset_of!(BNDownloadProviderCallbacks, createInstance) - 8usize];
8015};
8016impl Default for BNDownloadProviderCallbacks {
8017 fn default() -> Self {
8018 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8019 unsafe {
8020 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8021 s.assume_init()
8022 }
8023 }
8024}
8025#[repr(C)]
8026#[derive(Debug, Copy, Clone)]
8027pub struct BNWebsocketClientOutputCallbacks {
8028 pub context: *mut ::std::os::raw::c_void,
8029 pub connectedCallback:
8030 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
8031 pub disconnectedCallback:
8032 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8033 pub errorCallback: ::std::option::Option<
8034 unsafe extern "C" fn(msg: *const ::std::os::raw::c_char, ctxt: *mut ::std::os::raw::c_void),
8035 >,
8036 pub readCallback: ::std::option::Option<
8037 unsafe extern "C" fn(data: *mut u8, len: u64, ctxt: *mut ::std::os::raw::c_void) -> bool,
8038 >,
8039}
8040#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8041const _: () = {
8042 ["Size of BNWebsocketClientOutputCallbacks"]
8043 [::std::mem::size_of::<BNWebsocketClientOutputCallbacks>() - 40usize];
8044 ["Alignment of BNWebsocketClientOutputCallbacks"]
8045 [::std::mem::align_of::<BNWebsocketClientOutputCallbacks>() - 8usize];
8046 ["Offset of field: BNWebsocketClientOutputCallbacks::context"]
8047 [::std::mem::offset_of!(BNWebsocketClientOutputCallbacks, context) - 0usize];
8048 ["Offset of field: BNWebsocketClientOutputCallbacks::connectedCallback"]
8049 [::std::mem::offset_of!(BNWebsocketClientOutputCallbacks, connectedCallback) - 8usize];
8050 ["Offset of field: BNWebsocketClientOutputCallbacks::disconnectedCallback"]
8051 [::std::mem::offset_of!(BNWebsocketClientOutputCallbacks, disconnectedCallback) - 16usize];
8052 ["Offset of field: BNWebsocketClientOutputCallbacks::errorCallback"]
8053 [::std::mem::offset_of!(BNWebsocketClientOutputCallbacks, errorCallback) - 24usize];
8054 ["Offset of field: BNWebsocketClientOutputCallbacks::readCallback"]
8055 [::std::mem::offset_of!(BNWebsocketClientOutputCallbacks, readCallback) - 32usize];
8056};
8057impl Default for BNWebsocketClientOutputCallbacks {
8058 fn default() -> Self {
8059 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8060 unsafe {
8061 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8062 s.assume_init()
8063 }
8064 }
8065}
8066#[repr(C)]
8067#[derive(Debug, Copy, Clone)]
8068pub struct BNWebsocketClientCallbacks {
8069 pub context: *mut ::std::os::raw::c_void,
8070 pub destroyClient:
8071 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8072 pub connect: ::std::option::Option<
8073 unsafe extern "C" fn(
8074 ctxt: *mut ::std::os::raw::c_void,
8075 host: *const ::std::os::raw::c_char,
8076 headerCount: u64,
8077 headerKeys: *const *const ::std::os::raw::c_char,
8078 headerValues: *const *const ::std::os::raw::c_char,
8079 ) -> bool,
8080 >,
8081 pub write: ::std::option::Option<
8082 unsafe extern "C" fn(data: *const u8, len: u64, ctxt: *mut ::std::os::raw::c_void) -> bool,
8083 >,
8084 pub disconnect:
8085 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
8086}
8087#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8088const _: () = {
8089 ["Size of BNWebsocketClientCallbacks"]
8090 [::std::mem::size_of::<BNWebsocketClientCallbacks>() - 40usize];
8091 ["Alignment of BNWebsocketClientCallbacks"]
8092 [::std::mem::align_of::<BNWebsocketClientCallbacks>() - 8usize];
8093 ["Offset of field: BNWebsocketClientCallbacks::context"]
8094 [::std::mem::offset_of!(BNWebsocketClientCallbacks, context) - 0usize];
8095 ["Offset of field: BNWebsocketClientCallbacks::destroyClient"]
8096 [::std::mem::offset_of!(BNWebsocketClientCallbacks, destroyClient) - 8usize];
8097 ["Offset of field: BNWebsocketClientCallbacks::connect"]
8098 [::std::mem::offset_of!(BNWebsocketClientCallbacks, connect) - 16usize];
8099 ["Offset of field: BNWebsocketClientCallbacks::write"]
8100 [::std::mem::offset_of!(BNWebsocketClientCallbacks, write) - 24usize];
8101 ["Offset of field: BNWebsocketClientCallbacks::disconnect"]
8102 [::std::mem::offset_of!(BNWebsocketClientCallbacks, disconnect) - 32usize];
8103};
8104impl Default for BNWebsocketClientCallbacks {
8105 fn default() -> Self {
8106 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8107 unsafe {
8108 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8109 s.assume_init()
8110 }
8111 }
8112}
8113#[repr(C)]
8114#[derive(Debug, Copy, Clone)]
8115pub struct BNWebsocketProviderCallbacks {
8116 pub context: *mut ::std::os::raw::c_void,
8117 pub createClient: ::std::option::Option<
8118 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNWebsocketClient,
8119 >,
8120}
8121#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8122const _: () = {
8123 ["Size of BNWebsocketProviderCallbacks"]
8124 [::std::mem::size_of::<BNWebsocketProviderCallbacks>() - 16usize];
8125 ["Alignment of BNWebsocketProviderCallbacks"]
8126 [::std::mem::align_of::<BNWebsocketProviderCallbacks>() - 8usize];
8127 ["Offset of field: BNWebsocketProviderCallbacks::context"]
8128 [::std::mem::offset_of!(BNWebsocketProviderCallbacks, context) - 0usize];
8129 ["Offset of field: BNWebsocketProviderCallbacks::createClient"]
8130 [::std::mem::offset_of!(BNWebsocketProviderCallbacks, createClient) - 8usize];
8131};
8132impl Default for BNWebsocketProviderCallbacks {
8133 fn default() -> Self {
8134 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8135 unsafe {
8136 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8137 s.assume_init()
8138 }
8139 }
8140}
8141#[repr(u8)]
8142#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8143pub enum BNFindFlag {
8144 FindCaseSensitive = 0,
8145 FindCaseInsensitive = 1,
8146 FindIgnoreWhitespace = 2,
8147}
8148#[repr(u8)]
8149#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8150pub enum BNScriptingProviderInputReadyState {
8151 NotReadyForInput = 0,
8152 ReadyForScriptExecution = 1,
8153 ReadyForScriptProgramInput = 2,
8154}
8155#[repr(u8)]
8156#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8157pub enum BNScriptingProviderExecuteResult {
8158 InvalidScriptInput = 0,
8159 IncompleteScriptInput = 1,
8160 SuccessfulScriptExecution = 2,
8161 ScriptExecutionCancelled = 3,
8162}
8163#[repr(C)]
8164#[derive(Debug, Copy, Clone)]
8165pub struct BNScriptingInstanceCallbacks {
8166 pub context: *mut ::std::os::raw::c_void,
8167 pub destroyInstance:
8168 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8169 pub externalRefTaken:
8170 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8171 pub externalRefReleased:
8172 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8173 pub executeScriptInput: ::std::option::Option<
8174 unsafe extern "C" fn(
8175 ctxt: *mut ::std::os::raw::c_void,
8176 input: *const ::std::os::raw::c_char,
8177 ) -> BNScriptingProviderExecuteResult,
8178 >,
8179 pub executeScriptInputFromFilename: ::std::option::Option<
8180 unsafe extern "C" fn(
8181 ctxt: *mut ::std::os::raw::c_void,
8182 input: *const ::std::os::raw::c_char,
8183 ) -> BNScriptingProviderExecuteResult,
8184 >,
8185 pub cancelScriptInput:
8186 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8187 pub releaseBinaryView: ::std::option::Option<
8188 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
8189 >,
8190 pub setCurrentBinaryView: ::std::option::Option<
8191 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
8192 >,
8193 pub setCurrentFunction: ::std::option::Option<
8194 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, func: *mut BNFunction),
8195 >,
8196 pub setCurrentBasicBlock: ::std::option::Option<
8197 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, block: *mut BNBasicBlock),
8198 >,
8199 pub setCurrentAddress:
8200 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, addr: u64)>,
8201 pub setCurrentSelection: ::std::option::Option<
8202 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, begin: u64, end: u64),
8203 >,
8204 pub completeInput: ::std::option::Option<
8205 unsafe extern "C" fn(
8206 ctxt: *mut ::std::os::raw::c_void,
8207 text: *const ::std::os::raw::c_char,
8208 state: u64,
8209 ) -> *mut ::std::os::raw::c_char,
8210 >,
8211 pub stop: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8212 pub canCompleteArguments: ::std::option::Option<
8213 unsafe extern "C" fn(
8214 ctx: *mut ::std::os::raw::c_void,
8215 text: *const ::std::os::raw::c_char,
8216 ) -> bool,
8217 >,
8218 pub completeArguments: ::std::option::Option<
8219 unsafe extern "C" fn(
8220 ctxt: *mut ::std::os::raw::c_void,
8221 text: *const ::std::os::raw::c_char,
8222 argumentStart: *mut u64,
8223 ) -> *mut ::std::os::raw::c_char,
8224 >,
8225}
8226#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8227const _: () = {
8228 ["Size of BNScriptingInstanceCallbacks"]
8229 [::std::mem::size_of::<BNScriptingInstanceCallbacks>() - 136usize];
8230 ["Alignment of BNScriptingInstanceCallbacks"]
8231 [::std::mem::align_of::<BNScriptingInstanceCallbacks>() - 8usize];
8232 ["Offset of field: BNScriptingInstanceCallbacks::context"]
8233 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, context) - 0usize];
8234 ["Offset of field: BNScriptingInstanceCallbacks::destroyInstance"]
8235 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, destroyInstance) - 8usize];
8236 ["Offset of field: BNScriptingInstanceCallbacks::externalRefTaken"]
8237 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, externalRefTaken) - 16usize];
8238 ["Offset of field: BNScriptingInstanceCallbacks::externalRefReleased"]
8239 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, externalRefReleased) - 24usize];
8240 ["Offset of field: BNScriptingInstanceCallbacks::executeScriptInput"]
8241 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, executeScriptInput) - 32usize];
8242 ["Offset of field: BNScriptingInstanceCallbacks::executeScriptInputFromFilename"][::std::mem::offset_of!(
8243 BNScriptingInstanceCallbacks,
8244 executeScriptInputFromFilename
8245 ) - 40usize];
8246 ["Offset of field: BNScriptingInstanceCallbacks::cancelScriptInput"]
8247 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, cancelScriptInput) - 48usize];
8248 ["Offset of field: BNScriptingInstanceCallbacks::releaseBinaryView"]
8249 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, releaseBinaryView) - 56usize];
8250 ["Offset of field: BNScriptingInstanceCallbacks::setCurrentBinaryView"]
8251 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, setCurrentBinaryView) - 64usize];
8252 ["Offset of field: BNScriptingInstanceCallbacks::setCurrentFunction"]
8253 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, setCurrentFunction) - 72usize];
8254 ["Offset of field: BNScriptingInstanceCallbacks::setCurrentBasicBlock"]
8255 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, setCurrentBasicBlock) - 80usize];
8256 ["Offset of field: BNScriptingInstanceCallbacks::setCurrentAddress"]
8257 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, setCurrentAddress) - 88usize];
8258 ["Offset of field: BNScriptingInstanceCallbacks::setCurrentSelection"]
8259 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, setCurrentSelection) - 96usize];
8260 ["Offset of field: BNScriptingInstanceCallbacks::completeInput"]
8261 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, completeInput) - 104usize];
8262 ["Offset of field: BNScriptingInstanceCallbacks::stop"]
8263 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, stop) - 112usize];
8264 ["Offset of field: BNScriptingInstanceCallbacks::canCompleteArguments"]
8265 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, canCompleteArguments) - 120usize];
8266 ["Offset of field: BNScriptingInstanceCallbacks::completeArguments"]
8267 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, completeArguments) - 128usize];
8268};
8269impl Default for BNScriptingInstanceCallbacks {
8270 fn default() -> Self {
8271 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8272 unsafe {
8273 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8274 s.assume_init()
8275 }
8276 }
8277}
8278#[repr(C)]
8279#[derive(Debug, Copy, Clone)]
8280pub struct BNScriptingProviderCallbacks {
8281 pub context: *mut ::std::os::raw::c_void,
8282 pub createInstance: ::std::option::Option<
8283 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNScriptingInstance,
8284 >,
8285 pub loadModule: ::std::option::Option<
8286 unsafe extern "C" fn(
8287 ctxt: *mut ::std::os::raw::c_void,
8288 repoPath: *const ::std::os::raw::c_char,
8289 pluginPath: *const ::std::os::raw::c_char,
8290 force: bool,
8291 ) -> bool,
8292 >,
8293 pub installModules: ::std::option::Option<
8294 unsafe extern "C" fn(
8295 ctxt: *mut ::std::os::raw::c_void,
8296 modules: *const ::std::os::raw::c_char,
8297 ) -> bool,
8298 >,
8299}
8300#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8301const _: () = {
8302 ["Size of BNScriptingProviderCallbacks"]
8303 [::std::mem::size_of::<BNScriptingProviderCallbacks>() - 32usize];
8304 ["Alignment of BNScriptingProviderCallbacks"]
8305 [::std::mem::align_of::<BNScriptingProviderCallbacks>() - 8usize];
8306 ["Offset of field: BNScriptingProviderCallbacks::context"]
8307 [::std::mem::offset_of!(BNScriptingProviderCallbacks, context) - 0usize];
8308 ["Offset of field: BNScriptingProviderCallbacks::createInstance"]
8309 [::std::mem::offset_of!(BNScriptingProviderCallbacks, createInstance) - 8usize];
8310 ["Offset of field: BNScriptingProviderCallbacks::loadModule"]
8311 [::std::mem::offset_of!(BNScriptingProviderCallbacks, loadModule) - 16usize];
8312 ["Offset of field: BNScriptingProviderCallbacks::installModules"]
8313 [::std::mem::offset_of!(BNScriptingProviderCallbacks, installModules) - 24usize];
8314};
8315impl Default for BNScriptingProviderCallbacks {
8316 fn default() -> Self {
8317 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8318 unsafe {
8319 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8320 s.assume_init()
8321 }
8322 }
8323}
8324#[repr(C)]
8325#[derive(Debug, Copy, Clone)]
8326pub struct BNScriptingOutputListener {
8327 pub context: *mut ::std::os::raw::c_void,
8328 pub output: ::std::option::Option<
8329 unsafe extern "C" fn(
8330 ctxt: *mut ::std::os::raw::c_void,
8331 text: *const ::std::os::raw::c_char,
8332 ),
8333 >,
8334 pub warning: ::std::option::Option<
8335 unsafe extern "C" fn(
8336 ctxt: *mut ::std::os::raw::c_void,
8337 text: *const ::std::os::raw::c_char,
8338 ),
8339 >,
8340 pub error: ::std::option::Option<
8341 unsafe extern "C" fn(
8342 ctxt: *mut ::std::os::raw::c_void,
8343 text: *const ::std::os::raw::c_char,
8344 ),
8345 >,
8346 pub inputReadyStateChanged: ::std::option::Option<
8347 unsafe extern "C" fn(
8348 ctxt: *mut ::std::os::raw::c_void,
8349 state: BNScriptingProviderInputReadyState,
8350 ),
8351 >,
8352}
8353#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8354const _: () = {
8355 ["Size of BNScriptingOutputListener"]
8356 [::std::mem::size_of::<BNScriptingOutputListener>() - 40usize];
8357 ["Alignment of BNScriptingOutputListener"]
8358 [::std::mem::align_of::<BNScriptingOutputListener>() - 8usize];
8359 ["Offset of field: BNScriptingOutputListener::context"]
8360 [::std::mem::offset_of!(BNScriptingOutputListener, context) - 0usize];
8361 ["Offset of field: BNScriptingOutputListener::output"]
8362 [::std::mem::offset_of!(BNScriptingOutputListener, output) - 8usize];
8363 ["Offset of field: BNScriptingOutputListener::warning"]
8364 [::std::mem::offset_of!(BNScriptingOutputListener, warning) - 16usize];
8365 ["Offset of field: BNScriptingOutputListener::error"]
8366 [::std::mem::offset_of!(BNScriptingOutputListener, error) - 24usize];
8367 ["Offset of field: BNScriptingOutputListener::inputReadyStateChanged"]
8368 [::std::mem::offset_of!(BNScriptingOutputListener, inputReadyStateChanged) - 32usize];
8369};
8370impl Default for BNScriptingOutputListener {
8371 fn default() -> Self {
8372 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8373 unsafe {
8374 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8375 s.assume_init()
8376 }
8377 }
8378}
8379#[repr(C)]
8380#[derive(Debug, Copy, Clone)]
8381pub struct BNMainThreadCallbacks {
8382 pub context: *mut ::std::os::raw::c_void,
8383 pub addAction: ::std::option::Option<
8384 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, action: *mut BNMainThreadAction),
8385 >,
8386}
8387#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8388const _: () = {
8389 ["Size of BNMainThreadCallbacks"][::std::mem::size_of::<BNMainThreadCallbacks>() - 16usize];
8390 ["Alignment of BNMainThreadCallbacks"]
8391 [::std::mem::align_of::<BNMainThreadCallbacks>() - 8usize];
8392 ["Offset of field: BNMainThreadCallbacks::context"]
8393 [::std::mem::offset_of!(BNMainThreadCallbacks, context) - 0usize];
8394 ["Offset of field: BNMainThreadCallbacks::addAction"]
8395 [::std::mem::offset_of!(BNMainThreadCallbacks, addAction) - 8usize];
8396};
8397impl Default for BNMainThreadCallbacks {
8398 fn default() -> Self {
8399 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8400 unsafe {
8401 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8402 s.assume_init()
8403 }
8404 }
8405}
8406#[repr(C)]
8407#[derive(Copy, Clone)]
8408pub struct BNTypeParserCallbacks {
8409 pub context: *mut ::std::os::raw::c_void,
8410 pub getOptionText: ::std::option::Option<
8411 unsafe extern "C" fn(
8412 ctxt: *mut ::std::os::raw::c_void,
8413 option: BNTypeParserOption,
8414 value: *const ::std::os::raw::c_char,
8415 result: *mut *mut ::std::os::raw::c_char,
8416 ) -> bool,
8417 >,
8418 pub preprocessSource: ::std::option::Option<
8419 unsafe extern "C" fn(
8420 ctxt: *mut ::std::os::raw::c_void,
8421 source: *const ::std::os::raw::c_char,
8422 fileName: *const ::std::os::raw::c_char,
8423 platform: *mut BNPlatform,
8424 existingTypes: *mut BNTypeContainer,
8425 options: *const *const ::std::os::raw::c_char,
8426 optionCount: usize,
8427 includeDirs: *const *const ::std::os::raw::c_char,
8428 includeDirCount: usize,
8429 output: *mut *mut ::std::os::raw::c_char,
8430 errors: *mut *mut BNTypeParserError,
8431 errorCount: *mut usize,
8432 ) -> bool,
8433 >,
8434 pub parseTypesFromSource: ::std::option::Option<
8435 unsafe extern "C" fn(
8436 ctxt: *mut ::std::os::raw::c_void,
8437 source: *const ::std::os::raw::c_char,
8438 fileName: *const ::std::os::raw::c_char,
8439 platform: *mut BNPlatform,
8440 existingTypes: *mut BNTypeContainer,
8441 options: *const *const ::std::os::raw::c_char,
8442 optionCount: usize,
8443 includeDirs: *const *const ::std::os::raw::c_char,
8444 includeDirCount: usize,
8445 autoTypeSource: *const ::std::os::raw::c_char,
8446 result: *mut BNTypeParserResult,
8447 errors: *mut *mut BNTypeParserError,
8448 errorCount: *mut usize,
8449 ) -> bool,
8450 >,
8451 pub parseTypeString: ::std::option::Option<
8452 unsafe extern "C" fn(
8453 ctxt: *mut ::std::os::raw::c_void,
8454 source: *const ::std::os::raw::c_char,
8455 platform: *mut BNPlatform,
8456 existingTypes: *mut BNTypeContainer,
8457 result: *mut BNQualifiedNameAndType,
8458 errors: *mut *mut BNTypeParserError,
8459 errorCount: *mut usize,
8460 ) -> bool,
8461 >,
8462 pub freeString: ::std::option::Option<
8463 unsafe extern "C" fn(
8464 ctxt: *mut ::std::os::raw::c_void,
8465 string: *mut ::std::os::raw::c_char,
8466 ),
8467 >,
8468 pub freeResult: ::std::option::Option<
8469 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, result: *mut BNTypeParserResult),
8470 >,
8471 pub freeErrorList: ::std::option::Option<
8472 unsafe extern "C" fn(
8473 ctxt: *mut ::std::os::raw::c_void,
8474 errors: *mut BNTypeParserError,
8475 errorCount: usize,
8476 ),
8477 >,
8478}
8479#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8480const _: () = {
8481 ["Size of BNTypeParserCallbacks"][::std::mem::size_of::<BNTypeParserCallbacks>() - 64usize];
8482 ["Alignment of BNTypeParserCallbacks"]
8483 [::std::mem::align_of::<BNTypeParserCallbacks>() - 8usize];
8484 ["Offset of field: BNTypeParserCallbacks::context"]
8485 [::std::mem::offset_of!(BNTypeParserCallbacks, context) - 0usize];
8486 ["Offset of field: BNTypeParserCallbacks::getOptionText"]
8487 [::std::mem::offset_of!(BNTypeParserCallbacks, getOptionText) - 8usize];
8488 ["Offset of field: BNTypeParserCallbacks::preprocessSource"]
8489 [::std::mem::offset_of!(BNTypeParserCallbacks, preprocessSource) - 16usize];
8490 ["Offset of field: BNTypeParserCallbacks::parseTypesFromSource"]
8491 [::std::mem::offset_of!(BNTypeParserCallbacks, parseTypesFromSource) - 24usize];
8492 ["Offset of field: BNTypeParserCallbacks::parseTypeString"]
8493 [::std::mem::offset_of!(BNTypeParserCallbacks, parseTypeString) - 32usize];
8494 ["Offset of field: BNTypeParserCallbacks::freeString"]
8495 [::std::mem::offset_of!(BNTypeParserCallbacks, freeString) - 40usize];
8496 ["Offset of field: BNTypeParserCallbacks::freeResult"]
8497 [::std::mem::offset_of!(BNTypeParserCallbacks, freeResult) - 48usize];
8498 ["Offset of field: BNTypeParserCallbacks::freeErrorList"]
8499 [::std::mem::offset_of!(BNTypeParserCallbacks, freeErrorList) - 56usize];
8500};
8501impl Default for BNTypeParserCallbacks {
8502 fn default() -> Self {
8503 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8504 unsafe {
8505 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8506 s.assume_init()
8507 }
8508 }
8509}
8510#[repr(C)]
8511#[derive(Debug, Copy, Clone)]
8512pub struct BNTypePrinterCallbacks {
8513 pub context: *mut ::std::os::raw::c_void,
8514 pub getTypeTokens: ::std::option::Option<
8515 unsafe extern "C" fn(
8516 ctxt: *mut ::std::os::raw::c_void,
8517 type_: *mut BNType,
8518 platform: *mut BNPlatform,
8519 name: *mut BNQualifiedName,
8520 baseConfidence: u8,
8521 escaping: BNTokenEscapingType,
8522 result: *mut *mut BNInstructionTextToken,
8523 resultCount: *mut usize,
8524 ) -> bool,
8525 >,
8526 pub getTypeTokensBeforeName: ::std::option::Option<
8527 unsafe extern "C" fn(
8528 ctxt: *mut ::std::os::raw::c_void,
8529 type_: *mut BNType,
8530 platform: *mut BNPlatform,
8531 baseConfidence: u8,
8532 parentType: *mut BNType,
8533 escaping: BNTokenEscapingType,
8534 result: *mut *mut BNInstructionTextToken,
8535 resultCount: *mut usize,
8536 ) -> bool,
8537 >,
8538 pub getTypeTokensAfterName: ::std::option::Option<
8539 unsafe extern "C" fn(
8540 ctxt: *mut ::std::os::raw::c_void,
8541 type_: *mut BNType,
8542 platform: *mut BNPlatform,
8543 baseConfidence: u8,
8544 parentType: *mut BNType,
8545 escaping: BNTokenEscapingType,
8546 result: *mut *mut BNInstructionTextToken,
8547 resultCount: *mut usize,
8548 ) -> bool,
8549 >,
8550 pub getTypeString: ::std::option::Option<
8551 unsafe extern "C" fn(
8552 ctxt: *mut ::std::os::raw::c_void,
8553 type_: *mut BNType,
8554 platform: *mut BNPlatform,
8555 name: *mut BNQualifiedName,
8556 escaping: BNTokenEscapingType,
8557 result: *mut *mut ::std::os::raw::c_char,
8558 ) -> bool,
8559 >,
8560 pub getTypeStringBeforeName: ::std::option::Option<
8561 unsafe extern "C" fn(
8562 ctxt: *mut ::std::os::raw::c_void,
8563 type_: *mut BNType,
8564 platform: *mut BNPlatform,
8565 escaping: BNTokenEscapingType,
8566 result: *mut *mut ::std::os::raw::c_char,
8567 ) -> bool,
8568 >,
8569 pub getTypeStringAfterName: ::std::option::Option<
8570 unsafe extern "C" fn(
8571 ctxt: *mut ::std::os::raw::c_void,
8572 type_: *mut BNType,
8573 platform: *mut BNPlatform,
8574 escaping: BNTokenEscapingType,
8575 result: *mut *mut ::std::os::raw::c_char,
8576 ) -> bool,
8577 >,
8578 pub getTypeLines: ::std::option::Option<
8579 unsafe extern "C" fn(
8580 ctxt: *mut ::std::os::raw::c_void,
8581 type_: *mut BNType,
8582 types: *mut BNTypeContainer,
8583 name: *mut BNQualifiedName,
8584 paddingCols: ::std::os::raw::c_int,
8585 collapsed: bool,
8586 escaping: BNTokenEscapingType,
8587 result: *mut *mut BNTypeDefinitionLine,
8588 resultCount: *mut usize,
8589 ) -> bool,
8590 >,
8591 pub printAllTypes: ::std::option::Option<
8592 unsafe extern "C" fn(
8593 ctxt: *mut ::std::os::raw::c_void,
8594 names: *mut BNQualifiedName,
8595 types: *mut *mut BNType,
8596 typeCount: usize,
8597 data: *mut BNBinaryView,
8598 paddingCols: ::std::os::raw::c_int,
8599 escaping: BNTokenEscapingType,
8600 result: *mut *mut ::std::os::raw::c_char,
8601 ) -> bool,
8602 >,
8603 pub freeTokens: ::std::option::Option<
8604 unsafe extern "C" fn(
8605 ctxt: *mut ::std::os::raw::c_void,
8606 tokens: *mut BNInstructionTextToken,
8607 count: usize,
8608 ),
8609 >,
8610 pub freeString: ::std::option::Option<
8611 unsafe extern "C" fn(
8612 ctxt: *mut ::std::os::raw::c_void,
8613 string: *mut ::std::os::raw::c_char,
8614 ),
8615 >,
8616 pub freeLines: ::std::option::Option<
8617 unsafe extern "C" fn(
8618 ctxt: *mut ::std::os::raw::c_void,
8619 lines: *mut BNTypeDefinitionLine,
8620 count: usize,
8621 ),
8622 >,
8623}
8624#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8625const _: () = {
8626 ["Size of BNTypePrinterCallbacks"][::std::mem::size_of::<BNTypePrinterCallbacks>() - 96usize];
8627 ["Alignment of BNTypePrinterCallbacks"]
8628 [::std::mem::align_of::<BNTypePrinterCallbacks>() - 8usize];
8629 ["Offset of field: BNTypePrinterCallbacks::context"]
8630 [::std::mem::offset_of!(BNTypePrinterCallbacks, context) - 0usize];
8631 ["Offset of field: BNTypePrinterCallbacks::getTypeTokens"]
8632 [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeTokens) - 8usize];
8633 ["Offset of field: BNTypePrinterCallbacks::getTypeTokensBeforeName"]
8634 [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeTokensBeforeName) - 16usize];
8635 ["Offset of field: BNTypePrinterCallbacks::getTypeTokensAfterName"]
8636 [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeTokensAfterName) - 24usize];
8637 ["Offset of field: BNTypePrinterCallbacks::getTypeString"]
8638 [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeString) - 32usize];
8639 ["Offset of field: BNTypePrinterCallbacks::getTypeStringBeforeName"]
8640 [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeStringBeforeName) - 40usize];
8641 ["Offset of field: BNTypePrinterCallbacks::getTypeStringAfterName"]
8642 [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeStringAfterName) - 48usize];
8643 ["Offset of field: BNTypePrinterCallbacks::getTypeLines"]
8644 [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeLines) - 56usize];
8645 ["Offset of field: BNTypePrinterCallbacks::printAllTypes"]
8646 [::std::mem::offset_of!(BNTypePrinterCallbacks, printAllTypes) - 64usize];
8647 ["Offset of field: BNTypePrinterCallbacks::freeTokens"]
8648 [::std::mem::offset_of!(BNTypePrinterCallbacks, freeTokens) - 72usize];
8649 ["Offset of field: BNTypePrinterCallbacks::freeString"]
8650 [::std::mem::offset_of!(BNTypePrinterCallbacks, freeString) - 80usize];
8651 ["Offset of field: BNTypePrinterCallbacks::freeLines"]
8652 [::std::mem::offset_of!(BNTypePrinterCallbacks, freeLines) - 88usize];
8653};
8654impl Default for BNTypePrinterCallbacks {
8655 fn default() -> Self {
8656 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8657 unsafe {
8658 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8659 s.assume_init()
8660 }
8661 }
8662}
8663#[repr(C)]
8664#[derive(Debug, Default, Copy, Clone)]
8665pub struct BNConstantReference {
8666 pub value: i64,
8667 pub size: usize,
8668 pub pointer: bool,
8669 pub intermediate: bool,
8670}
8671#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8672const _: () = {
8673 ["Size of BNConstantReference"][::std::mem::size_of::<BNConstantReference>() - 24usize];
8674 ["Alignment of BNConstantReference"][::std::mem::align_of::<BNConstantReference>() - 8usize];
8675 ["Offset of field: BNConstantReference::value"]
8676 [::std::mem::offset_of!(BNConstantReference, value) - 0usize];
8677 ["Offset of field: BNConstantReference::size"]
8678 [::std::mem::offset_of!(BNConstantReference, size) - 8usize];
8679 ["Offset of field: BNConstantReference::pointer"]
8680 [::std::mem::offset_of!(BNConstantReference, pointer) - 16usize];
8681 ["Offset of field: BNConstantReference::intermediate"]
8682 [::std::mem::offset_of!(BNConstantReference, intermediate) - 17usize];
8683};
8684#[repr(C)]
8685#[derive(Debug, Copy, Clone)]
8686pub struct BNMetadataValueStore {
8687 pub size: usize,
8688 pub keys: *mut *mut ::std::os::raw::c_char,
8689 pub values: *mut *mut BNMetadata,
8690}
8691#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8692const _: () = {
8693 ["Size of BNMetadataValueStore"][::std::mem::size_of::<BNMetadataValueStore>() - 24usize];
8694 ["Alignment of BNMetadataValueStore"][::std::mem::align_of::<BNMetadataValueStore>() - 8usize];
8695 ["Offset of field: BNMetadataValueStore::size"]
8696 [::std::mem::offset_of!(BNMetadataValueStore, size) - 0usize];
8697 ["Offset of field: BNMetadataValueStore::keys"]
8698 [::std::mem::offset_of!(BNMetadataValueStore, keys) - 8usize];
8699 ["Offset of field: BNMetadataValueStore::values"]
8700 [::std::mem::offset_of!(BNMetadataValueStore, values) - 16usize];
8701};
8702impl Default for BNMetadataValueStore {
8703 fn default() -> Self {
8704 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8705 unsafe {
8706 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8707 s.assume_init()
8708 }
8709 }
8710}
8711#[repr(u8)]
8712#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8713pub enum BNSaveOption {
8714 RemoveUndoData = 0,
8715 TrimSnapshots = 1,
8716 PurgeOriginalFilenamePath = 2,
8717}
8718#[repr(u8)]
8719#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8720pub enum BNMessageBoxIcon {
8721 InformationIcon = 0,
8722 QuestionIcon = 1,
8723 WarningIcon = 2,
8724 ErrorIcon = 3,
8725}
8726#[repr(u8)]
8727#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8728pub enum BNMessageBoxButtonSet {
8729 OKButtonSet = 0,
8730 YesNoButtonSet = 1,
8731 YesNoCancelButtonSet = 2,
8732}
8733#[repr(u8)]
8734#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8735pub enum BNMessageBoxButtonResult {
8736 NoButton = 0,
8737 YesButton = 1,
8738 OKButton = 2,
8739 CancelButton = 3,
8740}
8741#[repr(u8)]
8742#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8743pub enum BNFormInputFieldType {
8744 LabelFormField = 0,
8745 SeparatorFormField = 1,
8746 TextLineFormField = 2,
8747 MultilineTextFormField = 3,
8748 IntegerFormField = 4,
8749 AddressFormField = 5,
8750 ChoiceFormField = 6,
8751 OpenFileNameFormField = 7,
8752 SaveFileNameFormField = 8,
8753 DirectoryNameFormField = 9,
8754 CheckboxFormField = 10,
8755}
8756#[repr(C)]
8757#[derive(Debug, Copy, Clone)]
8758pub struct BNFormInputField {
8759 pub type_: BNFormInputFieldType,
8760 pub prompt: *const ::std::os::raw::c_char,
8761 #[doc = " For AddressFormField"]
8762 pub view: *mut BNBinaryView,
8763 #[doc = " For AddressFormField"]
8764 pub currentAddress: u64,
8765 #[doc = " For ChoiceFormField"]
8766 pub choices: *mut *const ::std::os::raw::c_char,
8767 #[doc = " For ChoiceFormField"]
8768 pub count: usize,
8769 #[doc = " For OpenFileNameFormField, SaveFileNameFormField"]
8770 pub ext: *const ::std::os::raw::c_char,
8771 #[doc = " For SaveFileNameFormField"]
8772 pub defaultName: *const ::std::os::raw::c_char,
8773 pub intResult: i64,
8774 pub addressResult: u64,
8775 pub stringResult: *mut ::std::os::raw::c_char,
8776 pub indexResult: usize,
8777 pub hasDefault: bool,
8778 pub intDefault: i64,
8779 pub addressDefault: u64,
8780 pub stringDefault: *const ::std::os::raw::c_char,
8781 pub indexDefault: usize,
8782}
8783#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8784const _: () = {
8785 ["Size of BNFormInputField"][::std::mem::size_of::<BNFormInputField>() - 136usize];
8786 ["Alignment of BNFormInputField"][::std::mem::align_of::<BNFormInputField>() - 8usize];
8787 ["Offset of field: BNFormInputField::type_"]
8788 [::std::mem::offset_of!(BNFormInputField, type_) - 0usize];
8789 ["Offset of field: BNFormInputField::prompt"]
8790 [::std::mem::offset_of!(BNFormInputField, prompt) - 8usize];
8791 ["Offset of field: BNFormInputField::view"]
8792 [::std::mem::offset_of!(BNFormInputField, view) - 16usize];
8793 ["Offset of field: BNFormInputField::currentAddress"]
8794 [::std::mem::offset_of!(BNFormInputField, currentAddress) - 24usize];
8795 ["Offset of field: BNFormInputField::choices"]
8796 [::std::mem::offset_of!(BNFormInputField, choices) - 32usize];
8797 ["Offset of field: BNFormInputField::count"]
8798 [::std::mem::offset_of!(BNFormInputField, count) - 40usize];
8799 ["Offset of field: BNFormInputField::ext"]
8800 [::std::mem::offset_of!(BNFormInputField, ext) - 48usize];
8801 ["Offset of field: BNFormInputField::defaultName"]
8802 [::std::mem::offset_of!(BNFormInputField, defaultName) - 56usize];
8803 ["Offset of field: BNFormInputField::intResult"]
8804 [::std::mem::offset_of!(BNFormInputField, intResult) - 64usize];
8805 ["Offset of field: BNFormInputField::addressResult"]
8806 [::std::mem::offset_of!(BNFormInputField, addressResult) - 72usize];
8807 ["Offset of field: BNFormInputField::stringResult"]
8808 [::std::mem::offset_of!(BNFormInputField, stringResult) - 80usize];
8809 ["Offset of field: BNFormInputField::indexResult"]
8810 [::std::mem::offset_of!(BNFormInputField, indexResult) - 88usize];
8811 ["Offset of field: BNFormInputField::hasDefault"]
8812 [::std::mem::offset_of!(BNFormInputField, hasDefault) - 96usize];
8813 ["Offset of field: BNFormInputField::intDefault"]
8814 [::std::mem::offset_of!(BNFormInputField, intDefault) - 104usize];
8815 ["Offset of field: BNFormInputField::addressDefault"]
8816 [::std::mem::offset_of!(BNFormInputField, addressDefault) - 112usize];
8817 ["Offset of field: BNFormInputField::stringDefault"]
8818 [::std::mem::offset_of!(BNFormInputField, stringDefault) - 120usize];
8819 ["Offset of field: BNFormInputField::indexDefault"]
8820 [::std::mem::offset_of!(BNFormInputField, indexDefault) - 128usize];
8821};
8822impl Default for BNFormInputField {
8823 fn default() -> Self {
8824 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8825 unsafe {
8826 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8827 s.assume_init()
8828 }
8829 }
8830}
8831#[repr(C)]
8832#[derive(Debug, Copy, Clone)]
8833pub struct BNInteractionHandlerCallbacks {
8834 pub context: *mut ::std::os::raw::c_void,
8835 pub showPlainTextReport: ::std::option::Option<
8836 unsafe extern "C" fn(
8837 ctxt: *mut ::std::os::raw::c_void,
8838 view: *mut BNBinaryView,
8839 title: *const ::std::os::raw::c_char,
8840 contents: *const ::std::os::raw::c_char,
8841 ),
8842 >,
8843 pub showMarkdownReport: ::std::option::Option<
8844 unsafe extern "C" fn(
8845 ctxt: *mut ::std::os::raw::c_void,
8846 view: *mut BNBinaryView,
8847 title: *const ::std::os::raw::c_char,
8848 contents: *const ::std::os::raw::c_char,
8849 plaintext: *const ::std::os::raw::c_char,
8850 ),
8851 >,
8852 pub showHTMLReport: ::std::option::Option<
8853 unsafe extern "C" fn(
8854 ctxt: *mut ::std::os::raw::c_void,
8855 view: *mut BNBinaryView,
8856 title: *const ::std::os::raw::c_char,
8857 contents: *const ::std::os::raw::c_char,
8858 plaintext: *const ::std::os::raw::c_char,
8859 ),
8860 >,
8861 pub showGraphReport: ::std::option::Option<
8862 unsafe extern "C" fn(
8863 ctxt: *mut ::std::os::raw::c_void,
8864 view: *mut BNBinaryView,
8865 title: *const ::std::os::raw::c_char,
8866 graph: *mut BNFlowGraph,
8867 ),
8868 >,
8869 pub showReportCollection: ::std::option::Option<
8870 unsafe extern "C" fn(
8871 ctxt: *mut ::std::os::raw::c_void,
8872 title: *const ::std::os::raw::c_char,
8873 reports: *mut BNReportCollection,
8874 ),
8875 >,
8876 pub getTextLineInput: ::std::option::Option<
8877 unsafe extern "C" fn(
8878 ctxt: *mut ::std::os::raw::c_void,
8879 result: *mut *mut ::std::os::raw::c_char,
8880 prompt: *const ::std::os::raw::c_char,
8881 title: *const ::std::os::raw::c_char,
8882 ) -> bool,
8883 >,
8884 pub getIntegerInput: ::std::option::Option<
8885 unsafe extern "C" fn(
8886 ctxt: *mut ::std::os::raw::c_void,
8887 result: *mut i64,
8888 prompt: *const ::std::os::raw::c_char,
8889 title: *const ::std::os::raw::c_char,
8890 ) -> bool,
8891 >,
8892 pub getAddressInput: ::std::option::Option<
8893 unsafe extern "C" fn(
8894 ctxt: *mut ::std::os::raw::c_void,
8895 result: *mut u64,
8896 prompt: *const ::std::os::raw::c_char,
8897 title: *const ::std::os::raw::c_char,
8898 view: *mut BNBinaryView,
8899 currentAddr: u64,
8900 ) -> bool,
8901 >,
8902 pub getChoiceInput: ::std::option::Option<
8903 unsafe extern "C" fn(
8904 ctxt: *mut ::std::os::raw::c_void,
8905 result: *mut usize,
8906 prompt: *const ::std::os::raw::c_char,
8907 title: *const ::std::os::raw::c_char,
8908 choices: *mut *const ::std::os::raw::c_char,
8909 count: usize,
8910 ) -> bool,
8911 >,
8912 pub getLargeChoiceInput: ::std::option::Option<
8913 unsafe extern "C" fn(
8914 ctxt: *mut ::std::os::raw::c_void,
8915 result: *mut usize,
8916 prompt: *const ::std::os::raw::c_char,
8917 title: *const ::std::os::raw::c_char,
8918 choices: *mut *const ::std::os::raw::c_char,
8919 count: usize,
8920 ) -> bool,
8921 >,
8922 pub getOpenFileNameInput: ::std::option::Option<
8923 unsafe extern "C" fn(
8924 ctxt: *mut ::std::os::raw::c_void,
8925 result: *mut *mut ::std::os::raw::c_char,
8926 prompt: *const ::std::os::raw::c_char,
8927 ext: *const ::std::os::raw::c_char,
8928 ) -> bool,
8929 >,
8930 pub getSaveFileNameInput: ::std::option::Option<
8931 unsafe extern "C" fn(
8932 ctxt: *mut ::std::os::raw::c_void,
8933 result: *mut *mut ::std::os::raw::c_char,
8934 prompt: *const ::std::os::raw::c_char,
8935 ext: *const ::std::os::raw::c_char,
8936 defaultName: *const ::std::os::raw::c_char,
8937 ) -> bool,
8938 >,
8939 pub getDirectoryNameInput: ::std::option::Option<
8940 unsafe extern "C" fn(
8941 ctxt: *mut ::std::os::raw::c_void,
8942 result: *mut *mut ::std::os::raw::c_char,
8943 prompt: *const ::std::os::raw::c_char,
8944 defaultName: *const ::std::os::raw::c_char,
8945 ) -> bool,
8946 >,
8947 pub getCheckboxInput: ::std::option::Option<
8948 unsafe extern "C" fn(
8949 ctxt: *mut ::std::os::raw::c_void,
8950 result: *mut i64,
8951 prompt: *const ::std::os::raw::c_char,
8952 title: *const ::std::os::raw::c_char,
8953 defaultChoice: *const i64,
8954 ) -> bool,
8955 >,
8956 pub getFormInput: ::std::option::Option<
8957 unsafe extern "C" fn(
8958 ctxt: *mut ::std::os::raw::c_void,
8959 fields: *mut BNFormInputField,
8960 count: usize,
8961 title: *const ::std::os::raw::c_char,
8962 ) -> bool,
8963 >,
8964 pub showMessageBox: ::std::option::Option<
8965 unsafe extern "C" fn(
8966 ctxt: *mut ::std::os::raw::c_void,
8967 title: *const ::std::os::raw::c_char,
8968 text: *const ::std::os::raw::c_char,
8969 buttons: BNMessageBoxButtonSet,
8970 icon: BNMessageBoxIcon,
8971 ) -> BNMessageBoxButtonResult,
8972 >,
8973 pub openUrl: ::std::option::Option<
8974 unsafe extern "C" fn(
8975 ctxt: *mut ::std::os::raw::c_void,
8976 url: *const ::std::os::raw::c_char,
8977 ) -> bool,
8978 >,
8979 pub runProgressDialog: ::std::option::Option<
8980 unsafe extern "C" fn(
8981 ctxt: *mut ::std::os::raw::c_void,
8982 title: *const ::std::os::raw::c_char,
8983 canCancel: bool,
8984 task: ::std::option::Option<
8985 unsafe extern "C" fn(
8986 taskCtxt: *mut ::std::os::raw::c_void,
8987 progress: BNProgressFunction,
8988 progressCtxt: *mut ::std::os::raw::c_void,
8989 ),
8990 >,
8991 taskCtxt: *mut ::std::os::raw::c_void,
8992 ) -> bool,
8993 >,
8994}
8995#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8996const _: () = {
8997 ["Size of BNInteractionHandlerCallbacks"]
8998 [::std::mem::size_of::<BNInteractionHandlerCallbacks>() - 152usize];
8999 ["Alignment of BNInteractionHandlerCallbacks"]
9000 [::std::mem::align_of::<BNInteractionHandlerCallbacks>() - 8usize];
9001 ["Offset of field: BNInteractionHandlerCallbacks::context"]
9002 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, context) - 0usize];
9003 ["Offset of field: BNInteractionHandlerCallbacks::showPlainTextReport"]
9004 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showPlainTextReport) - 8usize];
9005 ["Offset of field: BNInteractionHandlerCallbacks::showMarkdownReport"]
9006 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showMarkdownReport) - 16usize];
9007 ["Offset of field: BNInteractionHandlerCallbacks::showHTMLReport"]
9008 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showHTMLReport) - 24usize];
9009 ["Offset of field: BNInteractionHandlerCallbacks::showGraphReport"]
9010 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showGraphReport) - 32usize];
9011 ["Offset of field: BNInteractionHandlerCallbacks::showReportCollection"]
9012 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showReportCollection) - 40usize];
9013 ["Offset of field: BNInteractionHandlerCallbacks::getTextLineInput"]
9014 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getTextLineInput) - 48usize];
9015 ["Offset of field: BNInteractionHandlerCallbacks::getIntegerInput"]
9016 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getIntegerInput) - 56usize];
9017 ["Offset of field: BNInteractionHandlerCallbacks::getAddressInput"]
9018 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getAddressInput) - 64usize];
9019 ["Offset of field: BNInteractionHandlerCallbacks::getChoiceInput"]
9020 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getChoiceInput) - 72usize];
9021 ["Offset of field: BNInteractionHandlerCallbacks::getLargeChoiceInput"]
9022 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getLargeChoiceInput) - 80usize];
9023 ["Offset of field: BNInteractionHandlerCallbacks::getOpenFileNameInput"]
9024 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getOpenFileNameInput) - 88usize];
9025 ["Offset of field: BNInteractionHandlerCallbacks::getSaveFileNameInput"]
9026 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getSaveFileNameInput) - 96usize];
9027 ["Offset of field: BNInteractionHandlerCallbacks::getDirectoryNameInput"]
9028 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getDirectoryNameInput) - 104usize];
9029 ["Offset of field: BNInteractionHandlerCallbacks::getCheckboxInput"]
9030 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getCheckboxInput) - 112usize];
9031 ["Offset of field: BNInteractionHandlerCallbacks::getFormInput"]
9032 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getFormInput) - 120usize];
9033 ["Offset of field: BNInteractionHandlerCallbacks::showMessageBox"]
9034 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showMessageBox) - 128usize];
9035 ["Offset of field: BNInteractionHandlerCallbacks::openUrl"]
9036 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, openUrl) - 136usize];
9037 ["Offset of field: BNInteractionHandlerCallbacks::runProgressDialog"]
9038 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, runProgressDialog) - 144usize];
9039};
9040impl Default for BNInteractionHandlerCallbacks {
9041 fn default() -> Self {
9042 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9043 unsafe {
9044 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9045 s.assume_init()
9046 }
9047 }
9048}
9049#[repr(C)]
9050#[derive(Debug, Copy, Clone)]
9051pub struct BNObjectDestructionCallbacks {
9052 pub context: *mut ::std::os::raw::c_void,
9053 #[doc = " The provided pointers have a reference count of zero. Do not add additional references, doing so\n can lead to a double free. These are provided only for freeing additional state related to the\n objects passed."]
9054 pub destructBinaryView: ::std::option::Option<
9055 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
9056 >,
9057 pub destructFileMetadata: ::std::option::Option<
9058 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, file: *mut BNFileMetadata),
9059 >,
9060 pub destructFunction: ::std::option::Option<
9061 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, func: *mut BNFunction),
9062 >,
9063}
9064#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9065const _: () = {
9066 ["Size of BNObjectDestructionCallbacks"]
9067 [::std::mem::size_of::<BNObjectDestructionCallbacks>() - 32usize];
9068 ["Alignment of BNObjectDestructionCallbacks"]
9069 [::std::mem::align_of::<BNObjectDestructionCallbacks>() - 8usize];
9070 ["Offset of field: BNObjectDestructionCallbacks::context"]
9071 [::std::mem::offset_of!(BNObjectDestructionCallbacks, context) - 0usize];
9072 ["Offset of field: BNObjectDestructionCallbacks::destructBinaryView"]
9073 [::std::mem::offset_of!(BNObjectDestructionCallbacks, destructBinaryView) - 8usize];
9074 ["Offset of field: BNObjectDestructionCallbacks::destructFileMetadata"]
9075 [::std::mem::offset_of!(BNObjectDestructionCallbacks, destructFileMetadata) - 16usize];
9076 ["Offset of field: BNObjectDestructionCallbacks::destructFunction"]
9077 [::std::mem::offset_of!(BNObjectDestructionCallbacks, destructFunction) - 24usize];
9078};
9079impl Default for BNObjectDestructionCallbacks {
9080 fn default() -> Self {
9081 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9082 unsafe {
9083 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9084 s.assume_init()
9085 }
9086 }
9087}
9088#[repr(C)]
9089#[derive(Debug, Copy, Clone)]
9090pub struct BNTypeContext {
9091 pub type_: *mut BNType,
9092 pub offset: usize,
9093}
9094#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9095const _: () = {
9096 ["Size of BNTypeContext"][::std::mem::size_of::<BNTypeContext>() - 16usize];
9097 ["Alignment of BNTypeContext"][::std::mem::align_of::<BNTypeContext>() - 8usize];
9098 ["Offset of field: BNTypeContext::type_"]
9099 [::std::mem::offset_of!(BNTypeContext, type_) - 0usize];
9100 ["Offset of field: BNTypeContext::offset"]
9101 [::std::mem::offset_of!(BNTypeContext, offset) - 8usize];
9102};
9103impl Default for BNTypeContext {
9104 fn default() -> Self {
9105 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9106 unsafe {
9107 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9108 s.assume_init()
9109 }
9110 }
9111}
9112#[repr(C)]
9113#[derive(Debug, Copy, Clone)]
9114pub struct BNCustomDataRenderer {
9115 pub context: *mut ::std::os::raw::c_void,
9116 pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
9117 pub isValidForData: ::std::option::Option<
9118 unsafe extern "C" fn(
9119 ctxt: *mut ::std::os::raw::c_void,
9120 view: *mut BNBinaryView,
9121 addr: u64,
9122 type_: *mut BNType,
9123 typeCtx: *mut BNTypeContext,
9124 ctxCount: usize,
9125 ) -> bool,
9126 >,
9127 pub getLinesForData: ::std::option::Option<
9128 unsafe extern "C" fn(
9129 ctxt: *mut ::std::os::raw::c_void,
9130 view: *mut BNBinaryView,
9131 addr: u64,
9132 type_: *mut BNType,
9133 prefix: *const BNInstructionTextToken,
9134 prefixCount: usize,
9135 width: usize,
9136 count: *mut usize,
9137 typeCtx: *mut BNTypeContext,
9138 ctxCount: usize,
9139 language: *const ::std::os::raw::c_char,
9140 ) -> *mut BNDisassemblyTextLine,
9141 >,
9142 pub freeLines: ::std::option::Option<
9143 unsafe extern "C" fn(
9144 ctx: *mut ::std::os::raw::c_void,
9145 lines: *mut BNDisassemblyTextLine,
9146 count: usize,
9147 ),
9148 >,
9149}
9150#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9151const _: () = {
9152 ["Size of BNCustomDataRenderer"][::std::mem::size_of::<BNCustomDataRenderer>() - 40usize];
9153 ["Alignment of BNCustomDataRenderer"][::std::mem::align_of::<BNCustomDataRenderer>() - 8usize];
9154 ["Offset of field: BNCustomDataRenderer::context"]
9155 [::std::mem::offset_of!(BNCustomDataRenderer, context) - 0usize];
9156 ["Offset of field: BNCustomDataRenderer::freeObject"]
9157 [::std::mem::offset_of!(BNCustomDataRenderer, freeObject) - 8usize];
9158 ["Offset of field: BNCustomDataRenderer::isValidForData"]
9159 [::std::mem::offset_of!(BNCustomDataRenderer, isValidForData) - 16usize];
9160 ["Offset of field: BNCustomDataRenderer::getLinesForData"]
9161 [::std::mem::offset_of!(BNCustomDataRenderer, getLinesForData) - 24usize];
9162 ["Offset of field: BNCustomDataRenderer::freeLines"]
9163 [::std::mem::offset_of!(BNCustomDataRenderer, freeLines) - 32usize];
9164};
9165impl Default for BNCustomDataRenderer {
9166 fn default() -> Self {
9167 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9168 unsafe {
9169 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9170 s.assume_init()
9171 }
9172 }
9173}
9174#[repr(u8)]
9175#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9176pub enum BNSectionSemantics {
9177 DefaultSectionSemantics = 0,
9178 ReadOnlyCodeSectionSemantics = 1,
9179 ReadOnlyDataSectionSemantics = 2,
9180 ReadWriteDataSectionSemantics = 3,
9181 ExternalSectionSemantics = 4,
9182}
9183#[repr(C)]
9184#[derive(Debug, Default, Copy, Clone)]
9185pub struct BNAddressRange {
9186 pub start: u64,
9187 pub end: u64,
9188}
9189#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9190const _: () = {
9191 ["Size of BNAddressRange"][::std::mem::size_of::<BNAddressRange>() - 16usize];
9192 ["Alignment of BNAddressRange"][::std::mem::align_of::<BNAddressRange>() - 8usize];
9193 ["Offset of field: BNAddressRange::start"]
9194 [::std::mem::offset_of!(BNAddressRange, start) - 0usize];
9195 ["Offset of field: BNAddressRange::end"][::std::mem::offset_of!(BNAddressRange, end) - 8usize];
9196};
9197#[repr(C)]
9198#[derive(Debug, Copy, Clone)]
9199pub struct BNSystemCallInfo {
9200 pub number: u32,
9201 pub name: BNQualifiedName,
9202 pub type_: *mut BNType,
9203}
9204#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9205const _: () = {
9206 ["Size of BNSystemCallInfo"][::std::mem::size_of::<BNSystemCallInfo>() - 40usize];
9207 ["Alignment of BNSystemCallInfo"][::std::mem::align_of::<BNSystemCallInfo>() - 8usize];
9208 ["Offset of field: BNSystemCallInfo::number"]
9209 [::std::mem::offset_of!(BNSystemCallInfo, number) - 0usize];
9210 ["Offset of field: BNSystemCallInfo::name"]
9211 [::std::mem::offset_of!(BNSystemCallInfo, name) - 8usize];
9212 ["Offset of field: BNSystemCallInfo::type_"]
9213 [::std::mem::offset_of!(BNSystemCallInfo, type_) - 32usize];
9214};
9215impl Default for BNSystemCallInfo {
9216 fn default() -> Self {
9217 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9218 unsafe {
9219 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9220 s.assume_init()
9221 }
9222 }
9223}
9224#[repr(u8)]
9225#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9226pub enum BNILBranchDependence {
9227 NotBranchDependent = 0,
9228 TrueBranchDependent = 1,
9229 FalseBranchDependent = 2,
9230}
9231#[repr(C)]
9232#[derive(Debug, Copy, Clone)]
9233pub struct BNILBranchInstructionAndDependence {
9234 pub branch: usize,
9235 pub dependence: BNILBranchDependence,
9236}
9237#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9238const _: () = {
9239 ["Size of BNILBranchInstructionAndDependence"]
9240 [::std::mem::size_of::<BNILBranchInstructionAndDependence>() - 16usize];
9241 ["Alignment of BNILBranchInstructionAndDependence"]
9242 [::std::mem::align_of::<BNILBranchInstructionAndDependence>() - 8usize];
9243 ["Offset of field: BNILBranchInstructionAndDependence::branch"]
9244 [::std::mem::offset_of!(BNILBranchInstructionAndDependence, branch) - 0usize];
9245 ["Offset of field: BNILBranchInstructionAndDependence::dependence"]
9246 [::std::mem::offset_of!(BNILBranchInstructionAndDependence, dependence) - 8usize];
9247};
9248impl Default for BNILBranchInstructionAndDependence {
9249 fn default() -> Self {
9250 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9251 unsafe {
9252 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9253 s.assume_init()
9254 }
9255 }
9256}
9257#[repr(C)]
9258#[derive(Debug, Copy, Clone)]
9259pub struct BNPerformanceInfo {
9260 pub name: *mut ::std::os::raw::c_char,
9261 pub seconds: f64,
9262}
9263#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9264const _: () = {
9265 ["Size of BNPerformanceInfo"][::std::mem::size_of::<BNPerformanceInfo>() - 16usize];
9266 ["Alignment of BNPerformanceInfo"][::std::mem::align_of::<BNPerformanceInfo>() - 8usize];
9267 ["Offset of field: BNPerformanceInfo::name"]
9268 [::std::mem::offset_of!(BNPerformanceInfo, name) - 0usize];
9269 ["Offset of field: BNPerformanceInfo::seconds"]
9270 [::std::mem::offset_of!(BNPerformanceInfo, seconds) - 8usize];
9271};
9272impl Default for BNPerformanceInfo {
9273 fn default() -> Self {
9274 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9275 unsafe {
9276 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9277 s.assume_init()
9278 }
9279 }
9280}
9281#[repr(C)]
9282#[derive(Debug, Copy, Clone)]
9283pub struct BNMemoryUsageInfo {
9284 pub name: *mut ::std::os::raw::c_char,
9285 pub value: u64,
9286}
9287#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9288const _: () = {
9289 ["Size of BNMemoryUsageInfo"][::std::mem::size_of::<BNMemoryUsageInfo>() - 16usize];
9290 ["Alignment of BNMemoryUsageInfo"][::std::mem::align_of::<BNMemoryUsageInfo>() - 8usize];
9291 ["Offset of field: BNMemoryUsageInfo::name"]
9292 [::std::mem::offset_of!(BNMemoryUsageInfo, name) - 0usize];
9293 ["Offset of field: BNMemoryUsageInfo::value"]
9294 [::std::mem::offset_of!(BNMemoryUsageInfo, value) - 8usize];
9295};
9296impl Default for BNMemoryUsageInfo {
9297 fn default() -> Self {
9298 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9299 unsafe {
9300 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9301 s.assume_init()
9302 }
9303 }
9304}
9305#[repr(u8)]
9306#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9307pub enum BNMetadataType {
9308 InvalidDataType = 0,
9309 BooleanDataType = 1,
9310 StringDataType = 2,
9311 UnsignedIntegerDataType = 3,
9312 SignedIntegerDataType = 4,
9313 DoubleDataType = 5,
9314 RawDataType = 6,
9315 KeyValueDataType = 7,
9316 ArrayDataType = 8,
9317}
9318#[repr(C)]
9319#[derive(Debug, Default, Copy, Clone)]
9320pub struct BNRegisterStackAdjustment {
9321 pub regStack: u32,
9322 pub adjustment: i32,
9323 pub confidence: u8,
9324}
9325#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9326const _: () = {
9327 ["Size of BNRegisterStackAdjustment"]
9328 [::std::mem::size_of::<BNRegisterStackAdjustment>() - 12usize];
9329 ["Alignment of BNRegisterStackAdjustment"]
9330 [::std::mem::align_of::<BNRegisterStackAdjustment>() - 4usize];
9331 ["Offset of field: BNRegisterStackAdjustment::regStack"]
9332 [::std::mem::offset_of!(BNRegisterStackAdjustment, regStack) - 0usize];
9333 ["Offset of field: BNRegisterStackAdjustment::adjustment"]
9334 [::std::mem::offset_of!(BNRegisterStackAdjustment, adjustment) - 4usize];
9335 ["Offset of field: BNRegisterStackAdjustment::confidence"]
9336 [::std::mem::offset_of!(BNRegisterStackAdjustment, confidence) - 8usize];
9337};
9338#[repr(u8)]
9339#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9340pub enum BNReportType {
9341 PlainTextReportType = 0,
9342 MarkdownReportType = 1,
9343 HTMLReportType = 2,
9344 FlowGraphReportType = 3,
9345}
9346#[repr(C)]
9347#[derive(Debug, Copy, Clone)]
9348pub struct BNCustomFlowGraph {
9349 pub context: *mut ::std::os::raw::c_void,
9350 pub prepareForLayout:
9351 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
9352 pub populateNodes:
9353 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
9354 pub completeLayout:
9355 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
9356 pub update: ::std::option::Option<
9357 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNFlowGraph,
9358 >,
9359 pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
9360 pub externalRefTaken:
9361 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
9362 pub externalRefReleased:
9363 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
9364}
9365#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9366const _: () = {
9367 ["Size of BNCustomFlowGraph"][::std::mem::size_of::<BNCustomFlowGraph>() - 64usize];
9368 ["Alignment of BNCustomFlowGraph"][::std::mem::align_of::<BNCustomFlowGraph>() - 8usize];
9369 ["Offset of field: BNCustomFlowGraph::context"]
9370 [::std::mem::offset_of!(BNCustomFlowGraph, context) - 0usize];
9371 ["Offset of field: BNCustomFlowGraph::prepareForLayout"]
9372 [::std::mem::offset_of!(BNCustomFlowGraph, prepareForLayout) - 8usize];
9373 ["Offset of field: BNCustomFlowGraph::populateNodes"]
9374 [::std::mem::offset_of!(BNCustomFlowGraph, populateNodes) - 16usize];
9375 ["Offset of field: BNCustomFlowGraph::completeLayout"]
9376 [::std::mem::offset_of!(BNCustomFlowGraph, completeLayout) - 24usize];
9377 ["Offset of field: BNCustomFlowGraph::update"]
9378 [::std::mem::offset_of!(BNCustomFlowGraph, update) - 32usize];
9379 ["Offset of field: BNCustomFlowGraph::freeObject"]
9380 [::std::mem::offset_of!(BNCustomFlowGraph, freeObject) - 40usize];
9381 ["Offset of field: BNCustomFlowGraph::externalRefTaken"]
9382 [::std::mem::offset_of!(BNCustomFlowGraph, externalRefTaken) - 48usize];
9383 ["Offset of field: BNCustomFlowGraph::externalRefReleased"]
9384 [::std::mem::offset_of!(BNCustomFlowGraph, externalRefReleased) - 56usize];
9385};
9386impl Default for BNCustomFlowGraph {
9387 fn default() -> Self {
9388 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9389 unsafe {
9390 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9391 s.assume_init()
9392 }
9393 }
9394}
9395#[repr(C)]
9396#[derive(Debug, Copy, Clone)]
9397pub struct BNCustomFlowGraphLayout {
9398 pub context: *mut ::std::os::raw::c_void,
9399 pub layout: ::std::option::Option<
9400 unsafe extern "C" fn(
9401 ctxt: *mut ::std::os::raw::c_void,
9402 graph: *mut BNFlowGraph,
9403 nodes: *mut *mut BNFlowGraphNode,
9404 nodeCount: usize,
9405 ) -> bool,
9406 >,
9407}
9408#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9409const _: () = {
9410 ["Size of BNCustomFlowGraphLayout"][::std::mem::size_of::<BNCustomFlowGraphLayout>() - 16usize];
9411 ["Alignment of BNCustomFlowGraphLayout"]
9412 [::std::mem::align_of::<BNCustomFlowGraphLayout>() - 8usize];
9413 ["Offset of field: BNCustomFlowGraphLayout::context"]
9414 [::std::mem::offset_of!(BNCustomFlowGraphLayout, context) - 0usize];
9415 ["Offset of field: BNCustomFlowGraphLayout::layout"]
9416 [::std::mem::offset_of!(BNCustomFlowGraphLayout, layout) - 8usize];
9417};
9418impl Default for BNCustomFlowGraphLayout {
9419 fn default() -> Self {
9420 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9421 unsafe {
9422 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9423 s.assume_init()
9424 }
9425 }
9426}
9427#[repr(C)]
9428#[derive(Debug, Default, Copy, Clone)]
9429pub struct BNRange {
9430 pub start: u64,
9431 pub end: u64,
9432}
9433#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9434const _: () = {
9435 ["Size of BNRange"][::std::mem::size_of::<BNRange>() - 16usize];
9436 ["Alignment of BNRange"][::std::mem::align_of::<BNRange>() - 8usize];
9437 ["Offset of field: BNRange::start"][::std::mem::offset_of!(BNRange, start) - 0usize];
9438 ["Offset of field: BNRange::end"][::std::mem::offset_of!(BNRange, end) - 8usize];
9439};
9440#[repr(u8)]
9441#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9442pub enum BNAnalysisSkipReason {
9443 NoSkipReason = 0,
9444 AlwaysSkipReason = 1,
9445 ExceedFunctionSizeSkipReason = 2,
9446 ExceedFunctionAnalysisTimeSkipReason = 3,
9447 ExceedFunctionUpdateCountSkipReason = 4,
9448 NewAutoFunctionAnalysisSuppressedReason = 5,
9449 BasicAnalysisSkipReason = 6,
9450 IntermediateAnalysisSkipReason = 7,
9451 AnalysisPipelineSuspendedReason = 8,
9452}
9453#[repr(u8)]
9454#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9455pub enum BNSettingsScope {
9456 SettingsInvalidScope = 0,
9457 SettingsAutoScope = 1,
9458 SettingsDefaultScope = 2,
9459 SettingsUserScope = 4,
9460 SettingsProjectScope = 8,
9461 SettingsResourceScope = 16,
9462}
9463#[repr(u8)]
9464#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9465pub enum BNLinearViewObjectIdentifierType {
9466 SingleLinearViewObject = 0,
9467 AddressLinearViewObject = 1,
9468 AddressRangeLinearViewObject = 2,
9469}
9470#[repr(C)]
9471#[derive(Debug, Copy, Clone)]
9472pub struct BNLinearViewObjectIdentifier {
9473 pub name: *mut ::std::os::raw::c_char,
9474 pub type_: BNLinearViewObjectIdentifierType,
9475 pub start: u64,
9476 pub end: u64,
9477}
9478#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9479const _: () = {
9480 ["Size of BNLinearViewObjectIdentifier"]
9481 [::std::mem::size_of::<BNLinearViewObjectIdentifier>() - 32usize];
9482 ["Alignment of BNLinearViewObjectIdentifier"]
9483 [::std::mem::align_of::<BNLinearViewObjectIdentifier>() - 8usize];
9484 ["Offset of field: BNLinearViewObjectIdentifier::name"]
9485 [::std::mem::offset_of!(BNLinearViewObjectIdentifier, name) - 0usize];
9486 ["Offset of field: BNLinearViewObjectIdentifier::type_"]
9487 [::std::mem::offset_of!(BNLinearViewObjectIdentifier, type_) - 8usize];
9488 ["Offset of field: BNLinearViewObjectIdentifier::start"]
9489 [::std::mem::offset_of!(BNLinearViewObjectIdentifier, start) - 16usize];
9490 ["Offset of field: BNLinearViewObjectIdentifier::end"]
9491 [::std::mem::offset_of!(BNLinearViewObjectIdentifier, end) - 24usize];
9492};
9493impl Default for BNLinearViewObjectIdentifier {
9494 fn default() -> Self {
9495 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9496 unsafe {
9497 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9498 s.assume_init()
9499 }
9500 }
9501}
9502#[repr(u8)]
9503#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9504pub enum BNBinaryViewEventType {
9505 BinaryViewFinalizationEvent = 0,
9506 BinaryViewInitialAnalysisCompletionEvent = 1,
9507}
9508#[repr(u8)]
9509#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9510pub enum BNDeadStoreElimination {
9511 DefaultDeadStoreElimination = 0,
9512 PreventDeadStoreElimination = 1,
9513 AllowDeadStoreElimination = 2,
9514}
9515#[repr(u8)]
9516#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9517pub enum BNExprFolding {
9518 DefaultExprFolding = 0,
9519 PreventExprFolding = 1,
9520 AllowExprFolding = 2,
9521}
9522#[repr(u8)]
9523#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9524pub enum BNEarlyReturn {
9525 DefaultEarlyReturn = 0,
9526 PreventEarlyReturn = 1,
9527 SmallestSideEarlyReturn = 2,
9528 TrueSideEarlyReturn = 3,
9529 FalseSideEarlyReturn = 4,
9530}
9531#[repr(u8)]
9532#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9533pub enum BNSwitchRecovery {
9534 DefaultSwitchRecovery = 0,
9535 PreventSwitchRecovery = 1,
9536 AllowSwitchRecovery = 2,
9537}
9538#[repr(C)]
9539#[derive(Debug, Copy, Clone)]
9540pub struct BNDebugFunctionInfo {
9541 pub shortName: *mut ::std::os::raw::c_char,
9542 pub fullName: *mut ::std::os::raw::c_char,
9543 pub rawName: *mut ::std::os::raw::c_char,
9544 pub address: u64,
9545 pub type_: *mut BNType,
9546 pub platform: *mut BNPlatform,
9547 pub components: *mut *mut ::std::os::raw::c_char,
9548 pub componentN: usize,
9549 pub localVariables: *mut BNVariableNameAndType,
9550 pub localVariableN: usize,
9551}
9552#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9553const _: () = {
9554 ["Size of BNDebugFunctionInfo"][::std::mem::size_of::<BNDebugFunctionInfo>() - 80usize];
9555 ["Alignment of BNDebugFunctionInfo"][::std::mem::align_of::<BNDebugFunctionInfo>() - 8usize];
9556 ["Offset of field: BNDebugFunctionInfo::shortName"]
9557 [::std::mem::offset_of!(BNDebugFunctionInfo, shortName) - 0usize];
9558 ["Offset of field: BNDebugFunctionInfo::fullName"]
9559 [::std::mem::offset_of!(BNDebugFunctionInfo, fullName) - 8usize];
9560 ["Offset of field: BNDebugFunctionInfo::rawName"]
9561 [::std::mem::offset_of!(BNDebugFunctionInfo, rawName) - 16usize];
9562 ["Offset of field: BNDebugFunctionInfo::address"]
9563 [::std::mem::offset_of!(BNDebugFunctionInfo, address) - 24usize];
9564 ["Offset of field: BNDebugFunctionInfo::type_"]
9565 [::std::mem::offset_of!(BNDebugFunctionInfo, type_) - 32usize];
9566 ["Offset of field: BNDebugFunctionInfo::platform"]
9567 [::std::mem::offset_of!(BNDebugFunctionInfo, platform) - 40usize];
9568 ["Offset of field: BNDebugFunctionInfo::components"]
9569 [::std::mem::offset_of!(BNDebugFunctionInfo, components) - 48usize];
9570 ["Offset of field: BNDebugFunctionInfo::componentN"]
9571 [::std::mem::offset_of!(BNDebugFunctionInfo, componentN) - 56usize];
9572 ["Offset of field: BNDebugFunctionInfo::localVariables"]
9573 [::std::mem::offset_of!(BNDebugFunctionInfo, localVariables) - 64usize];
9574 ["Offset of field: BNDebugFunctionInfo::localVariableN"]
9575 [::std::mem::offset_of!(BNDebugFunctionInfo, localVariableN) - 72usize];
9576};
9577impl Default for BNDebugFunctionInfo {
9578 fn default() -> Self {
9579 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9580 unsafe {
9581 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9582 s.assume_init()
9583 }
9584 }
9585}
9586#[repr(C)]
9587#[derive(Debug, Copy, Clone)]
9588pub struct BNSecretsProviderCallbacks {
9589 pub context: *mut ::std::os::raw::c_void,
9590 pub hasData: ::std::option::Option<
9591 unsafe extern "C" fn(
9592 ctxt: *mut ::std::os::raw::c_void,
9593 key: *const ::std::os::raw::c_char,
9594 ) -> bool,
9595 >,
9596 pub getData: ::std::option::Option<
9597 unsafe extern "C" fn(
9598 ctxt: *mut ::std::os::raw::c_void,
9599 key: *const ::std::os::raw::c_char,
9600 ) -> *mut ::std::os::raw::c_char,
9601 >,
9602 pub storeData: ::std::option::Option<
9603 unsafe extern "C" fn(
9604 ctxt: *mut ::std::os::raw::c_void,
9605 key: *const ::std::os::raw::c_char,
9606 data: *const ::std::os::raw::c_char,
9607 ) -> bool,
9608 >,
9609 pub deleteData: ::std::option::Option<
9610 unsafe extern "C" fn(
9611 ctxt: *mut ::std::os::raw::c_void,
9612 key: *const ::std::os::raw::c_char,
9613 ) -> bool,
9614 >,
9615}
9616#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9617const _: () = {
9618 ["Size of BNSecretsProviderCallbacks"]
9619 [::std::mem::size_of::<BNSecretsProviderCallbacks>() - 40usize];
9620 ["Alignment of BNSecretsProviderCallbacks"]
9621 [::std::mem::align_of::<BNSecretsProviderCallbacks>() - 8usize];
9622 ["Offset of field: BNSecretsProviderCallbacks::context"]
9623 [::std::mem::offset_of!(BNSecretsProviderCallbacks, context) - 0usize];
9624 ["Offset of field: BNSecretsProviderCallbacks::hasData"]
9625 [::std::mem::offset_of!(BNSecretsProviderCallbacks, hasData) - 8usize];
9626 ["Offset of field: BNSecretsProviderCallbacks::getData"]
9627 [::std::mem::offset_of!(BNSecretsProviderCallbacks, getData) - 16usize];
9628 ["Offset of field: BNSecretsProviderCallbacks::storeData"]
9629 [::std::mem::offset_of!(BNSecretsProviderCallbacks, storeData) - 24usize];
9630 ["Offset of field: BNSecretsProviderCallbacks::deleteData"]
9631 [::std::mem::offset_of!(BNSecretsProviderCallbacks, deleteData) - 32usize];
9632};
9633impl Default for BNSecretsProviderCallbacks {
9634 fn default() -> Self {
9635 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9636 unsafe {
9637 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9638 s.assume_init()
9639 }
9640 }
9641}
9642#[repr(C)]
9643#[derive(Debug, Copy, Clone)]
9644pub struct BNMergedVariable {
9645 pub target: BNVariable,
9646 pub sources: *mut BNVariable,
9647 pub sourceCount: usize,
9648}
9649#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9650const _: () = {
9651 ["Size of BNMergedVariable"][::std::mem::size_of::<BNMergedVariable>() - 32usize];
9652 ["Alignment of BNMergedVariable"][::std::mem::align_of::<BNMergedVariable>() - 8usize];
9653 ["Offset of field: BNMergedVariable::target"]
9654 [::std::mem::offset_of!(BNMergedVariable, target) - 0usize];
9655 ["Offset of field: BNMergedVariable::sources"]
9656 [::std::mem::offset_of!(BNMergedVariable, sources) - 16usize];
9657 ["Offset of field: BNMergedVariable::sourceCount"]
9658 [::std::mem::offset_of!(BNMergedVariable, sourceCount) - 24usize];
9659};
9660impl Default for BNMergedVariable {
9661 fn default() -> Self {
9662 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9663 unsafe {
9664 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9665 s.assume_init()
9666 }
9667 }
9668}
9669#[repr(C)]
9670#[derive(Debug, Copy, Clone)]
9671pub struct BNEnterpriseServerCallbacks {
9672 pub context: *mut ::std::os::raw::c_void,
9673 pub licenseStatusChanged: ::std::option::Option<
9674 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, stillValid: bool),
9675 >,
9676}
9677#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9678const _: () = {
9679 ["Size of BNEnterpriseServerCallbacks"]
9680 [::std::mem::size_of::<BNEnterpriseServerCallbacks>() - 16usize];
9681 ["Alignment of BNEnterpriseServerCallbacks"]
9682 [::std::mem::align_of::<BNEnterpriseServerCallbacks>() - 8usize];
9683 ["Offset of field: BNEnterpriseServerCallbacks::context"]
9684 [::std::mem::offset_of!(BNEnterpriseServerCallbacks, context) - 0usize];
9685 ["Offset of field: BNEnterpriseServerCallbacks::licenseStatusChanged"]
9686 [::std::mem::offset_of!(BNEnterpriseServerCallbacks, licenseStatusChanged) - 8usize];
9687};
9688impl Default for BNEnterpriseServerCallbacks {
9689 fn default() -> Self {
9690 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9691 unsafe {
9692 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9693 s.assume_init()
9694 }
9695 }
9696}
9697#[repr(C)]
9698#[derive(Debug, Copy, Clone)]
9699pub struct BNTypeArchiveNotification {
9700 pub context: *mut ::std::os::raw::c_void,
9701 pub typeAdded: ::std::option::Option<
9702 unsafe extern "C" fn(
9703 ctxt: *mut ::std::os::raw::c_void,
9704 archive: *mut BNTypeArchive,
9705 id: *const ::std::os::raw::c_char,
9706 definition: *mut BNType,
9707 ),
9708 >,
9709 pub typeUpdated: ::std::option::Option<
9710 unsafe extern "C" fn(
9711 ctxt: *mut ::std::os::raw::c_void,
9712 archive: *mut BNTypeArchive,
9713 id: *const ::std::os::raw::c_char,
9714 oldDefinition: *mut BNType,
9715 newDefinition: *mut BNType,
9716 ),
9717 >,
9718 pub typeRenamed: ::std::option::Option<
9719 unsafe extern "C" fn(
9720 ctxt: *mut ::std::os::raw::c_void,
9721 archive: *mut BNTypeArchive,
9722 id: *const ::std::os::raw::c_char,
9723 oldName: *const BNQualifiedName,
9724 newName: *const BNQualifiedName,
9725 ),
9726 >,
9727 pub typeDeleted: ::std::option::Option<
9728 unsafe extern "C" fn(
9729 ctxt: *mut ::std::os::raw::c_void,
9730 archive: *mut BNTypeArchive,
9731 id: *const ::std::os::raw::c_char,
9732 definition: *mut BNType,
9733 ),
9734 >,
9735}
9736#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9737const _: () = {
9738 ["Size of BNTypeArchiveNotification"]
9739 [::std::mem::size_of::<BNTypeArchiveNotification>() - 40usize];
9740 ["Alignment of BNTypeArchiveNotification"]
9741 [::std::mem::align_of::<BNTypeArchiveNotification>() - 8usize];
9742 ["Offset of field: BNTypeArchiveNotification::context"]
9743 [::std::mem::offset_of!(BNTypeArchiveNotification, context) - 0usize];
9744 ["Offset of field: BNTypeArchiveNotification::typeAdded"]
9745 [::std::mem::offset_of!(BNTypeArchiveNotification, typeAdded) - 8usize];
9746 ["Offset of field: BNTypeArchiveNotification::typeUpdated"]
9747 [::std::mem::offset_of!(BNTypeArchiveNotification, typeUpdated) - 16usize];
9748 ["Offset of field: BNTypeArchiveNotification::typeRenamed"]
9749 [::std::mem::offset_of!(BNTypeArchiveNotification, typeRenamed) - 24usize];
9750 ["Offset of field: BNTypeArchiveNotification::typeDeleted"]
9751 [::std::mem::offset_of!(BNTypeArchiveNotification, typeDeleted) - 32usize];
9752};
9753impl Default for BNTypeArchiveNotification {
9754 fn default() -> Self {
9755 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9756 unsafe {
9757 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9758 s.assume_init()
9759 }
9760 }
9761}
9762#[repr(u8)]
9763#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9764pub enum BNTypeContainerType {
9765 AnalysisTypeContainerType = 0,
9766 AnalysisAutoTypeContainerType = 1,
9767 AnalysisUserTypeContainerType = 2,
9768 TypeLibraryTypeContainerType = 3,
9769 TypeArchiveTypeContainerType = 4,
9770 DebugInfoTypeContainerType = 5,
9771 PlatformTypeContainerType = 6,
9772 EmptyTypeContainerType = 7,
9773 OtherTypeContainerType = 8,
9774}
9775#[repr(u8)]
9776#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9777pub enum BNSyncStatus {
9778 NotSyncedSyncStatus = 0,
9779 NoChangesSyncStatus = 1,
9780 UnknownSyncStatus = 2,
9781 CanPushSyncStatus = 3,
9782 CanPullSyncStatus = 4,
9783 CanPushAndPullSyncStatus = 5,
9784 ConflictSyncStatus = 6,
9785}
9786#[repr(u8)]
9787#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9788pub enum BNBaseAddressDetectionPOISetting {
9789 POIAnalysisStringsOnly = 0,
9790 POIAnalysisFunctionsOnly = 1,
9791 POIAnalysisAll = 2,
9792}
9793#[repr(u8)]
9794#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9795pub enum BNBaseAddressDetectionPOIType {
9796 POIString = 0,
9797 POIFunction = 1,
9798 POIDataVariable = 2,
9799 POIFileStart = 3,
9800 POIFileEnd = 4,
9801}
9802#[repr(u8)]
9803#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9804pub enum BNBaseAddressDetectionConfidence {
9805 NoConfidence = 0,
9806 LowConfidence = 1,
9807 HighConfidence = 2,
9808}
9809#[repr(C)]
9810#[derive(Debug, Copy, Clone)]
9811pub struct BNBaseAddressDetectionSettings {
9812 pub Architecture: *const ::std::os::raw::c_char,
9813 pub Analysis: *const ::std::os::raw::c_char,
9814 pub MinStrlen: u32,
9815 pub Alignment: u32,
9816 pub LowerBoundary: u64,
9817 pub UpperBoundary: u64,
9818 pub POIAnalysis: BNBaseAddressDetectionPOISetting,
9819 pub MaxPointersPerCluster: u32,
9820}
9821#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9822const _: () = {
9823 ["Size of BNBaseAddressDetectionSettings"]
9824 [::std::mem::size_of::<BNBaseAddressDetectionSettings>() - 48usize];
9825 ["Alignment of BNBaseAddressDetectionSettings"]
9826 [::std::mem::align_of::<BNBaseAddressDetectionSettings>() - 8usize];
9827 ["Offset of field: BNBaseAddressDetectionSettings::Architecture"]
9828 [::std::mem::offset_of!(BNBaseAddressDetectionSettings, Architecture) - 0usize];
9829 ["Offset of field: BNBaseAddressDetectionSettings::Analysis"]
9830 [::std::mem::offset_of!(BNBaseAddressDetectionSettings, Analysis) - 8usize];
9831 ["Offset of field: BNBaseAddressDetectionSettings::MinStrlen"]
9832 [::std::mem::offset_of!(BNBaseAddressDetectionSettings, MinStrlen) - 16usize];
9833 ["Offset of field: BNBaseAddressDetectionSettings::Alignment"]
9834 [::std::mem::offset_of!(BNBaseAddressDetectionSettings, Alignment) - 20usize];
9835 ["Offset of field: BNBaseAddressDetectionSettings::LowerBoundary"]
9836 [::std::mem::offset_of!(BNBaseAddressDetectionSettings, LowerBoundary) - 24usize];
9837 ["Offset of field: BNBaseAddressDetectionSettings::UpperBoundary"]
9838 [::std::mem::offset_of!(BNBaseAddressDetectionSettings, UpperBoundary) - 32usize];
9839 ["Offset of field: BNBaseAddressDetectionSettings::POIAnalysis"]
9840 [::std::mem::offset_of!(BNBaseAddressDetectionSettings, POIAnalysis) - 40usize];
9841 ["Offset of field: BNBaseAddressDetectionSettings::MaxPointersPerCluster"]
9842 [::std::mem::offset_of!(BNBaseAddressDetectionSettings, MaxPointersPerCluster) - 44usize];
9843};
9844impl Default for BNBaseAddressDetectionSettings {
9845 fn default() -> Self {
9846 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9847 unsafe {
9848 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9849 s.assume_init()
9850 }
9851 }
9852}
9853#[repr(C)]
9854#[derive(Debug, Copy, Clone)]
9855pub struct BNBaseAddressDetectionReason {
9856 pub Pointer: u64,
9857 pub POIOffset: u64,
9858 pub POIType: BNBaseAddressDetectionPOIType,
9859}
9860#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9861const _: () = {
9862 ["Size of BNBaseAddressDetectionReason"]
9863 [::std::mem::size_of::<BNBaseAddressDetectionReason>() - 24usize];
9864 ["Alignment of BNBaseAddressDetectionReason"]
9865 [::std::mem::align_of::<BNBaseAddressDetectionReason>() - 8usize];
9866 ["Offset of field: BNBaseAddressDetectionReason::Pointer"]
9867 [::std::mem::offset_of!(BNBaseAddressDetectionReason, Pointer) - 0usize];
9868 ["Offset of field: BNBaseAddressDetectionReason::POIOffset"]
9869 [::std::mem::offset_of!(BNBaseAddressDetectionReason, POIOffset) - 8usize];
9870 ["Offset of field: BNBaseAddressDetectionReason::POIType"]
9871 [::std::mem::offset_of!(BNBaseAddressDetectionReason, POIType) - 16usize];
9872};
9873impl Default for BNBaseAddressDetectionReason {
9874 fn default() -> Self {
9875 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9876 unsafe {
9877 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9878 s.assume_init()
9879 }
9880 }
9881}
9882#[repr(C)]
9883#[derive(Debug, Default, Copy, Clone)]
9884pub struct BNBaseAddressDetectionScore {
9885 pub Score: usize,
9886 pub BaseAddress: u64,
9887}
9888#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9889const _: () = {
9890 ["Size of BNBaseAddressDetectionScore"]
9891 [::std::mem::size_of::<BNBaseAddressDetectionScore>() - 16usize];
9892 ["Alignment of BNBaseAddressDetectionScore"]
9893 [::std::mem::align_of::<BNBaseAddressDetectionScore>() - 8usize];
9894 ["Offset of field: BNBaseAddressDetectionScore::Score"]
9895 [::std::mem::offset_of!(BNBaseAddressDetectionScore, Score) - 0usize];
9896 ["Offset of field: BNBaseAddressDetectionScore::BaseAddress"]
9897 [::std::mem::offset_of!(BNBaseAddressDetectionScore, BaseAddress) - 8usize];
9898};
9899#[repr(u8)]
9900#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9901pub enum BNCollaborationPermissionLevel {
9902 AdminPermission = 1,
9903 EditPermission = 2,
9904 ViewPermission = 3,
9905}
9906#[repr(u8)]
9907#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9908pub enum BNRemoteFileType {
9909 #[doc = " \"RW\""]
9910 RawDataFileType = 0,
9911 #[doc = " \"BV\""]
9912 BinaryViewAnalysisFileType = 1,
9913 #[doc = " \"TA\""]
9914 TypeArchiveFileType = 2,
9915 #[doc = " Others"]
9916 UnknownFileType = 3,
9917}
9918#[repr(u8)]
9919#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9920pub enum BNMergeConflictDataType {
9921 TextConflictDataType = 0,
9922 JsonConflictDataType = 1,
9923 BinaryConflictDataType = 2,
9924}
9925#[repr(C)]
9926#[derive(Debug, Copy, Clone)]
9927pub struct BNAnalysisMergeConflictSplitterCallbacks {
9928 pub context: *mut ::std::os::raw::c_void,
9929 pub getName: ::std::option::Option<
9930 unsafe extern "C" fn(context: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
9931 >,
9932 pub reset: ::std::option::Option<unsafe extern "C" fn(context: *mut ::std::os::raw::c_void)>,
9933 pub finished: ::std::option::Option<unsafe extern "C" fn(context: *mut ::std::os::raw::c_void)>,
9934 pub canSplit: ::std::option::Option<
9935 unsafe extern "C" fn(
9936 context: *mut ::std::os::raw::c_void,
9937 key: *const ::std::os::raw::c_char,
9938 conflict: *const BNAnalysisMergeConflict,
9939 ) -> bool,
9940 >,
9941 pub split: ::std::option::Option<
9942 unsafe extern "C" fn(
9943 context: *mut ::std::os::raw::c_void,
9944 originalKey: *const ::std::os::raw::c_char,
9945 originalConflict: *const BNAnalysisMergeConflict,
9946 result: *mut BNKeyValueStore,
9947 newKeys: *mut *mut *mut ::std::os::raw::c_char,
9948 newConflicts: *mut *mut *mut BNAnalysisMergeConflict,
9949 newCount: *mut usize,
9950 ) -> bool,
9951 >,
9952 pub freeName: ::std::option::Option<
9953 unsafe extern "C" fn(
9954 context: *mut ::std::os::raw::c_void,
9955 name: *mut ::std::os::raw::c_char,
9956 ),
9957 >,
9958 pub freeKeyList: ::std::option::Option<
9959 unsafe extern "C" fn(
9960 context: *mut ::std::os::raw::c_void,
9961 keyList: *mut *mut ::std::os::raw::c_char,
9962 count: usize,
9963 ),
9964 >,
9965 pub freeConflictList: ::std::option::Option<
9966 unsafe extern "C" fn(
9967 context: *mut ::std::os::raw::c_void,
9968 conflictList: *mut *mut BNAnalysisMergeConflict,
9969 count: usize,
9970 ),
9971 >,
9972}
9973#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9974const _: () = {
9975 ["Size of BNAnalysisMergeConflictSplitterCallbacks"]
9976 [::std::mem::size_of::<BNAnalysisMergeConflictSplitterCallbacks>() - 72usize];
9977 ["Alignment of BNAnalysisMergeConflictSplitterCallbacks"]
9978 [::std::mem::align_of::<BNAnalysisMergeConflictSplitterCallbacks>() - 8usize];
9979 ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::context"]
9980 [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, context) - 0usize];
9981 ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::getName"]
9982 [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, getName) - 8usize];
9983 ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::reset"]
9984 [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, reset) - 16usize];
9985 ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::finished"]
9986 [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, finished) - 24usize];
9987 ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::canSplit"]
9988 [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, canSplit) - 32usize];
9989 ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::split"]
9990 [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, split) - 40usize];
9991 ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::freeName"]
9992 [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, freeName) - 48usize];
9993 ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::freeKeyList"]
9994 [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, freeKeyList) - 56usize];
9995 ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::freeConflictList"][::std::mem::offset_of!(
9996 BNAnalysisMergeConflictSplitterCallbacks,
9997 freeConflictList
9998 ) - 64usize];
9999};
10000impl Default for BNAnalysisMergeConflictSplitterCallbacks {
10001 fn default() -> Self {
10002 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10003 unsafe {
10004 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10005 s.assume_init()
10006 }
10007 }
10008}
10009#[repr(C)]
10010#[derive(Debug, Copy, Clone)]
10011pub struct BNDemanglerCallbacks {
10012 pub context: *mut ::std::os::raw::c_void,
10013 pub isMangledString: ::std::option::Option<
10014 unsafe extern "C" fn(
10015 ctxt: *mut ::std::os::raw::c_void,
10016 name: *const ::std::os::raw::c_char,
10017 ) -> bool,
10018 >,
10019 pub demangle: ::std::option::Option<
10020 unsafe extern "C" fn(
10021 ctxt: *mut ::std::os::raw::c_void,
10022 arch: *mut BNArchitecture,
10023 name: *const ::std::os::raw::c_char,
10024 outType: *mut *mut BNType,
10025 outVarName: *mut BNQualifiedName,
10026 view: *mut BNBinaryView,
10027 ) -> bool,
10028 >,
10029 pub freeVarName: ::std::option::Option<
10030 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, name: *mut BNQualifiedName),
10031 >,
10032}
10033#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10034const _: () = {
10035 ["Size of BNDemanglerCallbacks"][::std::mem::size_of::<BNDemanglerCallbacks>() - 32usize];
10036 ["Alignment of BNDemanglerCallbacks"][::std::mem::align_of::<BNDemanglerCallbacks>() - 8usize];
10037 ["Offset of field: BNDemanglerCallbacks::context"]
10038 [::std::mem::offset_of!(BNDemanglerCallbacks, context) - 0usize];
10039 ["Offset of field: BNDemanglerCallbacks::isMangledString"]
10040 [::std::mem::offset_of!(BNDemanglerCallbacks, isMangledString) - 8usize];
10041 ["Offset of field: BNDemanglerCallbacks::demangle"]
10042 [::std::mem::offset_of!(BNDemanglerCallbacks, demangle) - 16usize];
10043 ["Offset of field: BNDemanglerCallbacks::freeVarName"]
10044 [::std::mem::offset_of!(BNDemanglerCallbacks, freeVarName) - 24usize];
10045};
10046impl Default for BNDemanglerCallbacks {
10047 fn default() -> Self {
10048 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10049 unsafe {
10050 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10051 s.assume_init()
10052 }
10053 }
10054}
10055#[repr(u8)]
10056#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10057pub enum BNScopeType {
10058 OneLineScopeType = 0,
10059 HasSubScopeScopeType = 1,
10060 BlockScopeType = 2,
10061 SwitchScopeType = 3,
10062 CaseScopeType = 4,
10063}
10064#[repr(u8)]
10065#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10066pub enum BNBraceRequirement {
10067 OptionalBraces = 0,
10068 BracesNotAllowed = 1,
10069 BracesAlwaysRequired = 2,
10070}
10071#[repr(C)]
10072#[derive(Debug, Default, Copy, Clone)]
10073pub struct BNTokenEmitterExpr {
10074 pub address: u64,
10075 pub sourceOperand: u32,
10076 pub exprIndex: usize,
10077 pub instrIndex: usize,
10078}
10079#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10080const _: () = {
10081 ["Size of BNTokenEmitterExpr"][::std::mem::size_of::<BNTokenEmitterExpr>() - 32usize];
10082 ["Alignment of BNTokenEmitterExpr"][::std::mem::align_of::<BNTokenEmitterExpr>() - 8usize];
10083 ["Offset of field: BNTokenEmitterExpr::address"]
10084 [::std::mem::offset_of!(BNTokenEmitterExpr, address) - 0usize];
10085 ["Offset of field: BNTokenEmitterExpr::sourceOperand"]
10086 [::std::mem::offset_of!(BNTokenEmitterExpr, sourceOperand) - 8usize];
10087 ["Offset of field: BNTokenEmitterExpr::exprIndex"]
10088 [::std::mem::offset_of!(BNTokenEmitterExpr, exprIndex) - 16usize];
10089 ["Offset of field: BNTokenEmitterExpr::instrIndex"]
10090 [::std::mem::offset_of!(BNTokenEmitterExpr, instrIndex) - 24usize];
10091};
10092#[repr(u8)]
10093#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10094pub enum BNOperatorPrecedence {
10095 TopLevelOperatorPrecedence = 0,
10096 AssignmentOperatorPrecedence = 1,
10097 TernaryOperatorPrecedence = 2,
10098 LogicalOrOperatorPrecedence = 3,
10099 LogicalAndOperatorPrecedence = 4,
10100 BitwiseOrOperatorPrecedence = 5,
10101 BitwiseXorOperatorPrecedence = 6,
10102 BitwiseAndOperatorPrecedence = 7,
10103 EqualityOperatorPrecedence = 8,
10104 CompareOperatorPrecedence = 9,
10105 ShiftOperatorPrecedence = 10,
10106 AddOperatorPrecedence = 11,
10107 SubOperatorPrecedence = 12,
10108 MultiplyOperatorPrecedence = 13,
10109 DivideOperatorPrecedence = 14,
10110 LowUnaryOperatorPrecedence = 15,
10111 UnaryOperatorPrecedence = 16,
10112 HighUnaryOperatorPrecedence = 17,
10113 MemberAndFunctionOperatorPrecedence = 18,
10114 ScopeOperatorPrecedence = 19,
10115}
10116#[repr(u8)]
10117#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10118pub enum BNSymbolDisplayType {
10119 DisplaySymbolOnly = 0,
10120 AddressOfDataSymbols = 1,
10121 DereferenceNonDataSymbols = 2,
10122}
10123#[repr(u8)]
10124#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10125pub enum BNSymbolDisplayResult {
10126 NoSymbolAvailable = 0,
10127 DataSymbolResult = 1,
10128 OtherSymbolResult = 2,
10129}
10130#[repr(C)]
10131#[derive(Debug, Copy, Clone)]
10132pub struct BNCustomLanguageRepresentationFunction {
10133 pub context: *mut ::std::os::raw::c_void,
10134 pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
10135 pub externalRefTaken:
10136 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
10137 pub externalRefReleased:
10138 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
10139 pub initTokenEmitter: ::std::option::Option<
10140 unsafe extern "C" fn(
10141 ctxt: *mut ::std::os::raw::c_void,
10142 tokens: *mut BNHighLevelILTokenEmitter,
10143 ),
10144 >,
10145 pub getExprText: ::std::option::Option<
10146 unsafe extern "C" fn(
10147 ctxt: *mut ::std::os::raw::c_void,
10148 il: *mut BNHighLevelILFunction,
10149 exprIndex: usize,
10150 tokens: *mut BNHighLevelILTokenEmitter,
10151 settings: *mut BNDisassemblySettings,
10152 asFullAst: bool,
10153 precedence: BNOperatorPrecedence,
10154 statement: bool,
10155 ),
10156 >,
10157 pub beginLines: ::std::option::Option<
10158 unsafe extern "C" fn(
10159 ctxt: *mut ::std::os::raw::c_void,
10160 il: *mut BNHighLevelILFunction,
10161 exprIndex: usize,
10162 tokens: *mut BNHighLevelILTokenEmitter,
10163 ),
10164 >,
10165 pub endLines: ::std::option::Option<
10166 unsafe extern "C" fn(
10167 ctxt: *mut ::std::os::raw::c_void,
10168 il: *mut BNHighLevelILFunction,
10169 exprIndex: usize,
10170 tokens: *mut BNHighLevelILTokenEmitter,
10171 ),
10172 >,
10173 pub getCommentStartString: ::std::option::Option<
10174 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
10175 >,
10176 pub getCommentEndString: ::std::option::Option<
10177 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
10178 >,
10179 pub getAnnotationStartString: ::std::option::Option<
10180 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
10181 >,
10182 pub getAnnotationEndString: ::std::option::Option<
10183 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
10184 >,
10185}
10186#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10187const _: () = {
10188 ["Size of BNCustomLanguageRepresentationFunction"]
10189 [::std::mem::size_of::<BNCustomLanguageRepresentationFunction>() - 96usize];
10190 ["Alignment of BNCustomLanguageRepresentationFunction"]
10191 [::std::mem::align_of::<BNCustomLanguageRepresentationFunction>() - 8usize];
10192 ["Offset of field: BNCustomLanguageRepresentationFunction::context"]
10193 [::std::mem::offset_of!(BNCustomLanguageRepresentationFunction, context) - 0usize];
10194 ["Offset of field: BNCustomLanguageRepresentationFunction::freeObject"]
10195 [::std::mem::offset_of!(BNCustomLanguageRepresentationFunction, freeObject) - 8usize];
10196 ["Offset of field: BNCustomLanguageRepresentationFunction::externalRefTaken"][::std::mem::offset_of!(
10197 BNCustomLanguageRepresentationFunction,
10198 externalRefTaken
10199 ) - 16usize];
10200 ["Offset of field: BNCustomLanguageRepresentationFunction::externalRefReleased"][::std::mem::offset_of!(
10201 BNCustomLanguageRepresentationFunction,
10202 externalRefReleased
10203 ) - 24usize];
10204 ["Offset of field: BNCustomLanguageRepresentationFunction::initTokenEmitter"][::std::mem::offset_of!(
10205 BNCustomLanguageRepresentationFunction,
10206 initTokenEmitter
10207 ) - 32usize];
10208 ["Offset of field: BNCustomLanguageRepresentationFunction::getExprText"]
10209 [::std::mem::offset_of!(BNCustomLanguageRepresentationFunction, getExprText) - 40usize];
10210 ["Offset of field: BNCustomLanguageRepresentationFunction::beginLines"]
10211 [::std::mem::offset_of!(BNCustomLanguageRepresentationFunction, beginLines) - 48usize];
10212 ["Offset of field: BNCustomLanguageRepresentationFunction::endLines"]
10213 [::std::mem::offset_of!(BNCustomLanguageRepresentationFunction, endLines) - 56usize];
10214 ["Offset of field: BNCustomLanguageRepresentationFunction::getCommentStartString"][::std::mem::offset_of!(
10215 BNCustomLanguageRepresentationFunction,
10216 getCommentStartString
10217 ) - 64usize];
10218 ["Offset of field: BNCustomLanguageRepresentationFunction::getCommentEndString"][::std::mem::offset_of!(
10219 BNCustomLanguageRepresentationFunction,
10220 getCommentEndString
10221 ) - 72usize];
10222 ["Offset of field: BNCustomLanguageRepresentationFunction::getAnnotationStartString"][::std::mem::offset_of!(
10223 BNCustomLanguageRepresentationFunction,
10224 getAnnotationStartString
10225 )
10226 - 80usize];
10227 ["Offset of field: BNCustomLanguageRepresentationFunction::getAnnotationEndString"][::std::mem::offset_of!(
10228 BNCustomLanguageRepresentationFunction,
10229 getAnnotationEndString
10230 )
10231 - 88usize];
10232};
10233impl Default for BNCustomLanguageRepresentationFunction {
10234 fn default() -> Self {
10235 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10236 unsafe {
10237 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10238 s.assume_init()
10239 }
10240 }
10241}
10242#[repr(C)]
10243#[derive(Debug, Copy, Clone)]
10244pub struct BNCustomLanguageRepresentationFunctionType {
10245 pub context: *mut ::std::os::raw::c_void,
10246 pub create: ::std::option::Option<
10247 unsafe extern "C" fn(
10248 ctxt: *mut ::std::os::raw::c_void,
10249 arch: *mut BNArchitecture,
10250 owner: *mut BNFunction,
10251 highLevelIL: *mut BNHighLevelILFunction,
10252 ) -> *mut BNLanguageRepresentationFunction,
10253 >,
10254 pub isValid: ::std::option::Option<
10255 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView) -> bool,
10256 >,
10257 pub getTypePrinter: ::std::option::Option<
10258 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNTypePrinter,
10259 >,
10260 pub getTypeParser: ::std::option::Option<
10261 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNTypeParser,
10262 >,
10263 pub getLineFormatter: ::std::option::Option<
10264 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNLineFormatter,
10265 >,
10266 pub getFunctionTypeTokens: ::std::option::Option<
10267 unsafe extern "C" fn(
10268 ctxt: *mut ::std::os::raw::c_void,
10269 func: *mut BNFunction,
10270 settings: *mut BNDisassemblySettings,
10271 count: *mut usize,
10272 ) -> *mut BNDisassemblyTextLine,
10273 >,
10274 pub freeLines: ::std::option::Option<
10275 unsafe extern "C" fn(
10276 ctxt: *mut ::std::os::raw::c_void,
10277 lines: *mut BNDisassemblyTextLine,
10278 count: usize,
10279 ),
10280 >,
10281}
10282#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10283const _: () = {
10284 ["Size of BNCustomLanguageRepresentationFunctionType"]
10285 [::std::mem::size_of::<BNCustomLanguageRepresentationFunctionType>() - 64usize];
10286 ["Alignment of BNCustomLanguageRepresentationFunctionType"]
10287 [::std::mem::align_of::<BNCustomLanguageRepresentationFunctionType>() - 8usize];
10288 ["Offset of field: BNCustomLanguageRepresentationFunctionType::context"]
10289 [::std::mem::offset_of!(BNCustomLanguageRepresentationFunctionType, context) - 0usize];
10290 ["Offset of field: BNCustomLanguageRepresentationFunctionType::create"]
10291 [::std::mem::offset_of!(BNCustomLanguageRepresentationFunctionType, create) - 8usize];
10292 ["Offset of field: BNCustomLanguageRepresentationFunctionType::isValid"]
10293 [::std::mem::offset_of!(BNCustomLanguageRepresentationFunctionType, isValid) - 16usize];
10294 ["Offset of field: BNCustomLanguageRepresentationFunctionType::getTypePrinter"][::std::mem::offset_of!(
10295 BNCustomLanguageRepresentationFunctionType,
10296 getTypePrinter
10297 ) - 24usize];
10298 ["Offset of field: BNCustomLanguageRepresentationFunctionType::getTypeParser"][::std::mem::offset_of!(
10299 BNCustomLanguageRepresentationFunctionType,
10300 getTypeParser
10301 ) - 32usize];
10302 ["Offset of field: BNCustomLanguageRepresentationFunctionType::getLineFormatter"][::std::mem::offset_of!(
10303 BNCustomLanguageRepresentationFunctionType,
10304 getLineFormatter
10305 ) - 40usize];
10306 ["Offset of field: BNCustomLanguageRepresentationFunctionType::getFunctionTypeTokens"][::std::mem::offset_of!(
10307 BNCustomLanguageRepresentationFunctionType,
10308 getFunctionTypeTokens
10309 )
10310 - 48usize];
10311 ["Offset of field: BNCustomLanguageRepresentationFunctionType::freeLines"]
10312 [::std::mem::offset_of!(BNCustomLanguageRepresentationFunctionType, freeLines) - 56usize];
10313};
10314impl Default for BNCustomLanguageRepresentationFunctionType {
10315 fn default() -> Self {
10316 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10317 unsafe {
10318 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10319 s.assume_init()
10320 }
10321 }
10322}
10323#[repr(u8)]
10324#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10325pub enum BNBuiltinType {
10326 BuiltinNone = 0,
10327 BuiltinMemcpy = 1,
10328 BuiltinMemset = 2,
10329 BuiltinStrncpy = 3,
10330 BuiltinStrcpy = 4,
10331 BuiltinWcscpy = 5,
10332 BuiltinWmemcpy = 6,
10333}
10334#[repr(C)]
10335#[derive(Debug, Default, Copy, Clone)]
10336pub struct BNSegmentInfo {
10337 pub start: u64,
10338 pub length: u64,
10339 pub dataOffset: u64,
10340 pub dataLength: u64,
10341 pub flags: u32,
10342}
10343#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10344const _: () = {
10345 ["Size of BNSegmentInfo"][::std::mem::size_of::<BNSegmentInfo>() - 40usize];
10346 ["Alignment of BNSegmentInfo"][::std::mem::align_of::<BNSegmentInfo>() - 8usize];
10347 ["Offset of field: BNSegmentInfo::start"]
10348 [::std::mem::offset_of!(BNSegmentInfo, start) - 0usize];
10349 ["Offset of field: BNSegmentInfo::length"]
10350 [::std::mem::offset_of!(BNSegmentInfo, length) - 8usize];
10351 ["Offset of field: BNSegmentInfo::dataOffset"]
10352 [::std::mem::offset_of!(BNSegmentInfo, dataOffset) - 16usize];
10353 ["Offset of field: BNSegmentInfo::dataLength"]
10354 [::std::mem::offset_of!(BNSegmentInfo, dataLength) - 24usize];
10355 ["Offset of field: BNSegmentInfo::flags"]
10356 [::std::mem::offset_of!(BNSegmentInfo, flags) - 32usize];
10357};
10358#[repr(C)]
10359#[derive(Debug, Copy, Clone)]
10360pub struct BNSectionInfo {
10361 pub name: *const ::std::os::raw::c_char,
10362 pub start: u64,
10363 pub length: u64,
10364 pub semantics: BNSectionSemantics,
10365 pub type_: *const ::std::os::raw::c_char,
10366 pub align: u64,
10367 pub entrySize: u64,
10368 pub linkedSection: *const ::std::os::raw::c_char,
10369 pub infoSection: *const ::std::os::raw::c_char,
10370 pub infoData: u64,
10371}
10372#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10373const _: () = {
10374 ["Size of BNSectionInfo"][::std::mem::size_of::<BNSectionInfo>() - 80usize];
10375 ["Alignment of BNSectionInfo"][::std::mem::align_of::<BNSectionInfo>() - 8usize];
10376 ["Offset of field: BNSectionInfo::name"][::std::mem::offset_of!(BNSectionInfo, name) - 0usize];
10377 ["Offset of field: BNSectionInfo::start"]
10378 [::std::mem::offset_of!(BNSectionInfo, start) - 8usize];
10379 ["Offset of field: BNSectionInfo::length"]
10380 [::std::mem::offset_of!(BNSectionInfo, length) - 16usize];
10381 ["Offset of field: BNSectionInfo::semantics"]
10382 [::std::mem::offset_of!(BNSectionInfo, semantics) - 24usize];
10383 ["Offset of field: BNSectionInfo::type_"]
10384 [::std::mem::offset_of!(BNSectionInfo, type_) - 32usize];
10385 ["Offset of field: BNSectionInfo::align"]
10386 [::std::mem::offset_of!(BNSectionInfo, align) - 40usize];
10387 ["Offset of field: BNSectionInfo::entrySize"]
10388 [::std::mem::offset_of!(BNSectionInfo, entrySize) - 48usize];
10389 ["Offset of field: BNSectionInfo::linkedSection"]
10390 [::std::mem::offset_of!(BNSectionInfo, linkedSection) - 56usize];
10391 ["Offset of field: BNSectionInfo::infoSection"]
10392 [::std::mem::offset_of!(BNSectionInfo, infoSection) - 64usize];
10393 ["Offset of field: BNSectionInfo::infoData"]
10394 [::std::mem::offset_of!(BNSectionInfo, infoData) - 72usize];
10395};
10396impl Default for BNSectionInfo {
10397 fn default() -> Self {
10398 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10399 unsafe {
10400 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10401 s.assume_init()
10402 }
10403 }
10404}
10405#[repr(C)]
10406#[derive(Debug, Copy, Clone)]
10407pub struct BNMemoryRegionInfo {
10408 pub name: *mut ::std::os::raw::c_char,
10409 pub displayName: *mut ::std::os::raw::c_char,
10410 pub start: u64,
10411 pub length: u64,
10412 pub flags: u32,
10413 pub enabled: bool,
10414 pub rebaseable: bool,
10415 pub fill: u8,
10416 pub hasTarget: bool,
10417 pub absoluteAddressMode: bool,
10418 pub local: bool,
10419}
10420#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10421const _: () = {
10422 ["Size of BNMemoryRegionInfo"][::std::mem::size_of::<BNMemoryRegionInfo>() - 48usize];
10423 ["Alignment of BNMemoryRegionInfo"][::std::mem::align_of::<BNMemoryRegionInfo>() - 8usize];
10424 ["Offset of field: BNMemoryRegionInfo::name"]
10425 [::std::mem::offset_of!(BNMemoryRegionInfo, name) - 0usize];
10426 ["Offset of field: BNMemoryRegionInfo::displayName"]
10427 [::std::mem::offset_of!(BNMemoryRegionInfo, displayName) - 8usize];
10428 ["Offset of field: BNMemoryRegionInfo::start"]
10429 [::std::mem::offset_of!(BNMemoryRegionInfo, start) - 16usize];
10430 ["Offset of field: BNMemoryRegionInfo::length"]
10431 [::std::mem::offset_of!(BNMemoryRegionInfo, length) - 24usize];
10432 ["Offset of field: BNMemoryRegionInfo::flags"]
10433 [::std::mem::offset_of!(BNMemoryRegionInfo, flags) - 32usize];
10434 ["Offset of field: BNMemoryRegionInfo::enabled"]
10435 [::std::mem::offset_of!(BNMemoryRegionInfo, enabled) - 36usize];
10436 ["Offset of field: BNMemoryRegionInfo::rebaseable"]
10437 [::std::mem::offset_of!(BNMemoryRegionInfo, rebaseable) - 37usize];
10438 ["Offset of field: BNMemoryRegionInfo::fill"]
10439 [::std::mem::offset_of!(BNMemoryRegionInfo, fill) - 38usize];
10440 ["Offset of field: BNMemoryRegionInfo::hasTarget"]
10441 [::std::mem::offset_of!(BNMemoryRegionInfo, hasTarget) - 39usize];
10442 ["Offset of field: BNMemoryRegionInfo::absoluteAddressMode"]
10443 [::std::mem::offset_of!(BNMemoryRegionInfo, absoluteAddressMode) - 40usize];
10444 ["Offset of field: BNMemoryRegionInfo::local"]
10445 [::std::mem::offset_of!(BNMemoryRegionInfo, local) - 41usize];
10446};
10447impl Default for BNMemoryRegionInfo {
10448 fn default() -> Self {
10449 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10450 unsafe {
10451 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10452 s.assume_init()
10453 }
10454 }
10455}
10456#[repr(C)]
10457#[derive(Debug, Copy, Clone)]
10458pub struct BNResolvedMemoryRange {
10459 pub start: u64,
10460 pub length: u64,
10461 pub regions: *mut BNMemoryRegionInfo,
10462 pub regionCount: usize,
10463}
10464#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10465const _: () = {
10466 ["Size of BNResolvedMemoryRange"][::std::mem::size_of::<BNResolvedMemoryRange>() - 32usize];
10467 ["Alignment of BNResolvedMemoryRange"]
10468 [::std::mem::align_of::<BNResolvedMemoryRange>() - 8usize];
10469 ["Offset of field: BNResolvedMemoryRange::start"]
10470 [::std::mem::offset_of!(BNResolvedMemoryRange, start) - 0usize];
10471 ["Offset of field: BNResolvedMemoryRange::length"]
10472 [::std::mem::offset_of!(BNResolvedMemoryRange, length) - 8usize];
10473 ["Offset of field: BNResolvedMemoryRange::regions"]
10474 [::std::mem::offset_of!(BNResolvedMemoryRange, regions) - 16usize];
10475 ["Offset of field: BNResolvedMemoryRange::regionCount"]
10476 [::std::mem::offset_of!(BNResolvedMemoryRange, regionCount) - 24usize];
10477};
10478impl Default for BNResolvedMemoryRange {
10479 fn default() -> Self {
10480 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10481 unsafe {
10482 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10483 s.assume_init()
10484 }
10485 }
10486}
10487pub type BNCollaborationAnalysisConflictHandler = ::std::option::Option<
10488 unsafe extern "C" fn(
10489 arg1: *mut ::std::os::raw::c_void,
10490 keys: *mut *const ::std::os::raw::c_char,
10491 conflicts: *mut *mut BNAnalysisMergeConflict,
10492 conflictCount: usize,
10493 ) -> bool,
10494>;
10495pub type BNCollaborationNameChangesetFunction = ::std::option::Option<
10496 unsafe extern "C" fn(
10497 arg1: *mut ::std::os::raw::c_void,
10498 arg2: *mut BNCollaborationChangeset,
10499 ) -> bool,
10500>;
10501#[repr(C)]
10502#[derive(Debug, Copy, Clone)]
10503pub struct BNFirmwareNinjaDevice {
10504 pub name: *mut ::std::os::raw::c_char,
10505 pub start: u64,
10506 pub end: u64,
10507 pub info: *mut ::std::os::raw::c_char,
10508}
10509#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10510const _: () = {
10511 ["Size of BNFirmwareNinjaDevice"][::std::mem::size_of::<BNFirmwareNinjaDevice>() - 32usize];
10512 ["Alignment of BNFirmwareNinjaDevice"]
10513 [::std::mem::align_of::<BNFirmwareNinjaDevice>() - 8usize];
10514 ["Offset of field: BNFirmwareNinjaDevice::name"]
10515 [::std::mem::offset_of!(BNFirmwareNinjaDevice, name) - 0usize];
10516 ["Offset of field: BNFirmwareNinjaDevice::start"]
10517 [::std::mem::offset_of!(BNFirmwareNinjaDevice, start) - 8usize];
10518 ["Offset of field: BNFirmwareNinjaDevice::end"]
10519 [::std::mem::offset_of!(BNFirmwareNinjaDevice, end) - 16usize];
10520 ["Offset of field: BNFirmwareNinjaDevice::info"]
10521 [::std::mem::offset_of!(BNFirmwareNinjaDevice, info) - 24usize];
10522};
10523impl Default for BNFirmwareNinjaDevice {
10524 fn default() -> Self {
10525 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10526 unsafe {
10527 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10528 s.assume_init()
10529 }
10530 }
10531}
10532#[repr(u8)]
10533#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10534pub enum BNFirmwareNinjaSectionType {
10535 CodeSectionType = 0,
10536 DataSectionType = 1,
10537 CompressionSectionType = 2,
10538 PaddingSectionType = 3,
10539}
10540#[repr(u8)]
10541#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10542pub enum BNFirmwareNinjaSectionAnalysisMode {
10543 DefaultSectionAnalysisMode = 0,
10544 IgnorePaddingSectionAnalysisMode = 1,
10545 DetectStringsSectionAnalysisMode = 2,
10546}
10547#[repr(C)]
10548#[derive(Debug, Copy, Clone)]
10549pub struct BNFirmwareNinjaSection {
10550 pub type_: BNFirmwareNinjaSectionType,
10551 pub start: u64,
10552 pub end: u64,
10553 pub entropy: f32,
10554}
10555#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10556const _: () = {
10557 ["Size of BNFirmwareNinjaSection"][::std::mem::size_of::<BNFirmwareNinjaSection>() - 32usize];
10558 ["Alignment of BNFirmwareNinjaSection"]
10559 [::std::mem::align_of::<BNFirmwareNinjaSection>() - 8usize];
10560 ["Offset of field: BNFirmwareNinjaSection::type_"]
10561 [::std::mem::offset_of!(BNFirmwareNinjaSection, type_) - 0usize];
10562 ["Offset of field: BNFirmwareNinjaSection::start"]
10563 [::std::mem::offset_of!(BNFirmwareNinjaSection, start) - 8usize];
10564 ["Offset of field: BNFirmwareNinjaSection::end"]
10565 [::std::mem::offset_of!(BNFirmwareNinjaSection, end) - 16usize];
10566 ["Offset of field: BNFirmwareNinjaSection::entropy"]
10567 [::std::mem::offset_of!(BNFirmwareNinjaSection, entropy) - 24usize];
10568};
10569impl Default for BNFirmwareNinjaSection {
10570 fn default() -> Self {
10571 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10572 unsafe {
10573 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10574 s.assume_init()
10575 }
10576 }
10577}
10578#[repr(u8)]
10579#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10580pub enum BNFirmwareNinjaMemoryHeuristic {
10581 NoMemoryHeuristic = 0,
10582 HasReadBarrierMemoryHeuristic = 1,
10583 HasWriteBarrierMemoryHeuristic = 2,
10584 StoreToOOBMemoryMemoryHeuristic = 3,
10585 LoadFromOOBMemoryMemoryHeuristic = 4,
10586 RepeatLoadStoreMemoryHeuristic = 5,
10587 CallParamOOBPointerMemoryHeuristic = 6,
10588}
10589#[repr(u8)]
10590#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10591pub enum BNFirmwareNinjaMemoryAccessType {
10592 NoMemoryAccessType = 0,
10593 ReadMemoryAccessType = 1,
10594 WriteMemoryAccessType = 2,
10595}
10596#[repr(C)]
10597#[derive(Debug, Copy, Clone)]
10598pub struct BNFirmwareNinjaMemoryAccess {
10599 pub instrAddress: u64,
10600 pub memAddress: BNRegisterValue,
10601 pub heuristic: BNFirmwareNinjaMemoryHeuristic,
10602 pub type_: BNFirmwareNinjaMemoryAccessType,
10603 pub value: BNRegisterValue,
10604}
10605#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10606const _: () = {
10607 ["Size of BNFirmwareNinjaMemoryAccess"]
10608 [::std::mem::size_of::<BNFirmwareNinjaMemoryAccess>() - 80usize];
10609 ["Alignment of BNFirmwareNinjaMemoryAccess"]
10610 [::std::mem::align_of::<BNFirmwareNinjaMemoryAccess>() - 8usize];
10611 ["Offset of field: BNFirmwareNinjaMemoryAccess::instrAddress"]
10612 [::std::mem::offset_of!(BNFirmwareNinjaMemoryAccess, instrAddress) - 0usize];
10613 ["Offset of field: BNFirmwareNinjaMemoryAccess::memAddress"]
10614 [::std::mem::offset_of!(BNFirmwareNinjaMemoryAccess, memAddress) - 8usize];
10615 ["Offset of field: BNFirmwareNinjaMemoryAccess::heuristic"]
10616 [::std::mem::offset_of!(BNFirmwareNinjaMemoryAccess, heuristic) - 40usize];
10617 ["Offset of field: BNFirmwareNinjaMemoryAccess::type_"]
10618 [::std::mem::offset_of!(BNFirmwareNinjaMemoryAccess, type_) - 41usize];
10619 ["Offset of field: BNFirmwareNinjaMemoryAccess::value"]
10620 [::std::mem::offset_of!(BNFirmwareNinjaMemoryAccess, value) - 48usize];
10621};
10622impl Default for BNFirmwareNinjaMemoryAccess {
10623 fn default() -> Self {
10624 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10625 unsafe {
10626 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10627 s.assume_init()
10628 }
10629 }
10630}
10631#[repr(C)]
10632#[derive(Debug, Copy, Clone)]
10633pub struct BNFirmwareNinjaFunctionMemoryAccesses {
10634 pub start: u64,
10635 pub count: usize,
10636 pub accesses: *mut *mut BNFirmwareNinjaMemoryAccess,
10637}
10638#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10639const _: () = {
10640 ["Size of BNFirmwareNinjaFunctionMemoryAccesses"]
10641 [::std::mem::size_of::<BNFirmwareNinjaFunctionMemoryAccesses>() - 24usize];
10642 ["Alignment of BNFirmwareNinjaFunctionMemoryAccesses"]
10643 [::std::mem::align_of::<BNFirmwareNinjaFunctionMemoryAccesses>() - 8usize];
10644 ["Offset of field: BNFirmwareNinjaFunctionMemoryAccesses::start"]
10645 [::std::mem::offset_of!(BNFirmwareNinjaFunctionMemoryAccesses, start) - 0usize];
10646 ["Offset of field: BNFirmwareNinjaFunctionMemoryAccesses::count"]
10647 [::std::mem::offset_of!(BNFirmwareNinjaFunctionMemoryAccesses, count) - 8usize];
10648 ["Offset of field: BNFirmwareNinjaFunctionMemoryAccesses::accesses"]
10649 [::std::mem::offset_of!(BNFirmwareNinjaFunctionMemoryAccesses, accesses) - 16usize];
10650};
10651impl Default for BNFirmwareNinjaFunctionMemoryAccesses {
10652 fn default() -> Self {
10653 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10654 unsafe {
10655 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10656 s.assume_init()
10657 }
10658 }
10659}
10660#[repr(C)]
10661#[derive(Debug, Copy, Clone)]
10662pub struct BNFirmwareNinjaDeviceAccesses {
10663 pub name: *mut ::std::os::raw::c_char,
10664 pub total: usize,
10665 pub unique: usize,
10666}
10667#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10668const _: () = {
10669 ["Size of BNFirmwareNinjaDeviceAccesses"]
10670 [::std::mem::size_of::<BNFirmwareNinjaDeviceAccesses>() - 24usize];
10671 ["Alignment of BNFirmwareNinjaDeviceAccesses"]
10672 [::std::mem::align_of::<BNFirmwareNinjaDeviceAccesses>() - 8usize];
10673 ["Offset of field: BNFirmwareNinjaDeviceAccesses::name"]
10674 [::std::mem::offset_of!(BNFirmwareNinjaDeviceAccesses, name) - 0usize];
10675 ["Offset of field: BNFirmwareNinjaDeviceAccesses::total"]
10676 [::std::mem::offset_of!(BNFirmwareNinjaDeviceAccesses, total) - 8usize];
10677 ["Offset of field: BNFirmwareNinjaDeviceAccesses::unique"]
10678 [::std::mem::offset_of!(BNFirmwareNinjaDeviceAccesses, unique) - 16usize];
10679};
10680impl Default for BNFirmwareNinjaDeviceAccesses {
10681 fn default() -> Self {
10682 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10683 unsafe {
10684 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10685 s.assume_init()
10686 }
10687 }
10688}
10689#[repr(C)]
10690#[derive(Debug, Copy, Clone)]
10691pub struct BNLineFormatterSettings {
10692 pub highLevelIL: *mut BNHighLevelILFunction,
10693 pub desiredLineLength: usize,
10694 pub minimumContentLength: usize,
10695 pub tabWidth: usize,
10696 pub maximumAnnotationLength: usize,
10697 pub stringWrappingWidth: usize,
10698 pub languageName: *mut ::std::os::raw::c_char,
10699 pub commentStartString: *mut ::std::os::raw::c_char,
10700 pub commentEndString: *mut ::std::os::raw::c_char,
10701 pub annotationStartString: *mut ::std::os::raw::c_char,
10702 pub annotationEndString: *mut ::std::os::raw::c_char,
10703}
10704#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10705const _: () = {
10706 ["Size of BNLineFormatterSettings"][::std::mem::size_of::<BNLineFormatterSettings>() - 88usize];
10707 ["Alignment of BNLineFormatterSettings"]
10708 [::std::mem::align_of::<BNLineFormatterSettings>() - 8usize];
10709 ["Offset of field: BNLineFormatterSettings::highLevelIL"]
10710 [::std::mem::offset_of!(BNLineFormatterSettings, highLevelIL) - 0usize];
10711 ["Offset of field: BNLineFormatterSettings::desiredLineLength"]
10712 [::std::mem::offset_of!(BNLineFormatterSettings, desiredLineLength) - 8usize];
10713 ["Offset of field: BNLineFormatterSettings::minimumContentLength"]
10714 [::std::mem::offset_of!(BNLineFormatterSettings, minimumContentLength) - 16usize];
10715 ["Offset of field: BNLineFormatterSettings::tabWidth"]
10716 [::std::mem::offset_of!(BNLineFormatterSettings, tabWidth) - 24usize];
10717 ["Offset of field: BNLineFormatterSettings::maximumAnnotationLength"]
10718 [::std::mem::offset_of!(BNLineFormatterSettings, maximumAnnotationLength) - 32usize];
10719 ["Offset of field: BNLineFormatterSettings::stringWrappingWidth"]
10720 [::std::mem::offset_of!(BNLineFormatterSettings, stringWrappingWidth) - 40usize];
10721 ["Offset of field: BNLineFormatterSettings::languageName"]
10722 [::std::mem::offset_of!(BNLineFormatterSettings, languageName) - 48usize];
10723 ["Offset of field: BNLineFormatterSettings::commentStartString"]
10724 [::std::mem::offset_of!(BNLineFormatterSettings, commentStartString) - 56usize];
10725 ["Offset of field: BNLineFormatterSettings::commentEndString"]
10726 [::std::mem::offset_of!(BNLineFormatterSettings, commentEndString) - 64usize];
10727 ["Offset of field: BNLineFormatterSettings::annotationStartString"]
10728 [::std::mem::offset_of!(BNLineFormatterSettings, annotationStartString) - 72usize];
10729 ["Offset of field: BNLineFormatterSettings::annotationEndString"]
10730 [::std::mem::offset_of!(BNLineFormatterSettings, annotationEndString) - 80usize];
10731};
10732impl Default for BNLineFormatterSettings {
10733 fn default() -> Self {
10734 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10735 unsafe {
10736 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10737 s.assume_init()
10738 }
10739 }
10740}
10741#[repr(C)]
10742#[derive(Debug, Copy, Clone)]
10743pub struct BNCustomLineFormatter {
10744 pub context: *mut ::std::os::raw::c_void,
10745 pub formatLines: ::std::option::Option<
10746 unsafe extern "C" fn(
10747 ctxt: *mut ::std::os::raw::c_void,
10748 inLines: *mut BNDisassemblyTextLine,
10749 inCount: usize,
10750 settings: *const BNLineFormatterSettings,
10751 outCount: *mut usize,
10752 ) -> *mut BNDisassemblyTextLine,
10753 >,
10754 pub freeLines: ::std::option::Option<
10755 unsafe extern "C" fn(
10756 ctxt: *mut ::std::os::raw::c_void,
10757 lines: *mut BNDisassemblyTextLine,
10758 count: usize,
10759 ),
10760 >,
10761}
10762#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10763const _: () = {
10764 ["Size of BNCustomLineFormatter"][::std::mem::size_of::<BNCustomLineFormatter>() - 24usize];
10765 ["Alignment of BNCustomLineFormatter"]
10766 [::std::mem::align_of::<BNCustomLineFormatter>() - 8usize];
10767 ["Offset of field: BNCustomLineFormatter::context"]
10768 [::std::mem::offset_of!(BNCustomLineFormatter, context) - 0usize];
10769 ["Offset of field: BNCustomLineFormatter::formatLines"]
10770 [::std::mem::offset_of!(BNCustomLineFormatter, formatLines) - 8usize];
10771 ["Offset of field: BNCustomLineFormatter::freeLines"]
10772 [::std::mem::offset_of!(BNCustomLineFormatter, freeLines) - 16usize];
10773};
10774impl Default for BNCustomLineFormatter {
10775 fn default() -> Self {
10776 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10777 unsafe {
10778 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10779 s.assume_init()
10780 }
10781 }
10782}
10783#[repr(C)]
10784#[derive(Debug, Copy, Clone)]
10785pub struct BNRenderLayerCallbacks {
10786 pub context: *mut ::std::os::raw::c_void,
10787 pub applyToFlowGraph: ::std::option::Option<
10788 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, graph: *mut BNFlowGraph),
10789 >,
10790 pub applyToLinearViewObject: ::std::option::Option<
10791 unsafe extern "C" fn(
10792 ctxt: *mut ::std::os::raw::c_void,
10793 obj: *mut BNLinearViewObject,
10794 prev: *mut BNLinearViewObject,
10795 next: *mut BNLinearViewObject,
10796 inLines: *mut BNLinearDisassemblyLine,
10797 inLineCount: usize,
10798 outLines: *mut *mut BNLinearDisassemblyLine,
10799 outLineCount: *mut usize,
10800 ),
10801 >,
10802 pub freeLines: ::std::option::Option<
10803 unsafe extern "C" fn(
10804 ctxt: *mut ::std::os::raw::c_void,
10805 lines: *mut BNLinearDisassemblyLine,
10806 count: usize,
10807 ),
10808 >,
10809}
10810#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10811const _: () = {
10812 ["Size of BNRenderLayerCallbacks"][::std::mem::size_of::<BNRenderLayerCallbacks>() - 32usize];
10813 ["Alignment of BNRenderLayerCallbacks"]
10814 [::std::mem::align_of::<BNRenderLayerCallbacks>() - 8usize];
10815 ["Offset of field: BNRenderLayerCallbacks::context"]
10816 [::std::mem::offset_of!(BNRenderLayerCallbacks, context) - 0usize];
10817 ["Offset of field: BNRenderLayerCallbacks::applyToFlowGraph"]
10818 [::std::mem::offset_of!(BNRenderLayerCallbacks, applyToFlowGraph) - 8usize];
10819 ["Offset of field: BNRenderLayerCallbacks::applyToLinearViewObject"]
10820 [::std::mem::offset_of!(BNRenderLayerCallbacks, applyToLinearViewObject) - 16usize];
10821 ["Offset of field: BNRenderLayerCallbacks::freeLines"]
10822 [::std::mem::offset_of!(BNRenderLayerCallbacks, freeLines) - 24usize];
10823};
10824impl Default for BNRenderLayerCallbacks {
10825 fn default() -> Self {
10826 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10827 unsafe {
10828 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10829 s.assume_init()
10830 }
10831 }
10832}
10833#[repr(u8)]
10834#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10835pub enum BNRenderLayerDefaultEnableState {
10836 DisabledByDefaultRenderLayerDefaultEnableState = 0,
10837 EnabledByDefaultRenderLayerDefaultEnableState = 1,
10838 AlwaysEnabledRenderLayerDefaultEnableState = 2,
10839}
10840#[repr(C)]
10841#[derive(Debug, Default, Copy, Clone)]
10842pub struct BNExprMapInfo {
10843 pub lowerIndex: usize,
10844 pub higherIndex: usize,
10845 pub mapLowerToHigher: bool,
10846 pub mapHigherToLower: bool,
10847 pub lowerToHigherDirect: bool,
10848 pub higherToLowerDirect: bool,
10849}
10850#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10851const _: () = {
10852 ["Size of BNExprMapInfo"][::std::mem::size_of::<BNExprMapInfo>() - 24usize];
10853 ["Alignment of BNExprMapInfo"][::std::mem::align_of::<BNExprMapInfo>() - 8usize];
10854 ["Offset of field: BNExprMapInfo::lowerIndex"]
10855 [::std::mem::offset_of!(BNExprMapInfo, lowerIndex) - 0usize];
10856 ["Offset of field: BNExprMapInfo::higherIndex"]
10857 [::std::mem::offset_of!(BNExprMapInfo, higherIndex) - 8usize];
10858 ["Offset of field: BNExprMapInfo::mapLowerToHigher"]
10859 [::std::mem::offset_of!(BNExprMapInfo, mapLowerToHigher) - 16usize];
10860 ["Offset of field: BNExprMapInfo::mapHigherToLower"]
10861 [::std::mem::offset_of!(BNExprMapInfo, mapHigherToLower) - 17usize];
10862 ["Offset of field: BNExprMapInfo::lowerToHigherDirect"]
10863 [::std::mem::offset_of!(BNExprMapInfo, lowerToHigherDirect) - 18usize];
10864 ["Offset of field: BNExprMapInfo::higherToLowerDirect"]
10865 [::std::mem::offset_of!(BNExprMapInfo, higherToLowerDirect) - 19usize];
10866};
10867#[repr(C)]
10868#[derive(Debug, Copy, Clone)]
10869pub struct BNAllTypeReferences {
10870 pub codeRefs: *mut BNReferenceSource,
10871 pub codeRefCount: usize,
10872 pub dataRefs: *mut u64,
10873 pub dataRefCount: usize,
10874 pub typeRefs: *mut BNTypeReferenceSource,
10875 pub typeRefCount: usize,
10876}
10877#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10878const _: () = {
10879 ["Size of BNAllTypeReferences"][::std::mem::size_of::<BNAllTypeReferences>() - 48usize];
10880 ["Alignment of BNAllTypeReferences"][::std::mem::align_of::<BNAllTypeReferences>() - 8usize];
10881 ["Offset of field: BNAllTypeReferences::codeRefs"]
10882 [::std::mem::offset_of!(BNAllTypeReferences, codeRefs) - 0usize];
10883 ["Offset of field: BNAllTypeReferences::codeRefCount"]
10884 [::std::mem::offset_of!(BNAllTypeReferences, codeRefCount) - 8usize];
10885 ["Offset of field: BNAllTypeReferences::dataRefs"]
10886 [::std::mem::offset_of!(BNAllTypeReferences, dataRefs) - 16usize];
10887 ["Offset of field: BNAllTypeReferences::dataRefCount"]
10888 [::std::mem::offset_of!(BNAllTypeReferences, dataRefCount) - 24usize];
10889 ["Offset of field: BNAllTypeReferences::typeRefs"]
10890 [::std::mem::offset_of!(BNAllTypeReferences, typeRefs) - 32usize];
10891 ["Offset of field: BNAllTypeReferences::typeRefCount"]
10892 [::std::mem::offset_of!(BNAllTypeReferences, typeRefCount) - 40usize];
10893};
10894impl Default for BNAllTypeReferences {
10895 fn default() -> Self {
10896 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10897 unsafe {
10898 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10899 s.assume_init()
10900 }
10901 }
10902}
10903#[repr(C)]
10904#[derive(Debug, Copy, Clone)]
10905pub struct BNAllTypeFieldReferences {
10906 pub codeRefs: *mut BNTypeFieldReference,
10907 pub codeRefCount: usize,
10908 pub dataRefsTo: *mut u64,
10909 pub dataRefToCount: usize,
10910 pub dataRefsFrom: *mut u64,
10911 pub dataRefFromCount: usize,
10912 pub typeRefs: *mut BNTypeReferenceSource,
10913 pub typeRefCount: usize,
10914}
10915#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10916const _: () = {
10917 ["Size of BNAllTypeFieldReferences"]
10918 [::std::mem::size_of::<BNAllTypeFieldReferences>() - 64usize];
10919 ["Alignment of BNAllTypeFieldReferences"]
10920 [::std::mem::align_of::<BNAllTypeFieldReferences>() - 8usize];
10921 ["Offset of field: BNAllTypeFieldReferences::codeRefs"]
10922 [::std::mem::offset_of!(BNAllTypeFieldReferences, codeRefs) - 0usize];
10923 ["Offset of field: BNAllTypeFieldReferences::codeRefCount"]
10924 [::std::mem::offset_of!(BNAllTypeFieldReferences, codeRefCount) - 8usize];
10925 ["Offset of field: BNAllTypeFieldReferences::dataRefsTo"]
10926 [::std::mem::offset_of!(BNAllTypeFieldReferences, dataRefsTo) - 16usize];
10927 ["Offset of field: BNAllTypeFieldReferences::dataRefToCount"]
10928 [::std::mem::offset_of!(BNAllTypeFieldReferences, dataRefToCount) - 24usize];
10929 ["Offset of field: BNAllTypeFieldReferences::dataRefsFrom"]
10930 [::std::mem::offset_of!(BNAllTypeFieldReferences, dataRefsFrom) - 32usize];
10931 ["Offset of field: BNAllTypeFieldReferences::dataRefFromCount"]
10932 [::std::mem::offset_of!(BNAllTypeFieldReferences, dataRefFromCount) - 40usize];
10933 ["Offset of field: BNAllTypeFieldReferences::typeRefs"]
10934 [::std::mem::offset_of!(BNAllTypeFieldReferences, typeRefs) - 48usize];
10935 ["Offset of field: BNAllTypeFieldReferences::typeRefCount"]
10936 [::std::mem::offset_of!(BNAllTypeFieldReferences, typeRefCount) - 56usize];
10937};
10938impl Default for BNAllTypeFieldReferences {
10939 fn default() -> Self {
10940 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10941 unsafe {
10942 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10943 s.assume_init()
10944 }
10945 }
10946}
10947#[repr(C)]
10948#[derive(Debug, Copy, Clone)]
10949pub struct BNTypeAttribute {
10950 pub name: *mut ::std::os::raw::c_char,
10951 pub value: *mut ::std::os::raw::c_char,
10952}
10953#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10954const _: () = {
10955 ["Size of BNTypeAttribute"][::std::mem::size_of::<BNTypeAttribute>() - 16usize];
10956 ["Alignment of BNTypeAttribute"][::std::mem::align_of::<BNTypeAttribute>() - 8usize];
10957 ["Offset of field: BNTypeAttribute::name"]
10958 [::std::mem::offset_of!(BNTypeAttribute, name) - 0usize];
10959 ["Offset of field: BNTypeAttribute::value"]
10960 [::std::mem::offset_of!(BNTypeAttribute, value) - 8usize];
10961};
10962impl Default for BNTypeAttribute {
10963 fn default() -> Self {
10964 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10965 unsafe {
10966 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10967 s.assume_init()
10968 }
10969 }
10970}
10971#[repr(C)]
10972#[derive(Debug, Copy, Clone)]
10973pub struct BNCustomConstantRenderer {
10974 pub context: *mut ::std::os::raw::c_void,
10975 pub isValidForType: ::std::option::Option<
10976 unsafe extern "C" fn(
10977 ctxt: *mut ::std::os::raw::c_void,
10978 hlil: *mut BNHighLevelILFunction,
10979 type_: *mut BNType,
10980 ) -> bool,
10981 >,
10982 pub renderConstant: ::std::option::Option<
10983 unsafe extern "C" fn(
10984 ctxt: *mut ::std::os::raw::c_void,
10985 hlil: *mut BNHighLevelILFunction,
10986 expr: usize,
10987 type_: *mut BNType,
10988 val: i64,
10989 tokens: *mut BNHighLevelILTokenEmitter,
10990 settings: *mut BNDisassemblySettings,
10991 precedence: BNOperatorPrecedence,
10992 ) -> bool,
10993 >,
10994 pub renderConstantPointer: ::std::option::Option<
10995 unsafe extern "C" fn(
10996 ctxt: *mut ::std::os::raw::c_void,
10997 hlil: *mut BNHighLevelILFunction,
10998 expr: usize,
10999 type_: *mut BNType,
11000 val: i64,
11001 tokens: *mut BNHighLevelILTokenEmitter,
11002 settings: *mut BNDisassemblySettings,
11003 symbolDisplay: BNSymbolDisplayType,
11004 precedence: BNOperatorPrecedence,
11005 ) -> bool,
11006 >,
11007}
11008#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11009const _: () = {
11010 ["Size of BNCustomConstantRenderer"]
11011 [::std::mem::size_of::<BNCustomConstantRenderer>() - 32usize];
11012 ["Alignment of BNCustomConstantRenderer"]
11013 [::std::mem::align_of::<BNCustomConstantRenderer>() - 8usize];
11014 ["Offset of field: BNCustomConstantRenderer::context"]
11015 [::std::mem::offset_of!(BNCustomConstantRenderer, context) - 0usize];
11016 ["Offset of field: BNCustomConstantRenderer::isValidForType"]
11017 [::std::mem::offset_of!(BNCustomConstantRenderer, isValidForType) - 8usize];
11018 ["Offset of field: BNCustomConstantRenderer::renderConstant"]
11019 [::std::mem::offset_of!(BNCustomConstantRenderer, renderConstant) - 16usize];
11020 ["Offset of field: BNCustomConstantRenderer::renderConstantPointer"]
11021 [::std::mem::offset_of!(BNCustomConstantRenderer, renderConstantPointer) - 24usize];
11022};
11023impl Default for BNCustomConstantRenderer {
11024 fn default() -> Self {
11025 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11026 unsafe {
11027 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11028 s.assume_init()
11029 }
11030 }
11031}
11032#[repr(C)]
11033#[derive(Debug, Copy, Clone)]
11034pub struct BNCustomStringRecognizer {
11035 pub context: *mut ::std::os::raw::c_void,
11036 pub isValidForType: ::std::option::Option<
11037 unsafe extern "C" fn(
11038 ctxt: *mut ::std::os::raw::c_void,
11039 hlil: *mut BNHighLevelILFunction,
11040 type_: *mut BNType,
11041 ) -> bool,
11042 >,
11043 pub recognizeConstant: ::std::option::Option<
11044 unsafe extern "C" fn(
11045 ctxt: *mut ::std::os::raw::c_void,
11046 hlil: *mut BNHighLevelILFunction,
11047 expr: usize,
11048 type_: *mut BNType,
11049 val: i64,
11050 result: *mut BNDerivedString,
11051 ) -> bool,
11052 >,
11053 pub recognizeConstantPointer: ::std::option::Option<
11054 unsafe extern "C" fn(
11055 ctxt: *mut ::std::os::raw::c_void,
11056 hlil: *mut BNHighLevelILFunction,
11057 expr: usize,
11058 type_: *mut BNType,
11059 val: i64,
11060 result: *mut BNDerivedString,
11061 ) -> bool,
11062 >,
11063 pub recognizeExternPointer: ::std::option::Option<
11064 unsafe extern "C" fn(
11065 ctxt: *mut ::std::os::raw::c_void,
11066 hlil: *mut BNHighLevelILFunction,
11067 expr: usize,
11068 type_: *mut BNType,
11069 val: i64,
11070 offset: u64,
11071 result: *mut BNDerivedString,
11072 ) -> bool,
11073 >,
11074 pub recognizeImport: ::std::option::Option<
11075 unsafe extern "C" fn(
11076 ctxt: *mut ::std::os::raw::c_void,
11077 hlil: *mut BNHighLevelILFunction,
11078 expr: usize,
11079 type_: *mut BNType,
11080 val: i64,
11081 result: *mut BNDerivedString,
11082 ) -> bool,
11083 >,
11084 pub recognizeConstantData: ::std::option::Option<
11085 unsafe extern "C" fn(
11086 ctxt: *mut ::std::os::raw::c_void,
11087 hlil: *mut BNHighLevelILFunction,
11088 expr: usize,
11089 result: *mut BNDerivedString,
11090 ) -> bool,
11091 >,
11092}
11093#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11094const _: () = {
11095 ["Size of BNCustomStringRecognizer"]
11096 [::std::mem::size_of::<BNCustomStringRecognizer>() - 56usize];
11097 ["Alignment of BNCustomStringRecognizer"]
11098 [::std::mem::align_of::<BNCustomStringRecognizer>() - 8usize];
11099 ["Offset of field: BNCustomStringRecognizer::context"]
11100 [::std::mem::offset_of!(BNCustomStringRecognizer, context) - 0usize];
11101 ["Offset of field: BNCustomStringRecognizer::isValidForType"]
11102 [::std::mem::offset_of!(BNCustomStringRecognizer, isValidForType) - 8usize];
11103 ["Offset of field: BNCustomStringRecognizer::recognizeConstant"]
11104 [::std::mem::offset_of!(BNCustomStringRecognizer, recognizeConstant) - 16usize];
11105 ["Offset of field: BNCustomStringRecognizer::recognizeConstantPointer"]
11106 [::std::mem::offset_of!(BNCustomStringRecognizer, recognizeConstantPointer) - 24usize];
11107 ["Offset of field: BNCustomStringRecognizer::recognizeExternPointer"]
11108 [::std::mem::offset_of!(BNCustomStringRecognizer, recognizeExternPointer) - 32usize];
11109 ["Offset of field: BNCustomStringRecognizer::recognizeImport"]
11110 [::std::mem::offset_of!(BNCustomStringRecognizer, recognizeImport) - 40usize];
11111 ["Offset of field: BNCustomStringRecognizer::recognizeConstantData"]
11112 [::std::mem::offset_of!(BNCustomStringRecognizer, recognizeConstantData) - 48usize];
11113};
11114impl Default for BNCustomStringRecognizer {
11115 fn default() -> Self {
11116 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11117 unsafe {
11118 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11119 s.assume_init()
11120 }
11121 }
11122}
11123#[repr(C)]
11124#[derive(Debug, Copy, Clone)]
11125pub struct BNCustomStringTypeInfo {
11126 pub name: *mut ::std::os::raw::c_char,
11127 pub stringPrefix: *mut ::std::os::raw::c_char,
11128 pub stringPostfix: *mut ::std::os::raw::c_char,
11129}
11130#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11131const _: () = {
11132 ["Size of BNCustomStringTypeInfo"][::std::mem::size_of::<BNCustomStringTypeInfo>() - 24usize];
11133 ["Alignment of BNCustomStringTypeInfo"]
11134 [::std::mem::align_of::<BNCustomStringTypeInfo>() - 8usize];
11135 ["Offset of field: BNCustomStringTypeInfo::name"]
11136 [::std::mem::offset_of!(BNCustomStringTypeInfo, name) - 0usize];
11137 ["Offset of field: BNCustomStringTypeInfo::stringPrefix"]
11138 [::std::mem::offset_of!(BNCustomStringTypeInfo, stringPrefix) - 8usize];
11139 ["Offset of field: BNCustomStringTypeInfo::stringPostfix"]
11140 [::std::mem::offset_of!(BNCustomStringTypeInfo, stringPostfix) - 16usize];
11141};
11142impl Default for BNCustomStringTypeInfo {
11143 fn default() -> Self {
11144 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11145 unsafe {
11146 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11147 s.assume_init()
11148 }
11149 }
11150}
11151unsafe extern "C" {
11152 pub fn BNAllocString(contents: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
11153}
11154unsafe extern "C" {
11155 pub fn BNAllocStringWithLength(
11156 contents: *const ::std::os::raw::c_char,
11157 len: usize,
11158 ) -> *mut ::std::os::raw::c_char;
11159}
11160unsafe extern "C" {
11161 pub fn BNFreeString(str_: *mut ::std::os::raw::c_char);
11162}
11163unsafe extern "C" {
11164 pub fn BNAllocStringList(
11165 contents: *mut *const ::std::os::raw::c_char,
11166 size: usize,
11167 ) -> *mut *mut ::std::os::raw::c_char;
11168}
11169unsafe extern "C" {
11170 pub fn BNAllocUninitializedStringList(size: usize) -> *mut *mut ::std::os::raw::c_char;
11171}
11172unsafe extern "C" {
11173 pub fn BNFreeStringList(strs: *mut *mut ::std::os::raw::c_char, count: usize);
11174}
11175unsafe extern "C" {
11176 pub fn BNShutdown();
11177}
11178unsafe extern "C" {
11179 pub fn BNIsShutdownRequested() -> bool;
11180}
11181unsafe extern "C" {
11182 pub fn BNGetVersionInfo() -> BNVersionInfo;
11183}
11184unsafe extern "C" {
11185 pub fn BNGetVersionString() -> *mut ::std::os::raw::c_char;
11186}
11187unsafe extern "C" {
11188 pub fn BNGetBuildId() -> u32;
11189}
11190unsafe extern "C" {
11191 pub fn BNGetCurrentCoreABIVersion() -> u32;
11192}
11193unsafe extern "C" {
11194 pub fn BNGetMinimumCoreABIVersion() -> u32;
11195}
11196unsafe extern "C" {
11197 pub fn BNGetSerialNumber() -> *mut ::std::os::raw::c_char;
11198}
11199unsafe extern "C" {
11200 pub fn BNGetLicenseExpirationTime() -> u64;
11201}
11202unsafe extern "C" {
11203 pub fn BNIsLicenseValidated() -> bool;
11204}
11205unsafe extern "C" {
11206 pub fn BNGetLicensedUserEmail() -> *mut ::std::os::raw::c_char;
11207}
11208unsafe extern "C" {
11209 pub fn BNGetProduct() -> *mut ::std::os::raw::c_char;
11210}
11211unsafe extern "C" {
11212 pub fn BNGetProductType() -> *mut ::std::os::raw::c_char;
11213}
11214unsafe extern "C" {
11215 pub fn BNGetLicenseCount() -> ::std::os::raw::c_int;
11216}
11217unsafe extern "C" {
11218 pub fn BNIsUIEnabled() -> bool;
11219}
11220unsafe extern "C" {
11221 pub fn BNSetLicense(licenseData: *const ::std::os::raw::c_char);
11222}
11223unsafe extern "C" {
11224 pub fn BNIsDatabase(filename: *const ::std::os::raw::c_char) -> bool;
11225}
11226unsafe extern "C" {
11227 pub fn BNIsDatabaseFromData(data: *const ::std::os::raw::c_void, len: usize) -> bool;
11228}
11229unsafe extern "C" {
11230 pub fn BNAuthenticateEnterpriseServerWithToken(
11231 token: *const ::std::os::raw::c_char,
11232 remember: bool,
11233 ) -> bool;
11234}
11235unsafe extern "C" {
11236 pub fn BNAuthenticateEnterpriseServerWithCredentials(
11237 username: *const ::std::os::raw::c_char,
11238 password: *const ::std::os::raw::c_char,
11239 remember: bool,
11240 ) -> bool;
11241}
11242unsafe extern "C" {
11243 pub fn BNAuthenticateEnterpriseServerWithMethod(
11244 method: *const ::std::os::raw::c_char,
11245 remember: bool,
11246 ) -> bool;
11247}
11248unsafe extern "C" {
11249 pub fn BNGetEnterpriseServerAuthenticationMethods(
11250 methods: *mut *mut *mut ::std::os::raw::c_char,
11251 names: *mut *mut *mut ::std::os::raw::c_char,
11252 ) -> usize;
11253}
11254unsafe extern "C" {
11255 pub fn BNDeauthenticateEnterpriseServer() -> bool;
11256}
11257unsafe extern "C" {
11258 pub fn BNCancelEnterpriseServerAuthentication();
11259}
11260unsafe extern "C" {
11261 pub fn BNConnectEnterpriseServer() -> bool;
11262}
11263unsafe extern "C" {
11264 pub fn BNUpdateEnterpriseServerLicense(timeout: u64) -> bool;
11265}
11266unsafe extern "C" {
11267 pub fn BNReleaseEnterpriseServerLicense() -> bool;
11268}
11269unsafe extern "C" {
11270 pub fn BNIsEnterpriseServerConnected() -> bool;
11271}
11272unsafe extern "C" {
11273 pub fn BNIsEnterpriseServerAuthenticated() -> bool;
11274}
11275unsafe extern "C" {
11276 pub fn BNGetEnterpriseServerUsername() -> *mut ::std::os::raw::c_char;
11277}
11278unsafe extern "C" {
11279 pub fn BNGetEnterpriseServerToken() -> *mut ::std::os::raw::c_char;
11280}
11281unsafe extern "C" {
11282 pub fn BNGetEnterpriseServerUrl() -> *mut ::std::os::raw::c_char;
11283}
11284unsafe extern "C" {
11285 pub fn BNSetEnterpriseServerUrl(url: *const ::std::os::raw::c_char) -> bool;
11286}
11287unsafe extern "C" {
11288 pub fn BNGetEnterpriseServerName() -> *mut ::std::os::raw::c_char;
11289}
11290unsafe extern "C" {
11291 pub fn BNGetEnterpriseServerId() -> *mut ::std::os::raw::c_char;
11292}
11293unsafe extern "C" {
11294 pub fn BNGetEnterpriseServerVersion() -> u64;
11295}
11296unsafe extern "C" {
11297 pub fn BNGetEnterpriseServerBuildId() -> *mut ::std::os::raw::c_char;
11298}
11299unsafe extern "C" {
11300 pub fn BNGetEnterpriseServerLicenseExpirationTime() -> u64;
11301}
11302unsafe extern "C" {
11303 pub fn BNGetEnterpriseServerLicenseDuration() -> u64;
11304}
11305unsafe extern "C" {
11306 pub fn BNIsEnterpriseServerFloatingLicense() -> bool;
11307}
11308unsafe extern "C" {
11309 pub fn BNGetEnterpriseServerReservationTimeLimit() -> u64;
11310}
11311unsafe extern "C" {
11312 pub fn BNIsEnterpriseServerLicenseStillActivated() -> bool;
11313}
11314unsafe extern "C" {
11315 pub fn BNGetEnterpriseServerLastError() -> *mut ::std::os::raw::c_char;
11316}
11317unsafe extern "C" {
11318 pub fn BNRegisterEnterpriseServerNotification(notify: *mut BNEnterpriseServerCallbacks);
11319}
11320unsafe extern "C" {
11321 pub fn BNUnregisterEnterpriseServerNotification(notify: *mut BNEnterpriseServerCallbacks);
11322}
11323unsafe extern "C" {
11324 pub fn BNIsEnterpriseServerInitialized() -> bool;
11325}
11326unsafe extern "C" {
11327 pub fn BNInitializeEnterpriseServer() -> bool;
11328}
11329unsafe extern "C" {
11330 pub fn BNRegisterObjectDestructionCallbacks(callbacks: *mut BNObjectDestructionCallbacks);
11331}
11332unsafe extern "C" {
11333 pub fn BNUnregisterObjectDestructionCallbacks(callbacks: *mut BNObjectDestructionCallbacks);
11334}
11335unsafe extern "C" {
11336 pub fn BNGetUniqueIdentifierString() -> *mut ::std::os::raw::c_char;
11337}
11338unsafe extern "C" {
11339 #[doc = " Plugin initialization"]
11340 pub fn BNInitPlugins(allowUserPlugins: bool) -> bool;
11341}
11342unsafe extern "C" {
11343 pub fn BNDisablePlugins();
11344}
11345unsafe extern "C" {
11346 pub fn BNIsPluginsEnabled() -> bool;
11347}
11348unsafe extern "C" {
11349 pub fn BNGetInstallDirectory() -> *mut ::std::os::raw::c_char;
11350}
11351unsafe extern "C" {
11352 pub fn BNGetBundledPluginDirectory() -> *mut ::std::os::raw::c_char;
11353}
11354unsafe extern "C" {
11355 pub fn BNGetBundledScriptPluginDirectory() -> *mut ::std::os::raw::c_char;
11356}
11357unsafe extern "C" {
11358 pub fn BNSetBundledPluginDirectory(path: *const ::std::os::raw::c_char);
11359}
11360unsafe extern "C" {
11361 pub fn BNSetBundledScriptPluginDirectory(path: *const ::std::os::raw::c_char);
11362}
11363unsafe extern "C" {
11364 pub fn BNGetUserDirectory() -> *mut ::std::os::raw::c_char;
11365}
11366unsafe extern "C" {
11367 pub fn BNGetUserPluginDirectory() -> *mut ::std::os::raw::c_char;
11368}
11369unsafe extern "C" {
11370 pub fn BNGetRepositoriesDirectory() -> *mut ::std::os::raw::c_char;
11371}
11372unsafe extern "C" {
11373 pub fn BNGetSettingsFileName() -> *mut ::std::os::raw::c_char;
11374}
11375unsafe extern "C" {
11376 pub fn BNSaveLastRun();
11377}
11378unsafe extern "C" {
11379 pub fn BNGetPathRelativeToBundledPluginDirectory(
11380 path: *const ::std::os::raw::c_char,
11381 ) -> *mut ::std::os::raw::c_char;
11382}
11383unsafe extern "C" {
11384 pub fn BNGetPathRelativeToUserPluginDirectory(
11385 path: *const ::std::os::raw::c_char,
11386 ) -> *mut ::std::os::raw::c_char;
11387}
11388unsafe extern "C" {
11389 pub fn BNGetPathRelativeToUserDirectory(
11390 path: *const ::std::os::raw::c_char,
11391 ) -> *mut ::std::os::raw::c_char;
11392}
11393unsafe extern "C" {
11394 pub fn BNExecuteWorkerProcess(
11395 path: *const ::std::os::raw::c_char,
11396 args: *mut *const ::std::os::raw::c_char,
11397 input: *mut BNDataBuffer,
11398 output: *mut *mut ::std::os::raw::c_char,
11399 error: *mut *mut ::std::os::raw::c_char,
11400 stdoutIsText: bool,
11401 stderrIsText: bool,
11402 ) -> bool;
11403}
11404unsafe extern "C" {
11405 pub fn BNSetCurrentPluginLoadOrder(order: BNPluginLoadPhase);
11406}
11407unsafe extern "C" {
11408 pub fn BNAddRequiredPluginDependency(name: *const ::std::os::raw::c_char);
11409}
11410unsafe extern "C" {
11411 pub fn BNAddOptionalPluginDependency(name: *const ::std::os::raw::c_char);
11412}
11413unsafe extern "C" {
11414 #[doc = " Logging"]
11415 pub fn BNLog(
11416 session: usize,
11417 level: BNLogLevel,
11418 logger_name: *const ::std::os::raw::c_char,
11419 tid: usize,
11420 fmt: *const ::std::os::raw::c_char,
11421 ...
11422 );
11423}
11424unsafe extern "C" {
11425 pub fn BNLogDebug(fmt: *const ::std::os::raw::c_char, ...);
11426}
11427unsafe extern "C" {
11428 pub fn BNLogInfo(fmt: *const ::std::os::raw::c_char, ...);
11429}
11430unsafe extern "C" {
11431 pub fn BNLogWarn(fmt: *const ::std::os::raw::c_char, ...);
11432}
11433unsafe extern "C" {
11434 pub fn BNLogError(fmt: *const ::std::os::raw::c_char, ...);
11435}
11436unsafe extern "C" {
11437 pub fn BNLogAlert(fmt: *const ::std::os::raw::c_char, ...);
11438}
11439unsafe extern "C" {
11440 pub fn BNLogString(
11441 session: usize,
11442 level: BNLogLevel,
11443 logger_name: *const ::std::os::raw::c_char,
11444 tid: usize,
11445 str_: *const ::std::os::raw::c_char,
11446 );
11447}
11448unsafe extern "C" {
11449 pub fn BNLogWithStackTrace(
11450 session: usize,
11451 level: BNLogLevel,
11452 logger_name: *const ::std::os::raw::c_char,
11453 tid: usize,
11454 stackTrace: *const ::std::os::raw::c_char,
11455 fmt: *const ::std::os::raw::c_char,
11456 ...
11457 );
11458}
11459unsafe extern "C" {
11460 pub fn BNLogDebugWithStackTrace(
11461 stackTrace: *const ::std::os::raw::c_char,
11462 fmt: *const ::std::os::raw::c_char,
11463 ...
11464 );
11465}
11466unsafe extern "C" {
11467 pub fn BNLogInfoWithStackTrace(
11468 stackTrace: *const ::std::os::raw::c_char,
11469 fmt: *const ::std::os::raw::c_char,
11470 ...
11471 );
11472}
11473unsafe extern "C" {
11474 pub fn BNLogWarnWithStackTrace(
11475 stackTrace: *const ::std::os::raw::c_char,
11476 fmt: *const ::std::os::raw::c_char,
11477 ...
11478 );
11479}
11480unsafe extern "C" {
11481 pub fn BNLogErrorWithStackTrace(
11482 stackTrace: *const ::std::os::raw::c_char,
11483 fmt: *const ::std::os::raw::c_char,
11484 ...
11485 );
11486}
11487unsafe extern "C" {
11488 pub fn BNLogAlertWithStackTrace(
11489 stackTrace: *const ::std::os::raw::c_char,
11490 fmt: *const ::std::os::raw::c_char,
11491 ...
11492 );
11493}
11494unsafe extern "C" {
11495 pub fn BNLogStringWithStackTrace(
11496 session: usize,
11497 level: BNLogLevel,
11498 logger_name: *const ::std::os::raw::c_char,
11499 tid: usize,
11500 stackTrace: *const ::std::os::raw::c_char,
11501 str_: *const ::std::os::raw::c_char,
11502 );
11503}
11504unsafe extern "C" {
11505 pub fn BNNewLoggerReference(logger: *mut BNLogger) -> *mut BNLogger;
11506}
11507unsafe extern "C" {
11508 pub fn BNFreeLogger(logger: *mut BNLogger);
11509}
11510unsafe extern "C" {
11511 pub fn BNLoggerLog(
11512 logger: *mut BNLogger,
11513 level: BNLogLevel,
11514 fmt: *const ::std::os::raw::c_char,
11515 ...
11516 );
11517}
11518unsafe extern "C" {
11519 pub fn BNLoggerLogString(
11520 logger: *mut BNLogger,
11521 level: BNLogLevel,
11522 msg: *const ::std::os::raw::c_char,
11523 );
11524}
11525unsafe extern "C" {
11526 pub fn BNLoggerLogWithStackTrace(
11527 logger: *mut BNLogger,
11528 level: BNLogLevel,
11529 stackTrace: *const ::std::os::raw::c_char,
11530 fmt: *const ::std::os::raw::c_char,
11531 ...
11532 );
11533}
11534unsafe extern "C" {
11535 pub fn BNLoggerLogStringWithStackTrace(
11536 logger: *mut BNLogger,
11537 level: BNLogLevel,
11538 stackTrace: *const ::std::os::raw::c_char,
11539 msg: *const ::std::os::raw::c_char,
11540 );
11541}
11542unsafe extern "C" {
11543 pub fn BNLoggerGetName(logger: *mut BNLogger) -> *mut ::std::os::raw::c_char;
11544}
11545unsafe extern "C" {
11546 pub fn BNLoggerGetSessionId(logger: *mut BNLogger) -> usize;
11547}
11548unsafe extern "C" {
11549 pub fn BNLogCreateLogger(
11550 loggerName: *const ::std::os::raw::c_char,
11551 sessionId: usize,
11552 ) -> *mut BNLogger;
11553}
11554unsafe extern "C" {
11555 pub fn BNLogGetLogger(
11556 loggerName: *const ::std::os::raw::c_char,
11557 sessionId: usize,
11558 ) -> *mut BNLogger;
11559}
11560unsafe extern "C" {
11561 pub fn BNLogGetLoggerNames(count: *mut usize) -> *mut *mut ::std::os::raw::c_char;
11562}
11563unsafe extern "C" {
11564 pub fn BNRegisterLogListener(listener: *mut BNLogListener);
11565}
11566unsafe extern "C" {
11567 pub fn BNUnregisterLogListener(listener: *mut BNLogListener);
11568}
11569unsafe extern "C" {
11570 pub fn BNUpdateLogListeners();
11571}
11572unsafe extern "C" {
11573 pub fn BNLogToStdout(minimumLevel: BNLogLevel);
11574}
11575unsafe extern "C" {
11576 pub fn BNLogToStderr(minimumLevel: BNLogLevel);
11577}
11578unsafe extern "C" {
11579 pub fn BNLogToFile(
11580 minimumLevel: BNLogLevel,
11581 path: *const ::std::os::raw::c_char,
11582 append: bool,
11583 ) -> bool;
11584}
11585unsafe extern "C" {
11586 pub fn BNCloseLogs();
11587}
11588unsafe extern "C" {
11589 #[doc = " Temporary files"]
11590 pub fn BNCreateTemporaryFile() -> *mut BNTemporaryFile;
11591}
11592unsafe extern "C" {
11593 pub fn BNCreateTemporaryFileWithContents(data: *mut BNDataBuffer) -> *mut BNTemporaryFile;
11594}
11595unsafe extern "C" {
11596 pub fn BNNewTemporaryFileReference(file: *mut BNTemporaryFile) -> *mut BNTemporaryFile;
11597}
11598unsafe extern "C" {
11599 pub fn BNFreeTemporaryFile(file: *mut BNTemporaryFile);
11600}
11601unsafe extern "C" {
11602 pub fn BNGetTemporaryFilePath(file: *mut BNTemporaryFile) -> *mut ::std::os::raw::c_char;
11603}
11604unsafe extern "C" {
11605 pub fn BNGetTemporaryFileContents(file: *mut BNTemporaryFile) -> *mut BNDataBuffer;
11606}
11607unsafe extern "C" {
11608 #[doc = " Data buffer management"]
11609 pub fn BNCreateDataBuffer(data: *const ::std::os::raw::c_void, len: usize)
11610 -> *mut BNDataBuffer;
11611}
11612unsafe extern "C" {
11613 pub fn BNDuplicateDataBuffer(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
11614}
11615unsafe extern "C" {
11616 pub fn BNFreeDataBuffer(buf: *mut BNDataBuffer);
11617}
11618unsafe extern "C" {
11619 pub fn BNGetDataBufferContents(buf: *mut BNDataBuffer) -> *mut ::std::os::raw::c_void;
11620}
11621unsafe extern "C" {
11622 pub fn BNGetDataBufferContentsAt(
11623 buf: *mut BNDataBuffer,
11624 offset: usize,
11625 ) -> *mut ::std::os::raw::c_void;
11626}
11627unsafe extern "C" {
11628 pub fn BNGetDataBufferLength(buf: *mut BNDataBuffer) -> usize;
11629}
11630unsafe extern "C" {
11631 pub fn BNGetDataBufferSlice(
11632 buf: *mut BNDataBuffer,
11633 start: usize,
11634 len: usize,
11635 ) -> *mut BNDataBuffer;
11636}
11637unsafe extern "C" {
11638 pub fn BNSetDataBufferLength(buf: *mut BNDataBuffer, len: usize);
11639}
11640unsafe extern "C" {
11641 pub fn BNClearDataBuffer(buf: *mut BNDataBuffer);
11642}
11643unsafe extern "C" {
11644 pub fn BNSetDataBufferContents(
11645 buf: *mut BNDataBuffer,
11646 data: *mut ::std::os::raw::c_void,
11647 len: usize,
11648 );
11649}
11650unsafe extern "C" {
11651 pub fn BNAssignDataBuffer(dest: *mut BNDataBuffer, src: *mut BNDataBuffer);
11652}
11653unsafe extern "C" {
11654 pub fn BNAppendDataBuffer(dest: *mut BNDataBuffer, src: *mut BNDataBuffer);
11655}
11656unsafe extern "C" {
11657 pub fn BNAppendDataBufferContents(
11658 dest: *mut BNDataBuffer,
11659 src: *const ::std::os::raw::c_void,
11660 len: usize,
11661 );
11662}
11663unsafe extern "C" {
11664 pub fn BNGetDataBufferByte(buf: *mut BNDataBuffer, offset: usize) -> u8;
11665}
11666unsafe extern "C" {
11667 pub fn BNSetDataBufferByte(buf: *mut BNDataBuffer, offset: usize, val: u8);
11668}
11669unsafe extern "C" {
11670 pub fn BNDataBufferToEscapedString(
11671 buf: *mut BNDataBuffer,
11672 nullTerminates: bool,
11673 escapePrintable: bool,
11674 ) -> *mut ::std::os::raw::c_char;
11675}
11676unsafe extern "C" {
11677 pub fn BNDecodeEscapedString(str_: *const ::std::os::raw::c_char) -> *mut BNDataBuffer;
11678}
11679unsafe extern "C" {
11680 pub fn BNDataBufferToBase64(buf: *mut BNDataBuffer) -> *mut ::std::os::raw::c_char;
11681}
11682unsafe extern "C" {
11683 pub fn BNDecodeBase64(str_: *const ::std::os::raw::c_char) -> *mut BNDataBuffer;
11684}
11685unsafe extern "C" {
11686 pub fn BNZlibCompress(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
11687}
11688unsafe extern "C" {
11689 pub fn BNZlibDecompress(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
11690}
11691unsafe extern "C" {
11692 pub fn BNLzmaDecompress(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
11693}
11694unsafe extern "C" {
11695 pub fn BNLzma2Decompress(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
11696}
11697unsafe extern "C" {
11698 pub fn BNXzDecompress(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
11699}
11700unsafe extern "C" {
11701 #[doc = " Save settings"]
11702 pub fn BNCreateSaveSettings() -> *mut BNSaveSettings;
11703}
11704unsafe extern "C" {
11705 pub fn BNNewSaveSettingsReference(settings: *mut BNSaveSettings) -> *mut BNSaveSettings;
11706}
11707unsafe extern "C" {
11708 pub fn BNFreeSaveSettings(settings: *mut BNSaveSettings);
11709}
11710unsafe extern "C" {
11711 pub fn BNIsSaveSettingsOptionSet(settings: *mut BNSaveSettings, option: BNSaveOption) -> bool;
11712}
11713unsafe extern "C" {
11714 pub fn BNSetSaveSettingsOption(
11715 settings: *mut BNSaveSettings,
11716 option: BNSaveOption,
11717 state: bool,
11718 );
11719}
11720unsafe extern "C" {
11721 pub fn BNGetSaveSettingsName(settings: *mut BNSaveSettings) -> *mut ::std::os::raw::c_char;
11722}
11723unsafe extern "C" {
11724 pub fn BNSetSaveSettingsName(
11725 settings: *mut BNSaveSettings,
11726 name: *const ::std::os::raw::c_char,
11727 );
11728}
11729unsafe extern "C" {
11730 #[doc = " File metadata object"]
11731 pub fn BNCreateFileMetadata() -> *mut BNFileMetadata;
11732}
11733unsafe extern "C" {
11734 pub fn BNNewFileReference(file: *mut BNFileMetadata) -> *mut BNFileMetadata;
11735}
11736unsafe extern "C" {
11737 pub fn BNFreeFileMetadata(file: *mut BNFileMetadata);
11738}
11739unsafe extern "C" {
11740 pub fn BNCloseFile(file: *mut BNFileMetadata);
11741}
11742unsafe extern "C" {
11743 pub fn BNSetFileMetadataNavigationHandler(
11744 file: *mut BNFileMetadata,
11745 handler: *mut BNNavigationHandler,
11746 );
11747}
11748unsafe extern "C" {
11749 pub fn BNIsFileModified(file: *mut BNFileMetadata) -> bool;
11750}
11751unsafe extern "C" {
11752 pub fn BNIsAnalysisChanged(file: *mut BNFileMetadata) -> bool;
11753}
11754unsafe extern "C" {
11755 pub fn BNMarkFileModified(file: *mut BNFileMetadata);
11756}
11757unsafe extern "C" {
11758 pub fn BNMarkFileSaved(file: *mut BNFileMetadata);
11759}
11760unsafe extern "C" {
11761 pub fn BNIsBackedByDatabase(
11762 file: *mut BNFileMetadata,
11763 binaryViewType: *const ::std::os::raw::c_char,
11764 ) -> bool;
11765}
11766unsafe extern "C" {
11767 pub fn BNCreateDatabase(
11768 data: *mut BNBinaryView,
11769 path: *const ::std::os::raw::c_char,
11770 settings: *mut BNSaveSettings,
11771 ) -> bool;
11772}
11773unsafe extern "C" {
11774 pub fn BNCreateDatabaseWithProgress(
11775 data: *mut BNBinaryView,
11776 path: *const ::std::os::raw::c_char,
11777 ctxt: *mut ::std::os::raw::c_void,
11778 progress: BNProgressFunction,
11779 settings: *mut BNSaveSettings,
11780 ) -> bool;
11781}
11782unsafe extern "C" {
11783 pub fn BNOpenExistingDatabase(
11784 file: *mut BNFileMetadata,
11785 path: *const ::std::os::raw::c_char,
11786 ) -> *mut BNBinaryView;
11787}
11788unsafe extern "C" {
11789 pub fn BNOpenExistingDatabaseWithProgress(
11790 file: *mut BNFileMetadata,
11791 path: *const ::std::os::raw::c_char,
11792 ctxt: *mut ::std::os::raw::c_void,
11793 progress: BNProgressFunction,
11794 ) -> *mut BNBinaryView;
11795}
11796unsafe extern "C" {
11797 pub fn BNOpenDatabaseForConfiguration(
11798 file: *mut BNFileMetadata,
11799 path: *const ::std::os::raw::c_char,
11800 ) -> *mut BNBinaryView;
11801}
11802unsafe extern "C" {
11803 pub fn BNSaveAutoSnapshot(data: *mut BNBinaryView, settings: *mut BNSaveSettings) -> bool;
11804}
11805unsafe extern "C" {
11806 pub fn BNSaveAutoSnapshotWithProgress(
11807 data: *mut BNBinaryView,
11808 ctxt: *mut ::std::os::raw::c_void,
11809 progress: BNProgressFunction,
11810 settings: *mut BNSaveSettings,
11811 ) -> bool;
11812}
11813unsafe extern "C" {
11814 pub fn BNGetSnapshotData(
11815 file: *mut BNFileMetadata,
11816 data: *mut BNKeyValueStore,
11817 cache: *mut BNKeyValueStore,
11818 ctxt: *mut ::std::os::raw::c_void,
11819 progress: BNProgressFunction,
11820 );
11821}
11822unsafe extern "C" {
11823 pub fn BNApplySnapshotData(
11824 file: *mut BNFileMetadata,
11825 view: *mut BNBinaryView,
11826 data: *mut BNKeyValueStore,
11827 cache: *mut BNKeyValueStore,
11828 ctxt: *mut ::std::os::raw::c_void,
11829 progress: BNProgressFunction,
11830 openForConfiguration: bool,
11831 restoreRawView: bool,
11832 );
11833}
11834unsafe extern "C" {
11835 pub fn BNGetFileMetadataDatabase(file: *mut BNFileMetadata) -> *mut BNDatabase;
11836}
11837unsafe extern "C" {
11838 #[doc = " Key value store"]
11839 pub fn BNCreateKeyValueStore() -> *mut BNKeyValueStore;
11840}
11841unsafe extern "C" {
11842 pub fn BNCreateKeyValueStoreFromDataBuffer(buffer: *mut BNDataBuffer) -> *mut BNKeyValueStore;
11843}
11844unsafe extern "C" {
11845 pub fn BNNewKeyValueStoreReference(store: *mut BNKeyValueStore) -> *mut BNKeyValueStore;
11846}
11847unsafe extern "C" {
11848 pub fn BNFreeKeyValueStore(store: *mut BNKeyValueStore);
11849}
11850unsafe extern "C" {
11851 pub fn BNGetKeyValueStoreKeys(
11852 store: *mut BNKeyValueStore,
11853 count: *mut usize,
11854 ) -> *mut *mut ::std::os::raw::c_char;
11855}
11856unsafe extern "C" {
11857 pub fn BNKeyValueStoreHasValue(
11858 store: *mut BNKeyValueStore,
11859 name: *const ::std::os::raw::c_char,
11860 ) -> bool;
11861}
11862unsafe extern "C" {
11863 pub fn BNGetKeyValueStoreValue(
11864 store: *mut BNKeyValueStore,
11865 name: *const ::std::os::raw::c_char,
11866 ) -> *mut ::std::os::raw::c_char;
11867}
11868unsafe extern "C" {
11869 pub fn BNGetKeyValueStoreValueHash(
11870 store: *mut BNKeyValueStore,
11871 name: *const ::std::os::raw::c_char,
11872 ) -> *mut BNDataBuffer;
11873}
11874unsafe extern "C" {
11875 pub fn BNGetKeyValueStoreBuffer(
11876 store: *mut BNKeyValueStore,
11877 name: *const ::std::os::raw::c_char,
11878 ) -> *mut BNDataBuffer;
11879}
11880unsafe extern "C" {
11881 pub fn BNSetKeyValueStoreValue(
11882 store: *mut BNKeyValueStore,
11883 name: *const ::std::os::raw::c_char,
11884 value: *const ::std::os::raw::c_char,
11885 ) -> bool;
11886}
11887unsafe extern "C" {
11888 pub fn BNSetKeyValueStoreBuffer(
11889 store: *mut BNKeyValueStore,
11890 name: *const ::std::os::raw::c_char,
11891 value: *const BNDataBuffer,
11892 ) -> bool;
11893}
11894unsafe extern "C" {
11895 pub fn BNGetKeyValueStoreSerializedData(store: *mut BNKeyValueStore) -> *mut BNDataBuffer;
11896}
11897unsafe extern "C" {
11898 pub fn BNBeginKeyValueStoreNamespace(
11899 store: *mut BNKeyValueStore,
11900 name: *const ::std::os::raw::c_char,
11901 );
11902}
11903unsafe extern "C" {
11904 pub fn BNEndKeyValueStoreNamespace(store: *mut BNKeyValueStore);
11905}
11906unsafe extern "C" {
11907 pub fn BNIsKeyValueStoreEmpty(store: *mut BNKeyValueStore) -> bool;
11908}
11909unsafe extern "C" {
11910 pub fn BNGetKeyValueStoreValueSize(store: *mut BNKeyValueStore) -> usize;
11911}
11912unsafe extern "C" {
11913 pub fn BNGetKeyValueStoreDataSize(store: *mut BNKeyValueStore) -> usize;
11914}
11915unsafe extern "C" {
11916 pub fn BNGetKeyValueStoreValueStorageSize(store: *mut BNKeyValueStore) -> usize;
11917}
11918unsafe extern "C" {
11919 pub fn BNGetKeyValueStoreNamespaceSize(store: *mut BNKeyValueStore) -> usize;
11920}
11921unsafe extern "C" {
11922 #[doc = " Project object"]
11923 pub fn BNNewProjectReference(project: *mut BNProject) -> *mut BNProject;
11924}
11925unsafe extern "C" {
11926 pub fn BNFreeProject(project: *mut BNProject);
11927}
11928unsafe extern "C" {
11929 pub fn BNFreeProjectList(projects: *mut *mut BNProject, count: usize);
11930}
11931unsafe extern "C" {
11932 pub fn BNGetOpenProjects(count: *mut usize) -> *mut *mut BNProject;
11933}
11934unsafe extern "C" {
11935 pub fn BNCreateProject(
11936 path: *const ::std::os::raw::c_char,
11937 name: *const ::std::os::raw::c_char,
11938 ) -> *mut BNProject;
11939}
11940unsafe extern "C" {
11941 pub fn BNOpenProject(path: *const ::std::os::raw::c_char) -> *mut BNProject;
11942}
11943unsafe extern "C" {
11944 pub fn BNProjectOpen(project: *mut BNProject) -> bool;
11945}
11946unsafe extern "C" {
11947 pub fn BNProjectClose(project: *mut BNProject) -> bool;
11948}
11949unsafe extern "C" {
11950 pub fn BNProjectGetId(project: *mut BNProject) -> *mut ::std::os::raw::c_char;
11951}
11952unsafe extern "C" {
11953 pub fn BNProjectIsOpen(project: *mut BNProject) -> bool;
11954}
11955unsafe extern "C" {
11956 pub fn BNProjectGetPath(project: *mut BNProject) -> *mut ::std::os::raw::c_char;
11957}
11958unsafe extern "C" {
11959 pub fn BNProjectGetFilePathInProject(
11960 project: *mut BNProject,
11961 file: *mut BNProjectFile,
11962 ) -> *mut ::std::os::raw::c_char;
11963}
11964unsafe extern "C" {
11965 pub fn BNProjectGetName(project: *mut BNProject) -> *mut ::std::os::raw::c_char;
11966}
11967unsafe extern "C" {
11968 pub fn BNProjectSetName(project: *mut BNProject, name: *const ::std::os::raw::c_char) -> bool;
11969}
11970unsafe extern "C" {
11971 pub fn BNProjectGetDescription(project: *mut BNProject) -> *mut ::std::os::raw::c_char;
11972}
11973unsafe extern "C" {
11974 pub fn BNProjectSetDescription(
11975 project: *mut BNProject,
11976 description: *const ::std::os::raw::c_char,
11977 ) -> bool;
11978}
11979unsafe extern "C" {
11980 pub fn BNProjectQueryMetadata(
11981 project: *mut BNProject,
11982 key: *const ::std::os::raw::c_char,
11983 ) -> *mut BNMetadata;
11984}
11985unsafe extern "C" {
11986 pub fn BNProjectStoreMetadata(
11987 project: *mut BNProject,
11988 key: *const ::std::os::raw::c_char,
11989 value: *mut BNMetadata,
11990 ) -> bool;
11991}
11992unsafe extern "C" {
11993 pub fn BNProjectRemoveMetadata(
11994 project: *mut BNProject,
11995 key: *const ::std::os::raw::c_char,
11996 ) -> bool;
11997}
11998unsafe extern "C" {
11999 pub fn BNProjectCreateFileFromPath(
12000 project: *mut BNProject,
12001 path: *const ::std::os::raw::c_char,
12002 folder: *mut BNProjectFolder,
12003 name: *const ::std::os::raw::c_char,
12004 description: *const ::std::os::raw::c_char,
12005 ctxt: *mut ::std::os::raw::c_void,
12006 progress: BNProgressFunction,
12007 ) -> *mut BNProjectFile;
12008}
12009unsafe extern "C" {
12010 pub fn BNProjectCreateFileFromPathUnsafe(
12011 project: *mut BNProject,
12012 path: *const ::std::os::raw::c_char,
12013 folder: *mut BNProjectFolder,
12014 name: *const ::std::os::raw::c_char,
12015 description: *const ::std::os::raw::c_char,
12016 id: *const ::std::os::raw::c_char,
12017 creationTimestamp: i64,
12018 ctxt: *mut ::std::os::raw::c_void,
12019 progress: BNProgressFunction,
12020 ) -> *mut BNProjectFile;
12021}
12022unsafe extern "C" {
12023 pub fn BNProjectCreateFile(
12024 project: *mut BNProject,
12025 contents: *const u8,
12026 contentsSize: usize,
12027 folder: *mut BNProjectFolder,
12028 name: *const ::std::os::raw::c_char,
12029 description: *const ::std::os::raw::c_char,
12030 ctxt: *mut ::std::os::raw::c_void,
12031 progress: BNProgressFunction,
12032 ) -> *mut BNProjectFile;
12033}
12034unsafe extern "C" {
12035 pub fn BNProjectCreateFileUnsafe(
12036 project: *mut BNProject,
12037 contents: *const u8,
12038 contentsSize: usize,
12039 folder: *mut BNProjectFolder,
12040 name: *const ::std::os::raw::c_char,
12041 description: *const ::std::os::raw::c_char,
12042 id: *const ::std::os::raw::c_char,
12043 creationTimestamp: i64,
12044 ctxt: *mut ::std::os::raw::c_void,
12045 progress: BNProgressFunction,
12046 ) -> *mut BNProjectFile;
12047}
12048unsafe extern "C" {
12049 pub fn BNProjectGetFiles(project: *mut BNProject, count: *mut usize)
12050 -> *mut *mut BNProjectFile;
12051}
12052unsafe extern "C" {
12053 pub fn BNProjectGetFileById(
12054 project: *mut BNProject,
12055 id: *const ::std::os::raw::c_char,
12056 ) -> *mut BNProjectFile;
12057}
12058unsafe extern "C" {
12059 pub fn BNProjectGetFileByPathOnDisk(
12060 project: *mut BNProject,
12061 path: *const ::std::os::raw::c_char,
12062 ) -> *mut BNProjectFile;
12063}
12064unsafe extern "C" {
12065 pub fn BNProjectGetFilesByPathInProject(
12066 project: *mut BNProject,
12067 path: *const ::std::os::raw::c_char,
12068 count: *mut usize,
12069 ) -> *mut *mut BNProjectFile;
12070}
12071unsafe extern "C" {
12072 pub fn BNProjectGetFilesInFolder(
12073 project: *mut BNProject,
12074 folder: *mut BNProjectFolder,
12075 count: *mut usize,
12076 ) -> *mut *mut BNProjectFile;
12077}
12078unsafe extern "C" {
12079 pub fn BNProjectPushFile(project: *mut BNProject, file: *mut BNProjectFile) -> bool;
12080}
12081unsafe extern "C" {
12082 pub fn BNProjectDeleteFile(project: *mut BNProject, file: *mut BNProjectFile) -> bool;
12083}
12084unsafe extern "C" {
12085 pub fn BNProjectCreateFolderFromPath(
12086 project: *mut BNProject,
12087 path: *const ::std::os::raw::c_char,
12088 parent: *mut BNProjectFolder,
12089 description: *const ::std::os::raw::c_char,
12090 ctxt: *mut ::std::os::raw::c_void,
12091 progress: BNProgressFunction,
12092 ) -> *mut BNProjectFolder;
12093}
12094unsafe extern "C" {
12095 pub fn BNProjectCreateFolder(
12096 project: *mut BNProject,
12097 parent: *mut BNProjectFolder,
12098 name: *const ::std::os::raw::c_char,
12099 description: *const ::std::os::raw::c_char,
12100 ) -> *mut BNProjectFolder;
12101}
12102unsafe extern "C" {
12103 pub fn BNProjectCreateFolderUnsafe(
12104 project: *mut BNProject,
12105 parent: *mut BNProjectFolder,
12106 name: *const ::std::os::raw::c_char,
12107 description: *const ::std::os::raw::c_char,
12108 id: *const ::std::os::raw::c_char,
12109 ) -> *mut BNProjectFolder;
12110}
12111unsafe extern "C" {
12112 pub fn BNProjectGetFolders(
12113 project: *mut BNProject,
12114 count: *mut usize,
12115 ) -> *mut *mut BNProjectFolder;
12116}
12117unsafe extern "C" {
12118 pub fn BNProjectGetFolderById(
12119 project: *mut BNProject,
12120 id: *const ::std::os::raw::c_char,
12121 ) -> *mut BNProjectFolder;
12122}
12123unsafe extern "C" {
12124 pub fn BNProjectPushFolder(project: *mut BNProject, folder: *mut BNProjectFolder) -> bool;
12125}
12126unsafe extern "C" {
12127 pub fn BNProjectDeleteFolder(
12128 project: *mut BNProject,
12129 folder: *mut BNProjectFolder,
12130 ctxt: *mut ::std::os::raw::c_void,
12131 progress: BNProgressFunction,
12132 ) -> bool;
12133}
12134unsafe extern "C" {
12135 pub fn BNProjectBeginBulkOperation(project: *mut BNProject) -> bool;
12136}
12137unsafe extern "C" {
12138 pub fn BNProjectEndBulkOperation(project: *mut BNProject) -> bool;
12139}
12140unsafe extern "C" {
12141 pub fn BNProjectGetRemoteProject(project: *mut BNProject) -> *mut BNRemoteProject;
12142}
12143unsafe extern "C" {
12144 #[doc = " ProjectFile object"]
12145 pub fn BNNewProjectFileReference(file: *mut BNProjectFile) -> *mut BNProjectFile;
12146}
12147unsafe extern "C" {
12148 pub fn BNFreeProjectFile(file: *mut BNProjectFile);
12149}
12150unsafe extern "C" {
12151 pub fn BNFreeProjectFileList(files: *mut *mut BNProjectFile, count: usize);
12152}
12153unsafe extern "C" {
12154 pub fn BNProjectFileGetPathOnDisk(file: *mut BNProjectFile) -> *mut ::std::os::raw::c_char;
12155}
12156unsafe extern "C" {
12157 pub fn BNProjectFileGetPathInProject(file: *const BNProjectFile)
12158 -> *mut ::std::os::raw::c_char;
12159}
12160unsafe extern "C" {
12161 pub fn BNProjectFileExistsOnDisk(file: *mut BNProjectFile) -> bool;
12162}
12163unsafe extern "C" {
12164 pub fn BNProjectFileGetName(file: *mut BNProjectFile) -> *mut ::std::os::raw::c_char;
12165}
12166unsafe extern "C" {
12167 pub fn BNProjectFileSetName(
12168 file: *mut BNProjectFile,
12169 name: *const ::std::os::raw::c_char,
12170 ) -> bool;
12171}
12172unsafe extern "C" {
12173 pub fn BNProjectFileGetDescription(file: *mut BNProjectFile) -> *mut ::std::os::raw::c_char;
12174}
12175unsafe extern "C" {
12176 pub fn BNProjectFileSetDescription(
12177 file: *mut BNProjectFile,
12178 description: *const ::std::os::raw::c_char,
12179 ) -> bool;
12180}
12181unsafe extern "C" {
12182 pub fn BNProjectFileGetId(file: *mut BNProjectFile) -> *mut ::std::os::raw::c_char;
12183}
12184unsafe extern "C" {
12185 pub fn BNProjectFileGetFolder(file: *mut BNProjectFile) -> *mut BNProjectFolder;
12186}
12187unsafe extern "C" {
12188 pub fn BNProjectFileSetFolder(file: *mut BNProjectFile, folder: *mut BNProjectFolder) -> bool;
12189}
12190unsafe extern "C" {
12191 pub fn BNProjectFileGetProject(file: *mut BNProjectFile) -> *mut BNProject;
12192}
12193unsafe extern "C" {
12194 pub fn BNProjectFileExport(
12195 file: *mut BNProjectFile,
12196 destination: *const ::std::os::raw::c_char,
12197 ) -> bool;
12198}
12199unsafe extern "C" {
12200 pub fn BNProjectFileGetCreationTimestamp(file: *mut BNProjectFile) -> i64;
12201}
12202unsafe extern "C" {
12203 pub fn BNProjectFileAddDependency(file: *mut BNProjectFile, dep: *mut BNProjectFile) -> bool;
12204}
12205unsafe extern "C" {
12206 pub fn BNProjectFileRemoveDependency(file: *mut BNProjectFile, dep: *mut BNProjectFile)
12207 -> bool;
12208}
12209unsafe extern "C" {
12210 pub fn BNProjectFileGetDependencies(
12211 file: *mut BNProjectFile,
12212 count: *mut usize,
12213 ) -> *mut *mut BNProjectFile;
12214}
12215unsafe extern "C" {
12216 pub fn BNProjectFileGetRequiredBy(
12217 file: *mut BNProjectFile,
12218 count: *mut usize,
12219 ) -> *mut *mut BNProjectFile;
12220}
12221unsafe extern "C" {
12222 #[doc = " ProjectFolder object"]
12223 pub fn BNNewProjectFolderReference(folder: *mut BNProjectFolder) -> *mut BNProjectFolder;
12224}
12225unsafe extern "C" {
12226 pub fn BNFreeProjectFolder(folder: *mut BNProjectFolder);
12227}
12228unsafe extern "C" {
12229 pub fn BNFreeProjectFolderList(folders: *mut *mut BNProjectFolder, count: usize);
12230}
12231unsafe extern "C" {
12232 pub fn BNProjectFolderGetId(folder: *mut BNProjectFolder) -> *mut ::std::os::raw::c_char;
12233}
12234unsafe extern "C" {
12235 pub fn BNProjectFolderGetName(folder: *mut BNProjectFolder) -> *mut ::std::os::raw::c_char;
12236}
12237unsafe extern "C" {
12238 pub fn BNProjectFolderSetName(
12239 folder: *mut BNProjectFolder,
12240 name: *const ::std::os::raw::c_char,
12241 ) -> bool;
12242}
12243unsafe extern "C" {
12244 pub fn BNProjectFolderGetDescription(
12245 folder: *mut BNProjectFolder,
12246 ) -> *mut ::std::os::raw::c_char;
12247}
12248unsafe extern "C" {
12249 pub fn BNProjectFolderSetDescription(
12250 folder: *mut BNProjectFolder,
12251 description: *const ::std::os::raw::c_char,
12252 ) -> bool;
12253}
12254unsafe extern "C" {
12255 pub fn BNProjectFolderGetParent(folder: *mut BNProjectFolder) -> *mut BNProjectFolder;
12256}
12257unsafe extern "C" {
12258 pub fn BNProjectFolderSetParent(
12259 folder: *mut BNProjectFolder,
12260 parent: *mut BNProjectFolder,
12261 ) -> bool;
12262}
12263unsafe extern "C" {
12264 pub fn BNProjectFolderGetProject(folder: *mut BNProjectFolder) -> *mut BNProject;
12265}
12266unsafe extern "C" {
12267 pub fn BNProjectFolderExport(
12268 folder: *mut BNProjectFolder,
12269 destination: *const ::std::os::raw::c_char,
12270 ctxt: *mut ::std::os::raw::c_void,
12271 progress: BNProgressFunction,
12272 ) -> bool;
12273}
12274unsafe extern "C" {
12275 pub fn BNProjectFolderGetFiles(
12276 folder: *mut BNProjectFolder,
12277 count: *mut usize,
12278 ) -> *mut *mut BNProjectFile;
12279}
12280unsafe extern "C" {
12281 #[doc = " ExternalLibrary object"]
12282 pub fn BNNewExternalLibraryReference(lib: *mut BNExternalLibrary) -> *mut BNExternalLibrary;
12283}
12284unsafe extern "C" {
12285 pub fn BNFreeExternalLibrary(lib: *mut BNExternalLibrary);
12286}
12287unsafe extern "C" {
12288 pub fn BNFreeExternalLibraryList(libs: *mut *mut BNExternalLibrary, count: usize);
12289}
12290unsafe extern "C" {
12291 pub fn BNExternalLibraryGetName(lib: *mut BNExternalLibrary) -> *mut ::std::os::raw::c_char;
12292}
12293unsafe extern "C" {
12294 pub fn BNExternalLibrarySetBackingFile(lib: *mut BNExternalLibrary, file: *mut BNProjectFile);
12295}
12296unsafe extern "C" {
12297 pub fn BNExternalLibraryGetBackingFile(lib: *mut BNExternalLibrary) -> *mut BNProjectFile;
12298}
12299unsafe extern "C" {
12300 #[doc = " ExternalLocation object"]
12301 pub fn BNNewExternalLocationReference(loc: *mut BNExternalLocation) -> *mut BNExternalLocation;
12302}
12303unsafe extern "C" {
12304 pub fn BNFreeExternalLocation(loc: *mut BNExternalLocation);
12305}
12306unsafe extern "C" {
12307 pub fn BNFreeExternalLocationList(locs: *mut *mut BNExternalLocation, count: usize);
12308}
12309unsafe extern "C" {
12310 pub fn BNExternalLocationGetSourceSymbol(loc: *mut BNExternalLocation) -> *mut BNSymbol;
12311}
12312unsafe extern "C" {
12313 pub fn BNExternalLocationGetTargetAddress(loc: *mut BNExternalLocation) -> u64;
12314}
12315unsafe extern "C" {
12316 pub fn BNExternalLocationGetTargetSymbol(
12317 loc: *mut BNExternalLocation,
12318 ) -> *mut ::std::os::raw::c_char;
12319}
12320unsafe extern "C" {
12321 pub fn BNExternalLocationGetExternalLibrary(
12322 loc: *mut BNExternalLocation,
12323 ) -> *mut BNExternalLibrary;
12324}
12325unsafe extern "C" {
12326 pub fn BNExternalLocationHasTargetAddress(loc: *mut BNExternalLocation) -> bool;
12327}
12328unsafe extern "C" {
12329 pub fn BNExternalLocationHasTargetSymbol(loc: *mut BNExternalLocation) -> bool;
12330}
12331unsafe extern "C" {
12332 pub fn BNExternalLocationSetTargetAddress(
12333 loc: *mut BNExternalLocation,
12334 address: *mut u64,
12335 ) -> bool;
12336}
12337unsafe extern "C" {
12338 pub fn BNExternalLocationSetTargetSymbol(
12339 loc: *mut BNExternalLocation,
12340 symbol: *const ::std::os::raw::c_char,
12341 ) -> bool;
12342}
12343unsafe extern "C" {
12344 pub fn BNExternalLocationSetExternalLibrary(
12345 loc: *mut BNExternalLocation,
12346 library: *mut BNExternalLibrary,
12347 );
12348}
12349unsafe extern "C" {
12350 #[doc = " Database object"]
12351 pub fn BNNewDatabaseReference(database: *mut BNDatabase) -> *mut BNDatabase;
12352}
12353unsafe extern "C" {
12354 pub fn BNFreeDatabase(database: *mut BNDatabase);
12355}
12356unsafe extern "C" {
12357 pub fn BNSetDatabaseCurrentSnapshot(database: *mut BNDatabase, id: i64);
12358}
12359unsafe extern "C" {
12360 pub fn BNGetDatabaseCurrentSnapshot(database: *mut BNDatabase) -> *mut BNSnapshot;
12361}
12362unsafe extern "C" {
12363 pub fn BNGetDatabaseSnapshots(
12364 database: *mut BNDatabase,
12365 count: *mut usize,
12366 ) -> *mut *mut BNSnapshot;
12367}
12368unsafe extern "C" {
12369 pub fn BNGetDatabaseSnapshot(database: *mut BNDatabase, id: i64) -> *mut BNSnapshot;
12370}
12371unsafe extern "C" {
12372 pub fn BNWriteDatabaseSnapshotData(
12373 database: *mut BNDatabase,
12374 parents: *mut i64,
12375 parentCount: usize,
12376 file: *mut BNBinaryView,
12377 name: *const ::std::os::raw::c_char,
12378 data: *mut BNKeyValueStore,
12379 autoSave: bool,
12380 ctxt: *mut ::std::os::raw::c_void,
12381 progress: BNProgressFunction,
12382 ) -> i64;
12383}
12384unsafe extern "C" {
12385 pub fn BNTrimDatabaseSnapshot(database: *mut BNDatabase, id: i64) -> bool;
12386}
12387unsafe extern "C" {
12388 pub fn BNRemoveDatabaseSnapshot(database: *mut BNDatabase, id: i64) -> bool;
12389}
12390unsafe extern "C" {
12391 pub fn BNGetDatabaseGlobalKeys(
12392 database: *mut BNDatabase,
12393 count: *mut usize,
12394 ) -> *mut *mut ::std::os::raw::c_char;
12395}
12396unsafe extern "C" {
12397 pub fn BNDatabaseHasGlobal(
12398 database: *mut BNDatabase,
12399 key: *const ::std::os::raw::c_char,
12400 ) -> ::std::os::raw::c_int;
12401}
12402unsafe extern "C" {
12403 pub fn BNReadDatabaseGlobal(
12404 database: *mut BNDatabase,
12405 key: *const ::std::os::raw::c_char,
12406 ) -> *mut ::std::os::raw::c_char;
12407}
12408unsafe extern "C" {
12409 pub fn BNWriteDatabaseGlobal(
12410 database: *mut BNDatabase,
12411 key: *const ::std::os::raw::c_char,
12412 val: *const ::std::os::raw::c_char,
12413 ) -> bool;
12414}
12415unsafe extern "C" {
12416 pub fn BNReadDatabaseGlobalData(
12417 database: *mut BNDatabase,
12418 key: *const ::std::os::raw::c_char,
12419 ) -> *mut BNDataBuffer;
12420}
12421unsafe extern "C" {
12422 pub fn BNWriteDatabaseGlobalData(
12423 database: *mut BNDatabase,
12424 key: *const ::std::os::raw::c_char,
12425 val: *mut BNDataBuffer,
12426 ) -> bool;
12427}
12428unsafe extern "C" {
12429 pub fn BNGetDatabaseFile(database: *mut BNDatabase) -> *mut BNFileMetadata;
12430}
12431unsafe extern "C" {
12432 pub fn BNDatabaseReloadConnection(database: *mut BNDatabase);
12433}
12434unsafe extern "C" {
12435 pub fn BNReadDatabaseAnalysisCache(database: *mut BNDatabase) -> *mut BNKeyValueStore;
12436}
12437unsafe extern "C" {
12438 pub fn BNWriteDatabaseAnalysisCache(
12439 database: *mut BNDatabase,
12440 val: *mut BNKeyValueStore,
12441 ) -> bool;
12442}
12443unsafe extern "C" {
12444 pub fn BNSnapshotHasData(db: *mut BNDatabase, id: i64) -> bool;
12445}
12446unsafe extern "C" {
12447 #[doc = " Database snapshots"]
12448 pub fn BNNewSnapshotReference(snapshot: *mut BNSnapshot) -> *mut BNSnapshot;
12449}
12450unsafe extern "C" {
12451 pub fn BNFreeSnapshot(snapshot: *mut BNSnapshot);
12452}
12453unsafe extern "C" {
12454 pub fn BNFreeSnapshotList(snapshots: *mut *mut BNSnapshot, count: usize);
12455}
12456unsafe extern "C" {
12457 pub fn BNGetSnapshotDatabase(snapshot: *mut BNSnapshot) -> *mut BNDatabase;
12458}
12459unsafe extern "C" {
12460 pub fn BNGetSnapshotId(snapshot: *mut BNSnapshot) -> i64;
12461}
12462unsafe extern "C" {
12463 pub fn BNGetSnapshotFirstParent(snapshot: *mut BNSnapshot) -> *mut BNSnapshot;
12464}
12465unsafe extern "C" {
12466 pub fn BNGetSnapshotParents(
12467 snapshot: *mut BNSnapshot,
12468 count: *mut usize,
12469 ) -> *mut *mut BNSnapshot;
12470}
12471unsafe extern "C" {
12472 pub fn BNGetSnapshotChildren(
12473 snapshot: *mut BNSnapshot,
12474 count: *mut usize,
12475 ) -> *mut *mut BNSnapshot;
12476}
12477unsafe extern "C" {
12478 pub fn BNGetSnapshotName(snapshot: *mut BNSnapshot) -> *mut ::std::os::raw::c_char;
12479}
12480unsafe extern "C" {
12481 pub fn BNSetSnapshotName(snapshot: *mut BNSnapshot, name: *const ::std::os::raw::c_char);
12482}
12483unsafe extern "C" {
12484 pub fn BNIsSnapshotAutoSave(snapshot: *mut BNSnapshot) -> bool;
12485}
12486unsafe extern "C" {
12487 pub fn BNSnapshotHasContents(snapshot: *mut BNSnapshot) -> bool;
12488}
12489unsafe extern "C" {
12490 pub fn BNSnapshotHasUndo(snapshot: *mut BNSnapshot) -> bool;
12491}
12492unsafe extern "C" {
12493 pub fn BNGetSnapshotFileContents(snapshot: *mut BNSnapshot) -> *mut BNDataBuffer;
12494}
12495unsafe extern "C" {
12496 pub fn BNGetSnapshotFileContentsHash(snapshot: *mut BNSnapshot) -> *mut BNDataBuffer;
12497}
12498unsafe extern "C" {
12499 pub fn BNReadSnapshotData(snapshot: *mut BNSnapshot) -> *mut BNKeyValueStore;
12500}
12501unsafe extern "C" {
12502 pub fn BNReadSnapshotDataWithProgress(
12503 snapshot: *mut BNSnapshot,
12504 ctxt: *mut ::std::os::raw::c_void,
12505 progress: BNProgressFunction,
12506 ) -> *mut BNKeyValueStore;
12507}
12508unsafe extern "C" {
12509 pub fn BNGetSnapshotUndoData(snapshot: *mut BNSnapshot) -> *mut BNDataBuffer;
12510}
12511unsafe extern "C" {
12512 pub fn BNGetSnapshotUndoEntries(
12513 snapshot: *mut BNSnapshot,
12514 count: *mut usize,
12515 ) -> *mut *mut BNUndoEntry;
12516}
12517unsafe extern "C" {
12518 pub fn BNGetSnapshotUndoEntriesWithProgress(
12519 snapshot: *mut BNSnapshot,
12520 ctxt: *mut ::std::os::raw::c_void,
12521 progress: BNProgressFunction,
12522 count: *mut usize,
12523 ) -> *mut *mut BNUndoEntry;
12524}
12525unsafe extern "C" {
12526 pub fn BNSnapshotHasAncestor(snapshot: *mut BNSnapshot, other: *mut BNSnapshot) -> bool;
12527}
12528unsafe extern "C" {
12529 pub fn BNSnapshotStoreData(
12530 snapshot: *mut BNSnapshot,
12531 data: *mut BNKeyValueStore,
12532 ctxt: *mut ::std::os::raw::c_void,
12533 progress: BNProgressFunction,
12534 ) -> bool;
12535}
12536unsafe extern "C" {
12537 #[doc = " Undo actions"]
12538 pub fn BNNewUndoActionReference(action: *mut BNUndoAction) -> *mut BNUndoAction;
12539}
12540unsafe extern "C" {
12541 pub fn BNFreeUndoAction(action: *mut BNUndoAction);
12542}
12543unsafe extern "C" {
12544 pub fn BNFreeUndoActionList(actions: *mut *mut BNUndoAction, count: usize);
12545}
12546unsafe extern "C" {
12547 pub fn BNUndoActionGetSummaryText(action: *mut BNUndoAction) -> *mut ::std::os::raw::c_char;
12548}
12549unsafe extern "C" {
12550 pub fn BNUndoActionGetSummary(
12551 action: *mut BNUndoAction,
12552 tokenCount: *mut usize,
12553 ) -> *mut BNInstructionTextToken;
12554}
12555unsafe extern "C" {
12556 #[doc = " Undo entries"]
12557 pub fn BNNewUndoEntryReference(entry: *mut BNUndoEntry) -> *mut BNUndoEntry;
12558}
12559unsafe extern "C" {
12560 pub fn BNFreeUndoEntry(entry: *mut BNUndoEntry);
12561}
12562unsafe extern "C" {
12563 pub fn BNFreeUndoEntryList(entrys: *mut *mut BNUndoEntry, count: usize);
12564}
12565unsafe extern "C" {
12566 pub fn BNUndoEntryGetId(entry: *mut BNUndoEntry) -> *mut ::std::os::raw::c_char;
12567}
12568unsafe extern "C" {
12569 pub fn BNUndoEntryGetActions(
12570 entry: *mut BNUndoEntry,
12571 count: *mut usize,
12572 ) -> *mut *mut BNUndoAction;
12573}
12574unsafe extern "C" {
12575 pub fn BNUndoEntryGetTimestamp(entry: *mut BNUndoEntry) -> u64;
12576}
12577unsafe extern "C" {
12578 pub fn BNRebase(data: *mut BNBinaryView, address: u64) -> bool;
12579}
12580unsafe extern "C" {
12581 pub fn BNRebaseWithProgress(
12582 data: *mut BNBinaryView,
12583 address: u64,
12584 ctxt: *mut ::std::os::raw::c_void,
12585 progress: BNProgressFunction,
12586 ) -> bool;
12587}
12588unsafe extern "C" {
12589 pub fn BNCreateSnapshotedView(
12590 data: *mut BNBinaryView,
12591 viewName: *const ::std::os::raw::c_char,
12592 ) -> bool;
12593}
12594unsafe extern "C" {
12595 pub fn BNCreateSnapshotedViewWithProgress(
12596 data: *mut BNBinaryView,
12597 viewName: *const ::std::os::raw::c_char,
12598 ctxt: *mut ::std::os::raw::c_void,
12599 progress: BNProgressFunction,
12600 ) -> bool;
12601}
12602unsafe extern "C" {
12603 pub fn BNGetOriginalFilename(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
12604}
12605unsafe extern "C" {
12606 pub fn BNSetOriginalFilename(file: *mut BNFileMetadata, name: *const ::std::os::raw::c_char);
12607}
12608unsafe extern "C" {
12609 pub fn BNGetFilename(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
12610}
12611unsafe extern "C" {
12612 pub fn BNSetFilename(file: *mut BNFileMetadata, name: *const ::std::os::raw::c_char);
12613}
12614unsafe extern "C" {
12615 pub fn BNGetVirtualPath(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
12616}
12617unsafe extern "C" {
12618 pub fn BNSetVirtualPath(file: *mut BNFileMetadata, path: *const ::std::os::raw::c_char);
12619}
12620unsafe extern "C" {
12621 pub fn BNGetDisplayName(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
12622}
12623unsafe extern "C" {
12624 pub fn BNSetDisplayName(file: *mut BNFileMetadata, name: *const ::std::os::raw::c_char);
12625}
12626unsafe extern "C" {
12627 pub fn BNGetProjectFile(file: *mut BNFileMetadata) -> *mut BNProjectFile;
12628}
12629unsafe extern "C" {
12630 pub fn BNSetProjectFile(file: *mut BNFileMetadata, pfile: *mut BNProjectFile);
12631}
12632unsafe extern "C" {
12633 pub fn BNBeginUndoActions(
12634 file: *mut BNFileMetadata,
12635 anonymousAllowed: bool,
12636 ) -> *mut ::std::os::raw::c_char;
12637}
12638unsafe extern "C" {
12639 pub fn BNCommitUndoActions(file: *mut BNFileMetadata, id: *const ::std::os::raw::c_char);
12640}
12641unsafe extern "C" {
12642 pub fn BNRevertUndoActions(file: *mut BNFileMetadata, id: *const ::std::os::raw::c_char);
12643}
12644unsafe extern "C" {
12645 pub fn BNForgetUndoActions(file: *mut BNFileMetadata, id: *const ::std::os::raw::c_char);
12646}
12647unsafe extern "C" {
12648 pub fn BNCanUndo(file: *mut BNFileMetadata) -> bool;
12649}
12650unsafe extern "C" {
12651 pub fn BNUndo(file: *mut BNFileMetadata) -> bool;
12652}
12653unsafe extern "C" {
12654 pub fn BNCanRedo(file: *mut BNFileMetadata) -> bool;
12655}
12656unsafe extern "C" {
12657 pub fn BNRedo(file: *mut BNFileMetadata) -> bool;
12658}
12659unsafe extern "C" {
12660 pub fn BNGetUndoEntries(file: *mut BNFileMetadata, count: *mut usize) -> *mut *mut BNUndoEntry;
12661}
12662unsafe extern "C" {
12663 pub fn BNGetRedoEntries(file: *mut BNFileMetadata, count: *mut usize) -> *mut *mut BNUndoEntry;
12664}
12665unsafe extern "C" {
12666 pub fn BNGetLastUndoEntry(file: *mut BNFileMetadata) -> *mut BNUndoEntry;
12667}
12668unsafe extern "C" {
12669 pub fn BNGetLastRedoEntry(file: *mut BNFileMetadata) -> *mut BNUndoEntry;
12670}
12671unsafe extern "C" {
12672 pub fn BNGetLastUndoEntryTitle(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
12673}
12674unsafe extern "C" {
12675 pub fn BNGetLastRedoEntryTitle(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
12676}
12677unsafe extern "C" {
12678 pub fn BNFreeUndoEntries(entries: *mut *mut BNUndoEntry, count: usize);
12679}
12680unsafe extern "C" {
12681 pub fn BNClearUndoEntries(file: *mut BNFileMetadata);
12682}
12683unsafe extern "C" {
12684 pub fn BNNewUserReference(user: *mut BNUser) -> *mut BNUser;
12685}
12686unsafe extern "C" {
12687 pub fn BNFreeUser(user: *mut BNUser);
12688}
12689unsafe extern "C" {
12690 pub fn BNGetUsers(file: *mut BNFileMetadata, count: *mut usize) -> *mut *mut BNUser;
12691}
12692unsafe extern "C" {
12693 pub fn BNFreeUserList(users: *mut *mut BNUser, count: usize);
12694}
12695unsafe extern "C" {
12696 pub fn BNGetUserName(user: *mut BNUser) -> *mut ::std::os::raw::c_char;
12697}
12698unsafe extern "C" {
12699 pub fn BNGetUserEmail(user: *mut BNUser) -> *mut ::std::os::raw::c_char;
12700}
12701unsafe extern "C" {
12702 pub fn BNGetUserId(user: *mut BNUser) -> *mut ::std::os::raw::c_char;
12703}
12704unsafe extern "C" {
12705 pub fn BNGetCurrentView(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
12706}
12707unsafe extern "C" {
12708 pub fn BNGetCurrentOffset(file: *mut BNFileMetadata) -> u64;
12709}
12710unsafe extern "C" {
12711 pub fn BNNavigate(
12712 file: *mut BNFileMetadata,
12713 view: *const ::std::os::raw::c_char,
12714 offset: u64,
12715 ) -> bool;
12716}
12717unsafe extern "C" {
12718 pub fn BNGetFileViewOfType(
12719 file: *mut BNFileMetadata,
12720 name: *const ::std::os::raw::c_char,
12721 ) -> *mut BNBinaryView;
12722}
12723unsafe extern "C" {
12724 pub fn BNGetExistingViews(
12725 file: *mut BNFileMetadata,
12726 count: *mut usize,
12727 ) -> *mut *mut ::std::os::raw::c_char;
12728}
12729unsafe extern "C" {
12730 pub fn BNFileMetadataGetSessionId(file: *mut BNFileMetadata) -> usize;
12731}
12732unsafe extern "C" {
12733 pub fn BNIsSnapshotDataAppliedWithoutError(view: *mut BNFileMetadata) -> bool;
12734}
12735unsafe extern "C" {
12736 pub fn BNUnregisterViewOfType(
12737 file: *mut BNFileMetadata,
12738 type_: *const ::std::os::raw::c_char,
12739 view: *mut BNBinaryView,
12740 );
12741}
12742unsafe extern "C" {
12743 #[doc = " Memory Map"]
12744 pub fn BNGetBaseMemoryMapDescription(view: *mut BNBinaryView) -> *mut ::std::os::raw::c_char;
12745}
12746unsafe extern "C" {
12747 pub fn BNGetMemoryMapDescription(view: *mut BNBinaryView) -> *mut ::std::os::raw::c_char;
12748}
12749unsafe extern "C" {
12750 pub fn BNSetLogicalMemoryMapEnabled(view: *mut BNBinaryView, enabled: bool);
12751}
12752unsafe extern "C" {
12753 pub fn BNIsMemoryMapActivated(view: *mut BNBinaryView) -> bool;
12754}
12755unsafe extern "C" {
12756 pub fn BNAddBinaryMemoryRegion(
12757 view: *mut BNBinaryView,
12758 name: *const ::std::os::raw::c_char,
12759 start: u64,
12760 data: *mut BNBinaryView,
12761 flags: u32,
12762 ) -> bool;
12763}
12764unsafe extern "C" {
12765 pub fn BNAddDataMemoryRegion(
12766 view: *mut BNBinaryView,
12767 name: *const ::std::os::raw::c_char,
12768 start: u64,
12769 data: *mut BNDataBuffer,
12770 flags: u32,
12771 ) -> bool;
12772}
12773unsafe extern "C" {
12774 pub fn BNAddUnbackedMemoryRegion(
12775 view: *mut BNBinaryView,
12776 name: *const ::std::os::raw::c_char,
12777 start: u64,
12778 length: u64,
12779 flags: u32,
12780 fill: u8,
12781 ) -> bool;
12782}
12783unsafe extern "C" {
12784 pub fn BNAddRemoteMemoryRegion(
12785 view: *mut BNBinaryView,
12786 name: *const ::std::os::raw::c_char,
12787 start: u64,
12788 accessor: *mut BNFileAccessor,
12789 flags: u32,
12790 ) -> bool;
12791}
12792unsafe extern "C" {
12793 pub fn BNRemoveMemoryRegion(
12794 view: *mut BNBinaryView,
12795 name: *const ::std::os::raw::c_char,
12796 ) -> bool;
12797}
12798unsafe extern "C" {
12799 pub fn BNGetActiveMemoryRegionAt(
12800 view: *mut BNBinaryView,
12801 addr: u64,
12802 ) -> *mut ::std::os::raw::c_char;
12803}
12804unsafe extern "C" {
12805 pub fn BNGetMemoryRegionFlags(
12806 view: *mut BNBinaryView,
12807 name: *const ::std::os::raw::c_char,
12808 ) -> u32;
12809}
12810unsafe extern "C" {
12811 pub fn BNSetMemoryRegionFlags(
12812 view: *mut BNBinaryView,
12813 name: *const ::std::os::raw::c_char,
12814 flags: u32,
12815 ) -> bool;
12816}
12817unsafe extern "C" {
12818 pub fn BNIsMemoryRegionEnabled(
12819 view: *mut BNBinaryView,
12820 name: *const ::std::os::raw::c_char,
12821 ) -> bool;
12822}
12823unsafe extern "C" {
12824 pub fn BNSetMemoryRegionEnabled(
12825 view: *mut BNBinaryView,
12826 name: *const ::std::os::raw::c_char,
12827 enable: bool,
12828 ) -> bool;
12829}
12830unsafe extern "C" {
12831 pub fn BNIsMemoryRegionRebaseable(
12832 view: *mut BNBinaryView,
12833 name: *const ::std::os::raw::c_char,
12834 ) -> bool;
12835}
12836unsafe extern "C" {
12837 pub fn BNSetMemoryRegionRebaseable(
12838 view: *mut BNBinaryView,
12839 name: *const ::std::os::raw::c_char,
12840 rebaseable: bool,
12841 ) -> bool;
12842}
12843unsafe extern "C" {
12844 pub fn BNGetMemoryRegionFill(
12845 view: *mut BNBinaryView,
12846 name: *const ::std::os::raw::c_char,
12847 ) -> u8;
12848}
12849unsafe extern "C" {
12850 pub fn BNSetMemoryRegionFill(
12851 view: *mut BNBinaryView,
12852 name: *const ::std::os::raw::c_char,
12853 fill: u8,
12854 ) -> bool;
12855}
12856unsafe extern "C" {
12857 pub fn BNGetMemoryRegionDisplayName(
12858 view: *mut BNBinaryView,
12859 name: *const ::std::os::raw::c_char,
12860 ) -> *mut ::std::os::raw::c_char;
12861}
12862unsafe extern "C" {
12863 pub fn BNSetMemoryRegionDisplayName(
12864 view: *mut BNBinaryView,
12865 name: *const ::std::os::raw::c_char,
12866 displayName: *const ::std::os::raw::c_char,
12867 ) -> bool;
12868}
12869unsafe extern "C" {
12870 pub fn BNIsMemoryRegionLocal(
12871 view: *mut BNBinaryView,
12872 name: *const ::std::os::raw::c_char,
12873 ) -> bool;
12874}
12875unsafe extern "C" {
12876 pub fn BNGetMemoryRegionInfo(
12877 view: *mut BNBinaryView,
12878 name: *const ::std::os::raw::c_char,
12879 result: *mut BNMemoryRegionInfo,
12880 ) -> bool;
12881}
12882unsafe extern "C" {
12883 pub fn BNGetActiveMemoryRegionInfoAt(
12884 view: *mut BNBinaryView,
12885 addr: u64,
12886 result: *mut BNMemoryRegionInfo,
12887 ) -> bool;
12888}
12889unsafe extern "C" {
12890 pub fn BNGetResolvedMemoryRangeAt(
12891 view: *mut BNBinaryView,
12892 addr: u64,
12893 result: *mut BNResolvedMemoryRange,
12894 ) -> bool;
12895}
12896unsafe extern "C" {
12897 pub fn BNFreeMemoryRegionInfo(info: *mut BNMemoryRegionInfo);
12898}
12899unsafe extern "C" {
12900 pub fn BNFreeResolvedMemoryRange(range: *mut BNResolvedMemoryRange);
12901}
12902unsafe extern "C" {
12903 pub fn BNGetMemoryRegions(
12904 view: *mut BNBinaryView,
12905 count: *mut usize,
12906 ) -> *mut BNMemoryRegionInfo;
12907}
12908unsafe extern "C" {
12909 pub fn BNFreeMemoryRegions(regions: *mut BNMemoryRegionInfo, count: usize);
12910}
12911unsafe extern "C" {
12912 pub fn BNGetResolvedMemoryRanges(
12913 view: *mut BNBinaryView,
12914 count: *mut usize,
12915 ) -> *mut BNResolvedMemoryRange;
12916}
12917unsafe extern "C" {
12918 pub fn BNFreeResolvedMemoryRanges(ranges: *mut BNResolvedMemoryRange, count: usize);
12919}
12920unsafe extern "C" {
12921 pub fn BNResetMemoryMap(view: *mut BNBinaryView);
12922}
12923unsafe extern "C" {
12924 #[doc = " Binary view access"]
12925 pub fn BNNewViewReference(view: *mut BNBinaryView) -> *mut BNBinaryView;
12926}
12927unsafe extern "C" {
12928 pub fn BNFreeBinaryView(view: *mut BNBinaryView);
12929}
12930unsafe extern "C" {
12931 pub fn BNGetFileForView(view: *mut BNBinaryView) -> *mut BNFileMetadata;
12932}
12933unsafe extern "C" {
12934 pub fn BNGetViewType(view: *mut BNBinaryView) -> *mut ::std::os::raw::c_char;
12935}
12936unsafe extern "C" {
12937 pub fn BNGetParentView(view: *mut BNBinaryView) -> *mut BNBinaryView;
12938}
12939unsafe extern "C" {
12940 pub fn BNReadViewData(
12941 view: *mut BNBinaryView,
12942 dest: *mut ::std::os::raw::c_void,
12943 offset: u64,
12944 len: usize,
12945 ) -> usize;
12946}
12947unsafe extern "C" {
12948 pub fn BNReadViewBuffer(view: *mut BNBinaryView, offset: u64, len: usize) -> *mut BNDataBuffer;
12949}
12950unsafe extern "C" {
12951 pub fn BNGetViewDataPointer(view: *mut BNBinaryView) -> *const u8;
12952}
12953unsafe extern "C" {
12954 pub fn BNGetViewDataLength(view: *mut BNBinaryView) -> usize;
12955}
12956unsafe extern "C" {
12957 pub fn BNWriteViewData(
12958 view: *mut BNBinaryView,
12959 offset: u64,
12960 data: *const ::std::os::raw::c_void,
12961 len: usize,
12962 ) -> usize;
12963}
12964unsafe extern "C" {
12965 pub fn BNWriteViewBuffer(
12966 view: *mut BNBinaryView,
12967 offset: u64,
12968 data: *mut BNDataBuffer,
12969 ) -> usize;
12970}
12971unsafe extern "C" {
12972 pub fn BNInsertViewData(
12973 view: *mut BNBinaryView,
12974 offset: u64,
12975 data: *const ::std::os::raw::c_void,
12976 len: usize,
12977 ) -> usize;
12978}
12979unsafe extern "C" {
12980 pub fn BNInsertViewBuffer(
12981 view: *mut BNBinaryView,
12982 offset: u64,
12983 data: *mut BNDataBuffer,
12984 ) -> usize;
12985}
12986unsafe extern "C" {
12987 pub fn BNRemoveViewData(view: *mut BNBinaryView, offset: u64, len: u64) -> usize;
12988}
12989unsafe extern "C" {
12990 pub fn BNNotifyDataWritten(view: *mut BNBinaryView, offset: u64, len: usize);
12991}
12992unsafe extern "C" {
12993 pub fn BNNotifyDataInserted(view: *mut BNBinaryView, offset: u64, len: usize);
12994}
12995unsafe extern "C" {
12996 pub fn BNNotifyDataRemoved(view: *mut BNBinaryView, offset: u64, len: u64);
12997}
12998unsafe extern "C" {
12999 pub fn BNGetEntropy(
13000 view: *mut BNBinaryView,
13001 offset: u64,
13002 len: usize,
13003 blockSize: usize,
13004 result: *mut f32,
13005 ) -> usize;
13006}
13007unsafe extern "C" {
13008 pub fn BNGetModification(view: *mut BNBinaryView, offset: u64) -> BNModificationStatus;
13009}
13010unsafe extern "C" {
13011 pub fn BNGetModificationArray(
13012 view: *mut BNBinaryView,
13013 offset: u64,
13014 result: *mut BNModificationStatus,
13015 len: usize,
13016 ) -> usize;
13017}
13018unsafe extern "C" {
13019 pub fn BNIsValidOffset(view: *mut BNBinaryView, offset: u64) -> bool;
13020}
13021unsafe extern "C" {
13022 pub fn BNIsOffsetReadable(view: *mut BNBinaryView, offset: u64) -> bool;
13023}
13024unsafe extern "C" {
13025 pub fn BNIsOffsetWritable(view: *mut BNBinaryView, offset: u64) -> bool;
13026}
13027unsafe extern "C" {
13028 pub fn BNIsOffsetExecutable(view: *mut BNBinaryView, offset: u64) -> bool;
13029}
13030unsafe extern "C" {
13031 pub fn BNIsOffsetBackedByFile(view: *mut BNBinaryView, offset: u64) -> bool;
13032}
13033unsafe extern "C" {
13034 pub fn BNIsOffsetCodeSemantics(view: *mut BNBinaryView, offset: u64) -> bool;
13035}
13036unsafe extern "C" {
13037 pub fn BNIsOffsetExternSemantics(view: *mut BNBinaryView, offset: u64) -> bool;
13038}
13039unsafe extern "C" {
13040 pub fn BNIsOffsetWritableSemantics(view: *mut BNBinaryView, offset: u64) -> bool;
13041}
13042unsafe extern "C" {
13043 pub fn BNIsOffsetReadOnlySemantics(view: *mut BNBinaryView, offset: u64) -> bool;
13044}
13045unsafe extern "C" {
13046 pub fn BNGetNextValidOffset(view: *mut BNBinaryView, offset: u64) -> u64;
13047}
13048unsafe extern "C" {
13049 pub fn BNGetImageBase(view: *mut BNBinaryView) -> u64;
13050}
13051unsafe extern "C" {
13052 pub fn BNGetOriginalImageBase(view: *mut BNBinaryView) -> u64;
13053}
13054unsafe extern "C" {
13055 pub fn BNSetOriginalImageBase(view: *mut BNBinaryView, imageBase: u64);
13056}
13057unsafe extern "C" {
13058 pub fn BNGetStartOffset(view: *mut BNBinaryView) -> u64;
13059}
13060unsafe extern "C" {
13061 pub fn BNGetEndOffset(view: *mut BNBinaryView) -> u64;
13062}
13063unsafe extern "C" {
13064 pub fn BNGetViewLength(view: *mut BNBinaryView) -> u64;
13065}
13066unsafe extern "C" {
13067 pub fn BNGetEntryPoint(view: *mut BNBinaryView) -> u64;
13068}
13069unsafe extern "C" {
13070 pub fn BNGetDefaultArchitecture(view: *mut BNBinaryView) -> *mut BNArchitecture;
13071}
13072unsafe extern "C" {
13073 pub fn BNSetDefaultArchitecture(view: *mut BNBinaryView, arch: *mut BNArchitecture);
13074}
13075unsafe extern "C" {
13076 pub fn BNGetDefaultPlatform(view: *mut BNBinaryView) -> *mut BNPlatform;
13077}
13078unsafe extern "C" {
13079 pub fn BNSetDefaultPlatform(view: *mut BNBinaryView, platform: *mut BNPlatform);
13080}
13081unsafe extern "C" {
13082 pub fn BNGetDefaultEndianness(view: *mut BNBinaryView) -> BNEndianness;
13083}
13084unsafe extern "C" {
13085 pub fn BNIsRelocatable(view: *mut BNBinaryView) -> bool;
13086}
13087unsafe extern "C" {
13088 pub fn BNGetViewAddressSize(view: *mut BNBinaryView) -> usize;
13089}
13090unsafe extern "C" {
13091 pub fn BNIsViewModified(view: *mut BNBinaryView) -> bool;
13092}
13093unsafe extern "C" {
13094 pub fn BNIsExecutableView(view: *mut BNBinaryView) -> bool;
13095}
13096unsafe extern "C" {
13097 pub fn BNSaveToFile(view: *mut BNBinaryView, file: *mut BNFileAccessor) -> bool;
13098}
13099unsafe extern "C" {
13100 pub fn BNSaveToFilename(
13101 view: *mut BNBinaryView,
13102 filename: *const ::std::os::raw::c_char,
13103 ) -> bool;
13104}
13105unsafe extern "C" {
13106 pub fn BNDefineRelocation(
13107 view: *mut BNBinaryView,
13108 arch: *mut BNArchitecture,
13109 info: *mut BNRelocationInfo,
13110 target: u64,
13111 reloc: u64,
13112 );
13113}
13114unsafe extern "C" {
13115 pub fn BNDefineSymbolRelocation(
13116 view: *mut BNBinaryView,
13117 arch: *mut BNArchitecture,
13118 info: *mut BNRelocationInfo,
13119 target: *mut BNSymbol,
13120 reloc: u64,
13121 );
13122}
13123unsafe extern "C" {
13124 pub fn BNGetRelocationRanges(view: *mut BNBinaryView, count: *mut usize) -> *mut BNRange;
13125}
13126unsafe extern "C" {
13127 pub fn BNGetRelocationRangesAtAddress(
13128 view: *mut BNBinaryView,
13129 addr: u64,
13130 count: *mut usize,
13131 ) -> *mut BNRange;
13132}
13133unsafe extern "C" {
13134 pub fn BNGetRelocationRangesInRange(
13135 view: *mut BNBinaryView,
13136 addr: u64,
13137 size: u64,
13138 count: *mut usize,
13139 ) -> *mut BNRange;
13140}
13141unsafe extern "C" {
13142 pub fn BNRangeContainsRelocation(view: *mut BNBinaryView, addr: u64, size: usize) -> bool;
13143}
13144unsafe extern "C" {
13145 pub fn BNGetRelocationsAt(
13146 view: *mut BNBinaryView,
13147 addr: u64,
13148 count: *mut usize,
13149 ) -> *mut *mut BNRelocation;
13150}
13151unsafe extern "C" {
13152 pub fn BNFreeRelocationList(relocations: *mut *mut BNRelocation, count: usize);
13153}
13154unsafe extern "C" {
13155 pub fn BNFreeRelocationRanges(ranges: *mut BNRange);
13156}
13157unsafe extern "C" {
13158 pub fn BNGetNextRelocation(
13159 view: *mut BNBinaryView,
13160 addr: u64,
13161 maxAddr: u64,
13162 ) -> *mut BNRelocation;
13163}
13164unsafe extern "C" {
13165 pub fn BNRegisterDataNotification(
13166 view: *mut BNBinaryView,
13167 notify: *mut BNBinaryDataNotification,
13168 );
13169}
13170unsafe extern "C" {
13171 pub fn BNUnregisterDataNotification(
13172 view: *mut BNBinaryView,
13173 notify: *mut BNBinaryDataNotification,
13174 );
13175}
13176unsafe extern "C" {
13177 pub fn BNRegisterProjectNotification(
13178 project: *mut BNProject,
13179 notify: *mut BNProjectNotification,
13180 );
13181}
13182unsafe extern "C" {
13183 pub fn BNUnregisterProjectNotification(
13184 project: *mut BNProject,
13185 notify: *mut BNProjectNotification,
13186 );
13187}
13188unsafe extern "C" {
13189 pub fn BNCanAssemble(view: *mut BNBinaryView, arch: *mut BNArchitecture) -> bool;
13190}
13191unsafe extern "C" {
13192 pub fn BNIsNeverBranchPatchAvailable(
13193 view: *mut BNBinaryView,
13194 arch: *mut BNArchitecture,
13195 addr: u64,
13196 ) -> bool;
13197}
13198unsafe extern "C" {
13199 pub fn BNIsAlwaysBranchPatchAvailable(
13200 view: *mut BNBinaryView,
13201 arch: *mut BNArchitecture,
13202 addr: u64,
13203 ) -> bool;
13204}
13205unsafe extern "C" {
13206 pub fn BNIsInvertBranchPatchAvailable(
13207 view: *mut BNBinaryView,
13208 arch: *mut BNArchitecture,
13209 addr: u64,
13210 ) -> bool;
13211}
13212unsafe extern "C" {
13213 pub fn BNIsSkipAndReturnZeroPatchAvailable(
13214 view: *mut BNBinaryView,
13215 arch: *mut BNArchitecture,
13216 addr: u64,
13217 ) -> bool;
13218}
13219unsafe extern "C" {
13220 pub fn BNIsSkipAndReturnValuePatchAvailable(
13221 view: *mut BNBinaryView,
13222 arch: *mut BNArchitecture,
13223 addr: u64,
13224 ) -> bool;
13225}
13226unsafe extern "C" {
13227 pub fn BNConvertToNop(view: *mut BNBinaryView, arch: *mut BNArchitecture, addr: u64) -> bool;
13228}
13229unsafe extern "C" {
13230 pub fn BNAlwaysBranch(view: *mut BNBinaryView, arch: *mut BNArchitecture, addr: u64) -> bool;
13231}
13232unsafe extern "C" {
13233 pub fn BNInvertBranch(view: *mut BNBinaryView, arch: *mut BNArchitecture, addr: u64) -> bool;
13234}
13235unsafe extern "C" {
13236 pub fn BNSkipAndReturnValue(
13237 view: *mut BNBinaryView,
13238 arch: *mut BNArchitecture,
13239 addr: u64,
13240 value: u64,
13241 ) -> bool;
13242}
13243unsafe extern "C" {
13244 pub fn BNGetInstructionLength(
13245 view: *mut BNBinaryView,
13246 arch: *mut BNArchitecture,
13247 addr: u64,
13248 ) -> usize;
13249}
13250unsafe extern "C" {
13251 pub fn BNFindNextData(
13252 view: *mut BNBinaryView,
13253 start: u64,
13254 data: *mut BNDataBuffer,
13255 result: *mut u64,
13256 flags: BNFindFlag,
13257 ) -> bool;
13258}
13259unsafe extern "C" {
13260 pub fn BNFindNextText(
13261 view: *mut BNBinaryView,
13262 start: u64,
13263 data: *const ::std::os::raw::c_char,
13264 result: *mut u64,
13265 settings: *mut BNDisassemblySettings,
13266 flags: BNFindFlag,
13267 viewType: BNFunctionViewType,
13268 ) -> bool;
13269}
13270unsafe extern "C" {
13271 pub fn BNFindNextConstant(
13272 view: *mut BNBinaryView,
13273 start: u64,
13274 constant: u64,
13275 result: *mut u64,
13276 settings: *mut BNDisassemblySettings,
13277 viewType: BNFunctionViewType,
13278 ) -> bool;
13279}
13280unsafe extern "C" {
13281 pub fn BNFindNextDataWithProgress(
13282 view: *mut BNBinaryView,
13283 start: u64,
13284 end: u64,
13285 data: *mut BNDataBuffer,
13286 result: *mut u64,
13287 flags: BNFindFlag,
13288 ctxt: *mut ::std::os::raw::c_void,
13289 progress: BNProgressFunction,
13290 ) -> bool;
13291}
13292unsafe extern "C" {
13293 pub fn BNFindNextTextWithProgress(
13294 view: *mut BNBinaryView,
13295 start: u64,
13296 end: u64,
13297 data: *const ::std::os::raw::c_char,
13298 result: *mut u64,
13299 settings: *mut BNDisassemblySettings,
13300 flags: BNFindFlag,
13301 viewType: BNFunctionViewType,
13302 ctxt: *mut ::std::os::raw::c_void,
13303 progress: BNProgressFunction,
13304 ) -> bool;
13305}
13306unsafe extern "C" {
13307 pub fn BNFindNextConstantWithProgress(
13308 view: *mut BNBinaryView,
13309 start: u64,
13310 end: u64,
13311 constant: u64,
13312 result: *mut u64,
13313 settings: *mut BNDisassemblySettings,
13314 viewType: BNFunctionViewType,
13315 ctxt: *mut ::std::os::raw::c_void,
13316 progress: BNProgressFunction,
13317 ) -> bool;
13318}
13319unsafe extern "C" {
13320 pub fn BNFindAllDataWithProgress(
13321 view: *mut BNBinaryView,
13322 start: u64,
13323 end: u64,
13324 data: *mut BNDataBuffer,
13325 flags: BNFindFlag,
13326 ctxt: *mut ::std::os::raw::c_void,
13327 progress: BNProgressFunction,
13328 matchCtxt: *mut ::std::os::raw::c_void,
13329 matchCallback: ::std::option::Option<
13330 unsafe extern "C" fn(
13331 matchCtxt: *mut ::std::os::raw::c_void,
13332 addr: u64,
13333 match_: *mut BNDataBuffer,
13334 ) -> bool,
13335 >,
13336 ) -> bool;
13337}
13338unsafe extern "C" {
13339 pub fn BNFindAllTextWithProgress(
13340 view: *mut BNBinaryView,
13341 start: u64,
13342 end: u64,
13343 data: *const ::std::os::raw::c_char,
13344 settings: *mut BNDisassemblySettings,
13345 flags: BNFindFlag,
13346 viewType: BNFunctionViewType,
13347 ctxt: *mut ::std::os::raw::c_void,
13348 progress: BNProgressFunction,
13349 matchCtxt: *mut ::std::os::raw::c_void,
13350 matchCallback: ::std::option::Option<
13351 unsafe extern "C" fn(
13352 matchCtxt: *mut ::std::os::raw::c_void,
13353 addr: u64,
13354 match_: *const ::std::os::raw::c_char,
13355 line: *mut BNLinearDisassemblyLine,
13356 ) -> bool,
13357 >,
13358 ) -> bool;
13359}
13360unsafe extern "C" {
13361 pub fn BNFindAllConstantWithProgress(
13362 view: *mut BNBinaryView,
13363 start: u64,
13364 end: u64,
13365 constant: u64,
13366 settings: *mut BNDisassemblySettings,
13367 viewType: BNFunctionViewType,
13368 ctxt: *mut ::std::os::raw::c_void,
13369 progress: BNProgressFunction,
13370 matchCtxt: *mut ::std::os::raw::c_void,
13371 matchCallback: ::std::option::Option<
13372 unsafe extern "C" fn(
13373 matchCtxt: *mut ::std::os::raw::c_void,
13374 addr: u64,
13375 line: *mut BNLinearDisassemblyLine,
13376 ) -> bool,
13377 >,
13378 ) -> bool;
13379}
13380unsafe extern "C" {
13381 pub fn BNSearch(
13382 view: *mut BNBinaryView,
13383 query: *const ::std::os::raw::c_char,
13384 context: *mut ::std::os::raw::c_void,
13385 progressCallback: BNProgressFunction,
13386 matchContext: *mut ::std::os::raw::c_void,
13387 callback: ::std::option::Option<
13388 unsafe extern "C" fn(
13389 arg1: *mut ::std::os::raw::c_void,
13390 arg2: u64,
13391 arg3: *mut BNDataBuffer,
13392 ) -> bool,
13393 >,
13394 ) -> bool;
13395}
13396unsafe extern "C" {
13397 pub fn BNDetectSearchMode(query: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
13398}
13399unsafe extern "C" {
13400 pub fn BNPerformSearch(
13401 query: *const ::std::os::raw::c_char,
13402 buffer: *const u8,
13403 size: usize,
13404 callback: BNProgressFunction,
13405 context: *mut ::std::os::raw::c_void,
13406 ) -> bool;
13407}
13408unsafe extern "C" {
13409 pub fn BNBeginBulkAddSegments(view: *mut BNBinaryView);
13410}
13411unsafe extern "C" {
13412 pub fn BNEndBulkAddSegments(view: *mut BNBinaryView);
13413}
13414unsafe extern "C" {
13415 pub fn BNCancelBulkAddSegments(view: *mut BNBinaryView);
13416}
13417unsafe extern "C" {
13418 pub fn BNAddAutoSegment(
13419 view: *mut BNBinaryView,
13420 start: u64,
13421 length: u64,
13422 dataOffset: u64,
13423 dataLength: u64,
13424 flags: u32,
13425 );
13426}
13427unsafe extern "C" {
13428 pub fn BNAddAutoSegments(
13429 view: *mut BNBinaryView,
13430 segmentInfo: *const BNSegmentInfo,
13431 count: usize,
13432 );
13433}
13434unsafe extern "C" {
13435 pub fn BNRemoveAutoSegment(view: *mut BNBinaryView, start: u64, length: u64);
13436}
13437unsafe extern "C" {
13438 pub fn BNAddUserSegment(
13439 view: *mut BNBinaryView,
13440 start: u64,
13441 length: u64,
13442 dataOffset: u64,
13443 dataLength: u64,
13444 flags: u32,
13445 );
13446}
13447unsafe extern "C" {
13448 pub fn BNAddUserSegments(
13449 view: *mut BNBinaryView,
13450 segmentInfo: *const BNSegmentInfo,
13451 count: usize,
13452 );
13453}
13454unsafe extern "C" {
13455 pub fn BNRemoveUserSegment(view: *mut BNBinaryView, start: u64, length: u64);
13456}
13457unsafe extern "C" {
13458 pub fn BNGetSegments(view: *mut BNBinaryView, count: *mut usize) -> *mut *mut BNSegment;
13459}
13460unsafe extern "C" {
13461 pub fn BNFreeSegmentList(segments: *mut *mut BNSegment, count: usize);
13462}
13463unsafe extern "C" {
13464 pub fn BNGetSegmentAt(view: *mut BNBinaryView, addr: u64) -> *mut BNSegment;
13465}
13466unsafe extern "C" {
13467 pub fn BNGetAddressForDataOffset(view: *mut BNBinaryView, offset: u64, addr: *mut u64) -> bool;
13468}
13469unsafe extern "C" {
13470 pub fn BNGetComponentByGuid(
13471 view: *mut BNBinaryView,
13472 guid: *const ::std::os::raw::c_char,
13473 ) -> *mut BNComponent;
13474}
13475unsafe extern "C" {
13476 pub fn BNGetRootComponent(view: *mut BNBinaryView) -> *mut BNComponent;
13477}
13478unsafe extern "C" {
13479 pub fn BNCreateComponent(view: *mut BNBinaryView) -> *mut BNComponent;
13480}
13481unsafe extern "C" {
13482 pub fn BNCreateComponentWithParent(
13483 view: *mut BNBinaryView,
13484 parentGUID: *const ::std::os::raw::c_char,
13485 ) -> *mut BNComponent;
13486}
13487unsafe extern "C" {
13488 pub fn BNCreateComponentWithName(
13489 view: *mut BNBinaryView,
13490 name: *const ::std::os::raw::c_char,
13491 ) -> *mut BNComponent;
13492}
13493unsafe extern "C" {
13494 pub fn BNCreateComponentWithParentAndName(
13495 view: *mut BNBinaryView,
13496 parentGUID: *const ::std::os::raw::c_char,
13497 name: *const ::std::os::raw::c_char,
13498 ) -> *mut BNComponent;
13499}
13500unsafe extern "C" {
13501 pub fn BNGetComponentByPath(
13502 view: *mut BNBinaryView,
13503 path: *const ::std::os::raw::c_char,
13504 ) -> *mut BNComponent;
13505}
13506unsafe extern "C" {
13507 pub fn BNRemoveComponent(view: *mut BNBinaryView, component: *mut BNComponent) -> bool;
13508}
13509unsafe extern "C" {
13510 pub fn BNRemoveComponentByGuid(
13511 view: *mut BNBinaryView,
13512 guid: *const ::std::os::raw::c_char,
13513 ) -> bool;
13514}
13515unsafe extern "C" {
13516 pub fn BNAddAutoSection(
13517 view: *mut BNBinaryView,
13518 name: *const ::std::os::raw::c_char,
13519 start: u64,
13520 length: u64,
13521 semantics: BNSectionSemantics,
13522 type_: *const ::std::os::raw::c_char,
13523 align: u64,
13524 entrySize: u64,
13525 linkedSection: *const ::std::os::raw::c_char,
13526 infoSection: *const ::std::os::raw::c_char,
13527 infoData: u64,
13528 );
13529}
13530unsafe extern "C" {
13531 pub fn BNAddAutoSections(
13532 view: *mut BNBinaryView,
13533 sectionInfo: *const BNSectionInfo,
13534 count: usize,
13535 );
13536}
13537unsafe extern "C" {
13538 pub fn BNRemoveAutoSection(view: *mut BNBinaryView, name: *const ::std::os::raw::c_char);
13539}
13540unsafe extern "C" {
13541 pub fn BNAddUserSection(
13542 view: *mut BNBinaryView,
13543 name: *const ::std::os::raw::c_char,
13544 start: u64,
13545 length: u64,
13546 semantics: BNSectionSemantics,
13547 type_: *const ::std::os::raw::c_char,
13548 align: u64,
13549 entrySize: u64,
13550 linkedSection: *const ::std::os::raw::c_char,
13551 infoSection: *const ::std::os::raw::c_char,
13552 infoData: u64,
13553 );
13554}
13555unsafe extern "C" {
13556 pub fn BNAddUserSections(
13557 view: *mut BNBinaryView,
13558 sectionInfo: *const BNSectionInfo,
13559 count: usize,
13560 );
13561}
13562unsafe extern "C" {
13563 pub fn BNRemoveUserSection(view: *mut BNBinaryView, name: *const ::std::os::raw::c_char);
13564}
13565unsafe extern "C" {
13566 pub fn BNGetSections(view: *mut BNBinaryView, count: *mut usize) -> *mut *mut BNSection;
13567}
13568unsafe extern "C" {
13569 pub fn BNGetSectionsAt(
13570 view: *mut BNBinaryView,
13571 addr: u64,
13572 count: *mut usize,
13573 ) -> *mut *mut BNSection;
13574}
13575unsafe extern "C" {
13576 pub fn BNFreeSectionList(sections: *mut *mut BNSection, count: usize);
13577}
13578unsafe extern "C" {
13579 pub fn BNGetSectionByName(
13580 view: *mut BNBinaryView,
13581 name: *const ::std::os::raw::c_char,
13582 ) -> *mut BNSection;
13583}
13584unsafe extern "C" {
13585 pub fn BNGetUniqueSectionNames(
13586 view: *mut BNBinaryView,
13587 names: *mut *const ::std::os::raw::c_char,
13588 count: usize,
13589 ) -> *mut *mut ::std::os::raw::c_char;
13590}
13591unsafe extern "C" {
13592 pub fn BNGetAllocatedRanges(view: *mut BNBinaryView, count: *mut usize) -> *mut BNAddressRange;
13593}
13594unsafe extern "C" {
13595 pub fn BNGetMappedAddressRanges(
13596 view: *mut BNBinaryView,
13597 count: *mut usize,
13598 ) -> *mut BNAddressRange;
13599}
13600unsafe extern "C" {
13601 pub fn BNGetBackedAddressRanges(
13602 view: *mut BNBinaryView,
13603 count: *mut usize,
13604 ) -> *mut BNAddressRange;
13605}
13606unsafe extern "C" {
13607 pub fn BNFreeAddressRanges(ranges: *mut BNAddressRange);
13608}
13609unsafe extern "C" {
13610 pub fn BNGetNameSpaces(view: *mut BNBinaryView, count: *mut usize) -> *mut BNNameSpace;
13611}
13612unsafe extern "C" {
13613 pub fn BNFreeNameSpaceList(nameSpace: *mut BNNameSpace, count: usize);
13614}
13615unsafe extern "C" {
13616 pub fn BNGetExternalNameSpace() -> BNNameSpace;
13617}
13618unsafe extern "C" {
13619 pub fn BNGetInternalNameSpace() -> BNNameSpace;
13620}
13621unsafe extern "C" {
13622 pub fn BNFreeNameSpace(name: *mut BNNameSpace);
13623}
13624unsafe extern "C" {
13625 pub fn BNGetGlobalPointerValues(
13626 view: *mut BNBinaryView,
13627 count: *mut usize,
13628 ) -> *mut BNRegisterValueWithConfidenceAndRegister;
13629}
13630unsafe extern "C" {
13631 pub fn BNGetDefaultGlobalPointerValues(
13632 view: *mut BNBinaryView,
13633 count: *mut usize,
13634 ) -> *mut BNRegisterValueWithConfidenceAndRegister;
13635}
13636unsafe extern "C" {
13637 pub fn BNGetUserGlobalPointerValues(
13638 view: *mut BNBinaryView,
13639 count: *mut usize,
13640 ) -> *mut BNRegisterValueWithConfidenceAndRegister;
13641}
13642unsafe extern "C" {
13643 pub fn BNFreeRegisterValueWithConfidenceAndRegisterList(
13644 values: *mut BNRegisterValueWithConfidenceAndRegister,
13645 );
13646}
13647unsafe extern "C" {
13648 pub fn BNUserGlobalPointerValuesSet(view: *mut BNBinaryView) -> bool;
13649}
13650unsafe extern "C" {
13651 pub fn BNClearUserGlobalPointerValues(view: *mut BNBinaryView);
13652}
13653unsafe extern "C" {
13654 pub fn BNSetUserGlobalPointerValues(
13655 view: *mut BNBinaryView,
13656 values: *const BNRegisterValueWithConfidenceAndRegister,
13657 count: usize,
13658 );
13659}
13660unsafe extern "C" {
13661 pub fn BNStringifyUnicodeData(
13662 data: *mut BNBinaryView,
13663 arch: *mut BNArchitecture,
13664 buffer: *const BNDataBuffer,
13665 nullTerminates: bool,
13666 allowShortStrings: bool,
13667 string: *mut *mut ::std::os::raw::c_char,
13668 type_: *mut BNStringType,
13669 ) -> bool;
13670}
13671unsafe extern "C" {
13672 #[doc = " Raw binary data view"]
13673 pub fn BNCreateBinaryDataView(file: *mut BNFileMetadata) -> *mut BNBinaryView;
13674}
13675unsafe extern "C" {
13676 pub fn BNCreateBinaryDataViewFromBuffer(
13677 file: *mut BNFileMetadata,
13678 buf: *mut BNDataBuffer,
13679 ) -> *mut BNBinaryView;
13680}
13681unsafe extern "C" {
13682 pub fn BNCreateBinaryDataViewFromData(
13683 file: *mut BNFileMetadata,
13684 data: *const ::std::os::raw::c_void,
13685 len: usize,
13686 ) -> *mut BNBinaryView;
13687}
13688unsafe extern "C" {
13689 pub fn BNCreateBinaryDataViewFromFilename(
13690 file: *mut BNFileMetadata,
13691 filename: *const ::std::os::raw::c_char,
13692 ) -> *mut BNBinaryView;
13693}
13694unsafe extern "C" {
13695 pub fn BNCreateBinaryDataViewFromFile(
13696 file: *mut BNFileMetadata,
13697 accessor: *mut BNFileAccessor,
13698 ) -> *mut BNBinaryView;
13699}
13700unsafe extern "C" {
13701 #[doc = " Creation of new types of binary views"]
13702 pub fn BNCreateCustomBinaryView(
13703 name: *const ::std::os::raw::c_char,
13704 file: *mut BNFileMetadata,
13705 parent: *mut BNBinaryView,
13706 view: *mut BNCustomBinaryView,
13707 ) -> *mut BNBinaryView;
13708}
13709unsafe extern "C" {
13710 pub fn BNGetBinaryViewTypeByName(name: *const ::std::os::raw::c_char) -> *mut BNBinaryViewType;
13711}
13712unsafe extern "C" {
13713 pub fn BNGetBinaryViewTypes(count: *mut usize) -> *mut *mut BNBinaryViewType;
13714}
13715unsafe extern "C" {
13716 pub fn BNGetBinaryViewTypesForData(
13717 data: *mut BNBinaryView,
13718 count: *mut usize,
13719 ) -> *mut *mut BNBinaryViewType;
13720}
13721unsafe extern "C" {
13722 pub fn BNFreeBinaryViewTypeList(types: *mut *mut BNBinaryViewType);
13723}
13724unsafe extern "C" {
13725 pub fn BNGetBinaryViewTypeName(type_: *mut BNBinaryViewType) -> *mut ::std::os::raw::c_char;
13726}
13727unsafe extern "C" {
13728 pub fn BNGetBinaryViewTypeLongName(type_: *mut BNBinaryViewType)
13729 -> *mut ::std::os::raw::c_char;
13730}
13731unsafe extern "C" {
13732 pub fn BNIsBinaryViewTypeDeprecated(type_: *mut BNBinaryViewType) -> bool;
13733}
13734unsafe extern "C" {
13735 pub fn BNCreateBinaryViewOfType(
13736 type_: *mut BNBinaryViewType,
13737 data: *mut BNBinaryView,
13738 ) -> *mut BNBinaryView;
13739}
13740unsafe extern "C" {
13741 pub fn BNParseBinaryViewOfType(
13742 type_: *mut BNBinaryViewType,
13743 data: *mut BNBinaryView,
13744 ) -> *mut BNBinaryView;
13745}
13746unsafe extern "C" {
13747 pub fn BNIsBinaryViewTypeValidForData(
13748 type_: *mut BNBinaryViewType,
13749 data: *mut BNBinaryView,
13750 ) -> bool;
13751}
13752unsafe extern "C" {
13753 pub fn BNIsBinaryViewTypeForceLoadable(type_: *mut BNBinaryViewType) -> bool;
13754}
13755unsafe extern "C" {
13756 pub fn BNBinaryViewTypeHasNoInitialContent(type_: *mut BNBinaryViewType) -> bool;
13757}
13758unsafe extern "C" {
13759 pub fn BNGetBinaryViewDefaultLoadSettingsForData(
13760 type_: *mut BNBinaryViewType,
13761 data: *mut BNBinaryView,
13762 ) -> *mut BNSettings;
13763}
13764unsafe extern "C" {
13765 pub fn BNGetBinaryViewLoadSettingsForData(
13766 type_: *mut BNBinaryViewType,
13767 data: *mut BNBinaryView,
13768 ) -> *mut BNSettings;
13769}
13770unsafe extern "C" {
13771 pub fn BNRegisterBinaryViewType(
13772 name: *const ::std::os::raw::c_char,
13773 longName: *const ::std::os::raw::c_char,
13774 type_: *mut BNCustomBinaryViewType,
13775 ) -> *mut BNBinaryViewType;
13776}
13777unsafe extern "C" {
13778 pub fn BNRegisterArchitectureForViewType(
13779 type_: *mut BNBinaryViewType,
13780 id: u32,
13781 endian: BNEndianness,
13782 arch: *mut BNArchitecture,
13783 );
13784}
13785unsafe extern "C" {
13786 pub fn BNGetArchitectureForViewType(
13787 type_: *mut BNBinaryViewType,
13788 id: u32,
13789 endian: BNEndianness,
13790 ) -> *mut BNArchitecture;
13791}
13792unsafe extern "C" {
13793 pub fn BNRegisterPlatformForViewType(
13794 type_: *mut BNBinaryViewType,
13795 id: u32,
13796 arch: *mut BNArchitecture,
13797 platform: *mut BNPlatform,
13798 );
13799}
13800unsafe extern "C" {
13801 pub fn BNGetPlatformForViewType(
13802 type_: *mut BNBinaryViewType,
13803 id: u32,
13804 arch: *mut BNArchitecture,
13805 ) -> *mut BNPlatform;
13806}
13807unsafe extern "C" {
13808 pub fn BNRegisterDefaultPlatformForViewType(
13809 type_: *mut BNBinaryViewType,
13810 arch: *mut BNArchitecture,
13811 platform: *mut BNPlatform,
13812 );
13813}
13814unsafe extern "C" {
13815 #[doc = " Expanded identification of Platform for BinaryViewTypes. Supersedes BNRegisterArchitectureForViewType\n and BNRegisterPlatformForViewType, as these have certain edge cases (overloaded elf families, for example)\n that can't be represented.\n\n The callback returns a Platform object or null (failure), and most recently added callbacks are called first\n to allow plugins to override any default behaviors. When a callback returns a platform, architecture will be\n derived from the identified platform.\n\n The BinaryView pointer is the *parent* view (usually 'Raw') that the BinaryView is being created for. This\n means that generally speaking the callbacks need to be aware of the underlying file format, however the\n BinaryView implementation may have created datavars in the 'Raw' view by the time the callback is invoked.\n Behavior regarding when this callback is invoked and what has been made available in the BinaryView passed as an\n argument to the callback is up to the discretion of the BinaryView implementation.\n\n The 'id' ind 'endian' arguments are used as a filter to determine which registered Platform recognizer callbacks\n are invoked.\n\n Support for this API tentatively requires explicit support in the BinaryView implementation."]
13816 pub fn BNRegisterPlatformRecognizerForViewType(
13817 type_: *mut BNBinaryViewType,
13818 id: u64,
13819 endian: BNEndianness,
13820 callback: ::std::option::Option<
13821 unsafe extern "C" fn(
13822 ctx: *mut ::std::os::raw::c_void,
13823 view: *mut BNBinaryView,
13824 metadata: *mut BNMetadata,
13825 ) -> *mut BNPlatform,
13826 >,
13827 ctx: *mut ::std::os::raw::c_void,
13828 );
13829}
13830unsafe extern "C" {
13831 #[doc = " BinaryView* passed in here should be the parent view (not the partially constructed object!), and this function\n should be called from the BNCustomBinaryView::init implementation.\n\n 'id' and 'endianness' are used to determine which registered callbacks are actually invoked to eliminate some\n common sources of boilerplate that all callbacks would have to implement otherwise. If these aren't applicable to\n your binaryviewtype just use constants here and document them so that people registering Platform recognizers for\n your view type know what to use."]
13832 pub fn BNRecognizePlatformForViewType(
13833 type_: *mut BNBinaryViewType,
13834 id: u64,
13835 endian: BNEndianness,
13836 view: *mut BNBinaryView,
13837 metadata: *mut BNMetadata,
13838 ) -> *mut BNPlatform;
13839}
13840unsafe extern "C" {
13841 pub fn BNRegisterBinaryViewEvent(
13842 type_: BNBinaryViewEventType,
13843 callback: ::std::option::Option<
13844 unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
13845 >,
13846 ctx: *mut ::std::os::raw::c_void,
13847 );
13848}
13849unsafe extern "C" {
13850 #[doc = " Stream reader object"]
13851 pub fn BNCreateBinaryReader(view: *mut BNBinaryView) -> *mut BNBinaryReader;
13852}
13853unsafe extern "C" {
13854 pub fn BNFreeBinaryReader(stream: *mut BNBinaryReader);
13855}
13856unsafe extern "C" {
13857 pub fn BNGetBinaryReaderEndianness(stream: *mut BNBinaryReader) -> BNEndianness;
13858}
13859unsafe extern "C" {
13860 pub fn BNSetBinaryReaderEndianness(stream: *mut BNBinaryReader, endian: BNEndianness);
13861}
13862unsafe extern "C" {
13863 pub fn BNReadData(
13864 stream: *mut BNBinaryReader,
13865 dest: *mut ::std::os::raw::c_void,
13866 len: usize,
13867 ) -> bool;
13868}
13869unsafe extern "C" {
13870 pub fn BNRead8(stream: *mut BNBinaryReader, result: *mut u8) -> bool;
13871}
13872unsafe extern "C" {
13873 pub fn BNRead16(stream: *mut BNBinaryReader, result: *mut u16) -> bool;
13874}
13875unsafe extern "C" {
13876 pub fn BNRead32(stream: *mut BNBinaryReader, result: *mut u32) -> bool;
13877}
13878unsafe extern "C" {
13879 pub fn BNRead64(stream: *mut BNBinaryReader, result: *mut u64) -> bool;
13880}
13881unsafe extern "C" {
13882 pub fn BNReadLE16(stream: *mut BNBinaryReader, result: *mut u16) -> bool;
13883}
13884unsafe extern "C" {
13885 pub fn BNReadLE32(stream: *mut BNBinaryReader, result: *mut u32) -> bool;
13886}
13887unsafe extern "C" {
13888 pub fn BNReadLE64(stream: *mut BNBinaryReader, result: *mut u64) -> bool;
13889}
13890unsafe extern "C" {
13891 pub fn BNReadBE16(stream: *mut BNBinaryReader, result: *mut u16) -> bool;
13892}
13893unsafe extern "C" {
13894 pub fn BNReadBE32(stream: *mut BNBinaryReader, result: *mut u32) -> bool;
13895}
13896unsafe extern "C" {
13897 pub fn BNReadBE64(stream: *mut BNBinaryReader, result: *mut u64) -> bool;
13898}
13899unsafe extern "C" {
13900 pub fn BNReadPointer(
13901 view: *mut BNBinaryView,
13902 stream: *mut BNBinaryReader,
13903 result: *mut u64,
13904 ) -> bool;
13905}
13906unsafe extern "C" {
13907 pub fn BNGetReaderPosition(stream: *mut BNBinaryReader) -> u64;
13908}
13909unsafe extern "C" {
13910 pub fn BNSeekBinaryReader(stream: *mut BNBinaryReader, offset: u64);
13911}
13912unsafe extern "C" {
13913 pub fn BNSeekBinaryReaderRelative(stream: *mut BNBinaryReader, offset: i64);
13914}
13915unsafe extern "C" {
13916 pub fn BNGetBinaryReaderVirtualBase(stream: *mut BNBinaryReader) -> u64;
13917}
13918unsafe extern "C" {
13919 pub fn BNSetBinaryReaderVirtualBase(stream: *mut BNBinaryReader, base: u64);
13920}
13921unsafe extern "C" {
13922 pub fn BNIsEndOfFile(stream: *mut BNBinaryReader) -> bool;
13923}
13924unsafe extern "C" {
13925 #[doc = " Stream writer object"]
13926 pub fn BNCreateBinaryWriter(view: *mut BNBinaryView) -> *mut BNBinaryWriter;
13927}
13928unsafe extern "C" {
13929 pub fn BNFreeBinaryWriter(stream: *mut BNBinaryWriter);
13930}
13931unsafe extern "C" {
13932 pub fn BNGetBinaryWriterEndianness(stream: *mut BNBinaryWriter) -> BNEndianness;
13933}
13934unsafe extern "C" {
13935 pub fn BNSetBinaryWriterEndianness(stream: *mut BNBinaryWriter, endian: BNEndianness);
13936}
13937unsafe extern "C" {
13938 pub fn BNWriteData(
13939 stream: *mut BNBinaryWriter,
13940 src: *const ::std::os::raw::c_void,
13941 len: usize,
13942 ) -> bool;
13943}
13944unsafe extern "C" {
13945 pub fn BNWrite8(stream: *mut BNBinaryWriter, val: u8) -> bool;
13946}
13947unsafe extern "C" {
13948 pub fn BNWrite16(stream: *mut BNBinaryWriter, val: u16) -> bool;
13949}
13950unsafe extern "C" {
13951 pub fn BNWrite32(stream: *mut BNBinaryWriter, val: u32) -> bool;
13952}
13953unsafe extern "C" {
13954 pub fn BNWrite64(stream: *mut BNBinaryWriter, val: u64) -> bool;
13955}
13956unsafe extern "C" {
13957 pub fn BNWriteLE16(stream: *mut BNBinaryWriter, val: u16) -> bool;
13958}
13959unsafe extern "C" {
13960 pub fn BNWriteLE32(stream: *mut BNBinaryWriter, val: u32) -> bool;
13961}
13962unsafe extern "C" {
13963 pub fn BNWriteLE64(stream: *mut BNBinaryWriter, val: u64) -> bool;
13964}
13965unsafe extern "C" {
13966 pub fn BNWriteBE16(stream: *mut BNBinaryWriter, val: u16) -> bool;
13967}
13968unsafe extern "C" {
13969 pub fn BNWriteBE32(stream: *mut BNBinaryWriter, val: u32) -> bool;
13970}
13971unsafe extern "C" {
13972 pub fn BNWriteBE64(stream: *mut BNBinaryWriter, val: u64) -> bool;
13973}
13974unsafe extern "C" {
13975 pub fn BNGetWriterPosition(stream: *mut BNBinaryWriter) -> u64;
13976}
13977unsafe extern "C" {
13978 pub fn BNSeekBinaryWriter(stream: *mut BNBinaryWriter, offset: u64);
13979}
13980unsafe extern "C" {
13981 pub fn BNSeekBinaryWriterRelative(stream: *mut BNBinaryWriter, offset: i64);
13982}
13983unsafe extern "C" {
13984 #[doc = " Transforms"]
13985 pub fn BNGetTransformByName(name: *const ::std::os::raw::c_char) -> *mut BNTransform;
13986}
13987unsafe extern "C" {
13988 pub fn BNGetTransformTypeList(count: *mut usize) -> *mut *mut BNTransform;
13989}
13990unsafe extern "C" {
13991 pub fn BNFreeTransformTypeList(xforms: *mut *mut BNTransform);
13992}
13993unsafe extern "C" {
13994 pub fn BNRegisterTransformType(
13995 type_: BNTransformType,
13996 name: *const ::std::os::raw::c_char,
13997 longName: *const ::std::os::raw::c_char,
13998 group: *const ::std::os::raw::c_char,
13999 xform: *mut BNCustomTransform,
14000 ) -> *mut BNTransform;
14001}
14002unsafe extern "C" {
14003 pub fn BNRegisterTransformTypeWithCapabilities(
14004 type_: BNTransformType,
14005 capabilities: u32,
14006 name: *const ::std::os::raw::c_char,
14007 longName: *const ::std::os::raw::c_char,
14008 group: *const ::std::os::raw::c_char,
14009 xform: *mut BNCustomTransform,
14010 ) -> *mut BNTransform;
14011}
14012unsafe extern "C" {
14013 pub fn BNGetTransformType(xform: *mut BNTransform) -> BNTransformType;
14014}
14015unsafe extern "C" {
14016 pub fn BNGetTransformCapabilities(xform: *mut BNTransform) -> u32;
14017}
14018unsafe extern "C" {
14019 pub fn BNTransformSupportsDetection(xform: *mut BNTransform) -> bool;
14020}
14021unsafe extern "C" {
14022 pub fn BNTransformSupportsContext(xform: *mut BNTransform) -> bool;
14023}
14024unsafe extern "C" {
14025 pub fn BNGetTransformName(xform: *mut BNTransform) -> *mut ::std::os::raw::c_char;
14026}
14027unsafe extern "C" {
14028 pub fn BNGetTransformLongName(xform: *mut BNTransform) -> *mut ::std::os::raw::c_char;
14029}
14030unsafe extern "C" {
14031 pub fn BNGetTransformGroup(xform: *mut BNTransform) -> *mut ::std::os::raw::c_char;
14032}
14033unsafe extern "C" {
14034 pub fn BNGetTransformParameterList(
14035 xform: *mut BNTransform,
14036 count: *mut usize,
14037 ) -> *mut BNTransformParameterInfo;
14038}
14039unsafe extern "C" {
14040 pub fn BNFreeTransformParameterList(params: *mut BNTransformParameterInfo, count: usize);
14041}
14042unsafe extern "C" {
14043 pub fn BNDecode(
14044 xform: *mut BNTransform,
14045 input: *mut BNDataBuffer,
14046 output: *mut BNDataBuffer,
14047 params: *mut BNTransformParameter,
14048 paramCount: usize,
14049 ) -> bool;
14050}
14051unsafe extern "C" {
14052 pub fn BNEncode(
14053 xform: *mut BNTransform,
14054 input: *mut BNDataBuffer,
14055 output: *mut BNDataBuffer,
14056 params: *mut BNTransformParameter,
14057 paramCount: usize,
14058 ) -> bool;
14059}
14060unsafe extern "C" {
14061 pub fn BNDecodeWithContext(
14062 xform: *mut BNTransform,
14063 context: *mut BNTransformContext,
14064 params: *mut BNTransformParameter,
14065 paramCount: usize,
14066 ) -> bool;
14067}
14068unsafe extern "C" {
14069 pub fn BNCanDecode(xform: *mut BNTransform, input: *mut BNBinaryView) -> bool;
14070}
14071unsafe extern "C" {
14072 #[doc = " Transform Context"]
14073 pub fn BNNewTransformContextReference(
14074 context: *mut BNTransformContext,
14075 ) -> *mut BNTransformContext;
14076}
14077unsafe extern "C" {
14078 pub fn BNFreeTransformContext(context: *mut BNTransformContext);
14079}
14080unsafe extern "C" {
14081 pub fn BNTransformContextGetInput(context: *mut BNTransformContext) -> *mut BNBinaryView;
14082}
14083unsafe extern "C" {
14084 pub fn BNTransformContextGetFileName(
14085 context: *mut BNTransformContext,
14086 ) -> *mut ::std::os::raw::c_char;
14087}
14088unsafe extern "C" {
14089 pub fn BNTransformContextGetAvailableTransforms(
14090 context: *mut BNTransformContext,
14091 count: *mut usize,
14092 ) -> *mut *mut ::std::os::raw::c_char;
14093}
14094unsafe extern "C" {
14095 pub fn BNTransformContextGetTransformName(
14096 context: *mut BNTransformContext,
14097 ) -> *mut ::std::os::raw::c_char;
14098}
14099unsafe extern "C" {
14100 pub fn BNTransformContextSetTransformName(
14101 context: *mut BNTransformContext,
14102 transformName: *const ::std::os::raw::c_char,
14103 );
14104}
14105unsafe extern "C" {
14106 pub fn BNTransformContextSetTransformParameters(
14107 context: *mut BNTransformContext,
14108 params: *mut BNTransformParameter,
14109 paramCount: usize,
14110 );
14111}
14112unsafe extern "C" {
14113 pub fn BNTransformContextSetTransformParameter(
14114 context: *mut BNTransformContext,
14115 name: *const ::std::os::raw::c_char,
14116 data: *mut BNDataBuffer,
14117 );
14118}
14119unsafe extern "C" {
14120 pub fn BNTransformContextHasTransformParameter(
14121 context: *mut BNTransformContext,
14122 name: *const ::std::os::raw::c_char,
14123 ) -> bool;
14124}
14125unsafe extern "C" {
14126 pub fn BNTransformContextClearTransformParameter(
14127 context: *mut BNTransformContext,
14128 name: *const ::std::os::raw::c_char,
14129 );
14130}
14131unsafe extern "C" {
14132 pub fn BNTransformContextGetExtractionMessage(
14133 context: *mut BNTransformContext,
14134 ) -> *mut ::std::os::raw::c_char;
14135}
14136unsafe extern "C" {
14137 pub fn BNTransformContextGetExtractionResult(
14138 context: *mut BNTransformContext,
14139 ) -> BNTransformResult;
14140}
14141unsafe extern "C" {
14142 pub fn BNTransformContextGetTransformResult(
14143 context: *mut BNTransformContext,
14144 ) -> BNTransformResult;
14145}
14146unsafe extern "C" {
14147 pub fn BNTransformContextSetTransformResult(
14148 context: *mut BNTransformContext,
14149 result: BNTransformResult,
14150 );
14151}
14152unsafe extern "C" {
14153 pub fn BNTransformContextGetMetadata(context: *mut BNTransformContext) -> *mut BNMetadata;
14154}
14155unsafe extern "C" {
14156 pub fn BNTransformContextGetParent(context: *mut BNTransformContext)
14157 -> *mut BNTransformContext;
14158}
14159unsafe extern "C" {
14160 pub fn BNTransformContextGetChildCount(context: *mut BNTransformContext) -> usize;
14161}
14162unsafe extern "C" {
14163 pub fn BNTransformContextGetChildren(
14164 context: *mut BNTransformContext,
14165 count: *mut usize,
14166 ) -> *mut *mut BNTransformContext;
14167}
14168unsafe extern "C" {
14169 pub fn BNFreeTransformContextList(contexts: *mut *mut BNTransformContext, count: usize);
14170}
14171unsafe extern "C" {
14172 pub fn BNTransformContextGetChild(
14173 context: *mut BNTransformContext,
14174 filename: *const ::std::os::raw::c_char,
14175 ) -> *mut BNTransformContext;
14176}
14177unsafe extern "C" {
14178 pub fn BNTransformContextSetChild(
14179 context: *mut BNTransformContext,
14180 data: *mut BNDataBuffer,
14181 filename: *const ::std::os::raw::c_char,
14182 result: BNTransformResult,
14183 message: *const ::std::os::raw::c_char,
14184 filenameIsDescriptor: bool,
14185 ) -> *mut BNTransformContext;
14186}
14187unsafe extern "C" {
14188 pub fn BNTransformContextIsLeaf(context: *mut BNTransformContext) -> bool;
14189}
14190unsafe extern "C" {
14191 pub fn BNTransformContextIsRoot(context: *mut BNTransformContext) -> bool;
14192}
14193unsafe extern "C" {
14194 pub fn BNTransformContextGetAvailableFiles(
14195 context: *mut BNTransformContext,
14196 count: *mut usize,
14197 ) -> *mut *mut ::std::os::raw::c_char;
14198}
14199unsafe extern "C" {
14200 pub fn BNTransformContextSetAvailableFiles(
14201 context: *mut BNTransformContext,
14202 files: *mut *const ::std::os::raw::c_char,
14203 count: usize,
14204 );
14205}
14206unsafe extern "C" {
14207 pub fn BNTransformContextHasAvailableFiles(context: *mut BNTransformContext) -> bool;
14208}
14209unsafe extern "C" {
14210 pub fn BNTransformContextGetRequestedFiles(
14211 context: *mut BNTransformContext,
14212 count: *mut usize,
14213 ) -> *mut *mut ::std::os::raw::c_char;
14214}
14215unsafe extern "C" {
14216 pub fn BNTransformContextSetRequestedFiles(
14217 context: *mut BNTransformContext,
14218 files: *mut *const ::std::os::raw::c_char,
14219 count: usize,
14220 );
14221}
14222unsafe extern "C" {
14223 pub fn BNTransformContextHasRequestedFiles(context: *mut BNTransformContext) -> bool;
14224}
14225unsafe extern "C" {
14226 pub fn BNTransformContextIsDatabase(context: *mut BNTransformContext) -> bool;
14227}
14228unsafe extern "C" {
14229 pub fn BNTransformContextIsInteractive(context: *mut BNTransformContext) -> bool;
14230}
14231unsafe extern "C" {
14232 pub fn BNTransformContextGetSettings(context: *mut BNTransformContext) -> *mut BNSettings;
14233}
14234unsafe extern "C" {
14235 #[doc = " Transform Session"]
14236 pub fn BNCreateTransformSession(
14237 filename: *const ::std::os::raw::c_char,
14238 options: *const ::std::os::raw::c_char,
14239 ) -> *mut BNTransformSession;
14240}
14241unsafe extern "C" {
14242 pub fn BNCreateTransformSessionWithMode(
14243 filename: *const ::std::os::raw::c_char,
14244 mode: BNTransformSessionMode,
14245 options: *const ::std::os::raw::c_char,
14246 ) -> *mut BNTransformSession;
14247}
14248unsafe extern "C" {
14249 pub fn BNCreateTransformSessionFromBinaryView(
14250 initialView: *mut BNBinaryView,
14251 options: *const ::std::os::raw::c_char,
14252 ) -> *mut BNTransformSession;
14253}
14254unsafe extern "C" {
14255 pub fn BNCreateTransformSessionFromBinaryViewWithMode(
14256 initialView: *mut BNBinaryView,
14257 mode: BNTransformSessionMode,
14258 options: *const ::std::os::raw::c_char,
14259 ) -> *mut BNTransformSession;
14260}
14261unsafe extern "C" {
14262 pub fn BNCreateTransformSessionFromTransformContextWithMode(
14263 context: *mut BNTransformContext,
14264 mode: BNTransformSessionMode,
14265 options: *const ::std::os::raw::c_char,
14266 ) -> *mut BNTransformSession;
14267}
14268unsafe extern "C" {
14269 pub fn BNNewTransformSessionReference(
14270 session: *mut BNTransformSession,
14271 ) -> *mut BNTransformSession;
14272}
14273unsafe extern "C" {
14274 pub fn BNFreeTransformSession(session: *mut BNTransformSession);
14275}
14276unsafe extern "C" {
14277 pub fn BNTransformSessionSetInteractive(session: *mut BNTransformSession, interactive: bool);
14278}
14279unsafe extern "C" {
14280 pub fn BNTransformSessionGetCurrentView(session: *mut BNTransformSession) -> *mut BNBinaryView;
14281}
14282unsafe extern "C" {
14283 pub fn BNTransformSessionGetRootContext(
14284 session: *mut BNTransformSession,
14285 ) -> *mut BNTransformContext;
14286}
14287unsafe extern "C" {
14288 pub fn BNTransformSessionGetCurrentContext(
14289 session: *mut BNTransformSession,
14290 ) -> *mut BNTransformContext;
14291}
14292unsafe extern "C" {
14293 pub fn BNTransformSessionProcessFrom(
14294 session: *mut BNTransformSession,
14295 context: *mut BNTransformContext,
14296 ) -> bool;
14297}
14298unsafe extern "C" {
14299 pub fn BNTransformSessionProcess(session: *mut BNTransformSession) -> bool;
14300}
14301unsafe extern "C" {
14302 pub fn BNTransformSessionHasAnyStages(session: *mut BNTransformSession) -> bool;
14303}
14304unsafe extern "C" {
14305 pub fn BNTransformSessionHasSinglePath(session: *mut BNTransformSession) -> bool;
14306}
14307unsafe extern "C" {
14308 pub fn BNTransformSessionGetSelectedContexts(
14309 session: *mut BNTransformSession,
14310 count: *mut usize,
14311 ) -> *mut *mut BNTransformContext;
14312}
14313unsafe extern "C" {
14314 pub fn BNTransformSessionSetSelectedContexts(
14315 session: *mut BNTransformSession,
14316 contexts: *mut *mut BNTransformContext,
14317 count: usize,
14318 );
14319}
14320unsafe extern "C" {
14321 #[doc = " Architectures"]
14322 pub fn BNGetArchitectureByName(name: *const ::std::os::raw::c_char) -> *mut BNArchitecture;
14323}
14324unsafe extern "C" {
14325 pub fn BNGetArchitectureList(count: *mut usize) -> *mut *mut BNArchitecture;
14326}
14327unsafe extern "C" {
14328 pub fn BNFreeArchitectureList(archs: *mut *mut BNArchitecture);
14329}
14330unsafe extern "C" {
14331 pub fn BNRegisterArchitecture(
14332 name: *const ::std::os::raw::c_char,
14333 arch: *mut BNCustomArchitecture,
14334 ) -> *mut BNArchitecture;
14335}
14336unsafe extern "C" {
14337 pub fn BNRegisterArchitectureExtension(
14338 name: *const ::std::os::raw::c_char,
14339 base: *mut BNArchitecture,
14340 arch: *mut BNCustomArchitecture,
14341 ) -> *mut BNArchitecture;
14342}
14343unsafe extern "C" {
14344 pub fn BNAddArchitectureRedirection(
14345 arch: *mut BNArchitecture,
14346 from: *mut BNArchitecture,
14347 to: *mut BNArchitecture,
14348 );
14349}
14350unsafe extern "C" {
14351 pub fn BNRegisterArchitectureHook(
14352 base: *mut BNArchitecture,
14353 arch: *mut BNCustomArchitecture,
14354 ) -> *mut BNArchitecture;
14355}
14356unsafe extern "C" {
14357 pub fn BNFinalizeArchitectureHook(base: *mut BNArchitecture);
14358}
14359unsafe extern "C" {
14360 pub fn BNGetNativeTypeParserArchitecture() -> *mut BNArchitecture;
14361}
14362unsafe extern "C" {
14363 pub fn BNGetArchitectureName(arch: *mut BNArchitecture) -> *mut ::std::os::raw::c_char;
14364}
14365unsafe extern "C" {
14366 pub fn BNGetArchitectureEndianness(arch: *mut BNArchitecture) -> BNEndianness;
14367}
14368unsafe extern "C" {
14369 pub fn BNGetArchitectureAddressSize(arch: *mut BNArchitecture) -> usize;
14370}
14371unsafe extern "C" {
14372 pub fn BNGetArchitectureDefaultIntegerSize(arch: *mut BNArchitecture) -> usize;
14373}
14374unsafe extern "C" {
14375 pub fn BNGetArchitectureInstructionAlignment(arch: *mut BNArchitecture) -> usize;
14376}
14377unsafe extern "C" {
14378 pub fn BNGetArchitectureMaxInstructionLength(arch: *mut BNArchitecture) -> usize;
14379}
14380unsafe extern "C" {
14381 pub fn BNGetArchitectureOpcodeDisplayLength(arch: *mut BNArchitecture) -> usize;
14382}
14383unsafe extern "C" {
14384 pub fn BNGetAssociatedArchitectureByAddress(
14385 arch: *mut BNArchitecture,
14386 addr: *mut u64,
14387 ) -> *mut BNArchitecture;
14388}
14389unsafe extern "C" {
14390 pub fn BNGetInstructionInfo(
14391 arch: *mut BNArchitecture,
14392 data: *const u8,
14393 addr: u64,
14394 maxLen: usize,
14395 result: *mut BNInstructionInfo,
14396 ) -> bool;
14397}
14398unsafe extern "C" {
14399 pub fn BNGetInstructionText(
14400 arch: *mut BNArchitecture,
14401 data: *const u8,
14402 addr: u64,
14403 len: *mut usize,
14404 result: *mut *mut BNInstructionTextToken,
14405 count: *mut usize,
14406 ) -> bool;
14407}
14408unsafe extern "C" {
14409 pub fn BNGetInstructionTextWithContext(
14410 arch: *mut BNArchitecture,
14411 data: *const u8,
14412 addr: u64,
14413 len: *mut usize,
14414 context: *mut ::std::os::raw::c_void,
14415 result: *mut *mut BNInstructionTextToken,
14416 count: *mut usize,
14417 ) -> bool;
14418}
14419unsafe extern "C" {
14420 pub fn BNGetInstructionLowLevelIL(
14421 arch: *mut BNArchitecture,
14422 data: *const u8,
14423 addr: u64,
14424 len: *mut usize,
14425 il: *mut BNLowLevelILFunction,
14426 ) -> bool;
14427}
14428unsafe extern "C" {
14429 pub fn BNFreeInstructionText(tokens: *mut BNInstructionTextToken, count: usize);
14430}
14431unsafe extern "C" {
14432 pub fn BNArchitectureSetDefaultAnalyzeBasicBlocksCallback(
14433 callback: *mut ::std::os::raw::c_void,
14434 ) -> bool;
14435}
14436unsafe extern "C" {
14437 pub fn BNArchitectureDefaultAnalyzeBasicBlocks(
14438 function: *mut BNFunction,
14439 context: *mut BNBasicBlockAnalysisContext,
14440 );
14441}
14442unsafe extern "C" {
14443 pub fn BNArchitectureAnalyzeBasicBlocks(
14444 arch: *mut BNArchitecture,
14445 function: *mut BNFunction,
14446 context: *mut BNBasicBlockAnalysisContext,
14447 );
14448}
14449unsafe extern "C" {
14450 pub fn BNArchitectureSetDefaultLiftFunctionCallback(
14451 callback: *mut ::std::os::raw::c_void,
14452 ) -> bool;
14453}
14454unsafe extern "C" {
14455 pub fn BNArchitectureDefaultLiftFunction(
14456 function: *mut BNLowLevelILFunction,
14457 context: *mut BNFunctionLifterContext,
14458 ) -> bool;
14459}
14460unsafe extern "C" {
14461 pub fn BNArchitectureLiftFunction(
14462 arch: *mut BNArchitecture,
14463 function: *mut BNLowLevelILFunction,
14464 context: *mut BNFunctionLifterContext,
14465 ) -> bool;
14466}
14467unsafe extern "C" {
14468 pub fn BNArchitectureFreeFunctionArchContext(
14469 arch: *mut BNArchitecture,
14470 context: *mut ::std::os::raw::c_void,
14471 );
14472}
14473unsafe extern "C" {
14474 pub fn BNFreeInstructionTextLines(lines: *mut BNInstructionTextLine, count: usize);
14475}
14476unsafe extern "C" {
14477 pub fn BNGetArchitectureRegisterName(
14478 arch: *mut BNArchitecture,
14479 reg: u32,
14480 ) -> *mut ::std::os::raw::c_char;
14481}
14482unsafe extern "C" {
14483 pub fn BNGetArchitectureFlagName(
14484 arch: *mut BNArchitecture,
14485 flag: u32,
14486 ) -> *mut ::std::os::raw::c_char;
14487}
14488unsafe extern "C" {
14489 pub fn BNGetArchitectureFlagWriteTypeName(
14490 arch: *mut BNArchitecture,
14491 flags: u32,
14492 ) -> *mut ::std::os::raw::c_char;
14493}
14494unsafe extern "C" {
14495 pub fn BNGetArchitectureSemanticFlagClassName(
14496 arch: *mut BNArchitecture,
14497 semClass: u32,
14498 ) -> *mut ::std::os::raw::c_char;
14499}
14500unsafe extern "C" {
14501 pub fn BNGetArchitectureSemanticFlagGroupName(
14502 arch: *mut BNArchitecture,
14503 semGroup: u32,
14504 ) -> *mut ::std::os::raw::c_char;
14505}
14506unsafe extern "C" {
14507 pub fn BNGetFullWidthArchitectureRegisters(
14508 arch: *mut BNArchitecture,
14509 count: *mut usize,
14510 ) -> *mut u32;
14511}
14512unsafe extern "C" {
14513 pub fn BNGetAllArchitectureRegisters(arch: *mut BNArchitecture, count: *mut usize) -> *mut u32;
14514}
14515unsafe extern "C" {
14516 pub fn BNGetAllArchitectureFlags(arch: *mut BNArchitecture, count: *mut usize) -> *mut u32;
14517}
14518unsafe extern "C" {
14519 pub fn BNGetAllArchitectureFlagWriteTypes(
14520 arch: *mut BNArchitecture,
14521 count: *mut usize,
14522 ) -> *mut u32;
14523}
14524unsafe extern "C" {
14525 pub fn BNGetAllArchitectureSemanticFlagClasses(
14526 arch: *mut BNArchitecture,
14527 count: *mut usize,
14528 ) -> *mut u32;
14529}
14530unsafe extern "C" {
14531 pub fn BNGetAllArchitectureSemanticFlagGroups(
14532 arch: *mut BNArchitecture,
14533 count: *mut usize,
14534 ) -> *mut u32;
14535}
14536unsafe extern "C" {
14537 pub fn BNGetArchitectureFlagRole(
14538 arch: *mut BNArchitecture,
14539 flag: u32,
14540 semClass: u32,
14541 ) -> BNFlagRole;
14542}
14543unsafe extern "C" {
14544 pub fn BNGetArchitectureFlagsRequiredForFlagCondition(
14545 arch: *mut BNArchitecture,
14546 cond: BNLowLevelILFlagCondition,
14547 semClass: u32,
14548 count: *mut usize,
14549 ) -> *mut u32;
14550}
14551unsafe extern "C" {
14552 pub fn BNGetArchitectureFlagsRequiredForSemanticFlagGroup(
14553 arch: *mut BNArchitecture,
14554 semGroup: u32,
14555 count: *mut usize,
14556 ) -> *mut u32;
14557}
14558unsafe extern "C" {
14559 pub fn BNGetArchitectureFlagConditionsForSemanticFlagGroup(
14560 arch: *mut BNArchitecture,
14561 semGroup: u32,
14562 count: *mut usize,
14563 ) -> *mut BNFlagConditionForSemanticClass;
14564}
14565unsafe extern "C" {
14566 pub fn BNFreeFlagConditionsForSemanticFlagGroup(
14567 conditions: *mut BNFlagConditionForSemanticClass,
14568 );
14569}
14570unsafe extern "C" {
14571 pub fn BNGetArchitectureFlagsWrittenByFlagWriteType(
14572 arch: *mut BNArchitecture,
14573 writeType: u32,
14574 count: *mut usize,
14575 ) -> *mut u32;
14576}
14577unsafe extern "C" {
14578 pub fn BNGetArchitectureSemanticClassForFlagWriteType(
14579 arch: *mut BNArchitecture,
14580 writeType: u32,
14581 ) -> u32;
14582}
14583unsafe extern "C" {
14584 pub fn BNGetArchitectureFlagWriteLowLevelIL(
14585 arch: *mut BNArchitecture,
14586 op: BNLowLevelILOperation,
14587 size: usize,
14588 flagWriteType: u32,
14589 flag: u32,
14590 operands: *mut BNRegisterOrConstant,
14591 operandCount: usize,
14592 il: *mut BNLowLevelILFunction,
14593 ) -> usize;
14594}
14595unsafe extern "C" {
14596 pub fn BNGetDefaultArchitectureFlagWriteLowLevelIL(
14597 arch: *mut BNArchitecture,
14598 op: BNLowLevelILOperation,
14599 size: usize,
14600 role: BNFlagRole,
14601 operands: *mut BNRegisterOrConstant,
14602 operandCount: usize,
14603 il: *mut BNLowLevelILFunction,
14604 ) -> usize;
14605}
14606unsafe extern "C" {
14607 pub fn BNGetArchitectureFlagConditionLowLevelIL(
14608 arch: *mut BNArchitecture,
14609 cond: BNLowLevelILFlagCondition,
14610 semClass: u32,
14611 il: *mut BNLowLevelILFunction,
14612 ) -> usize;
14613}
14614unsafe extern "C" {
14615 pub fn BNGetDefaultArchitectureFlagConditionLowLevelIL(
14616 arch: *mut BNArchitecture,
14617 cond: BNLowLevelILFlagCondition,
14618 semClass: u32,
14619 il: *mut BNLowLevelILFunction,
14620 ) -> usize;
14621}
14622unsafe extern "C" {
14623 pub fn BNGetArchitectureSemanticFlagGroupLowLevelIL(
14624 arch: *mut BNArchitecture,
14625 semGroup: u32,
14626 il: *mut BNLowLevelILFunction,
14627 ) -> usize;
14628}
14629unsafe extern "C" {
14630 pub fn BNGetModifiedArchitectureRegistersOnWrite(
14631 arch: *mut BNArchitecture,
14632 reg: u32,
14633 count: *mut usize,
14634 ) -> *mut u32;
14635}
14636unsafe extern "C" {
14637 pub fn BNFreeRegisterList(regs: *mut u32);
14638}
14639unsafe extern "C" {
14640 pub fn BNGetArchitectureRegisterInfo(arch: *mut BNArchitecture, reg: u32) -> BNRegisterInfo;
14641}
14642unsafe extern "C" {
14643 pub fn BNGetArchitectureStackPointerRegister(arch: *mut BNArchitecture) -> u32;
14644}
14645unsafe extern "C" {
14646 pub fn BNGetArchitectureLinkRegister(arch: *mut BNArchitecture) -> u32;
14647}
14648unsafe extern "C" {
14649 pub fn BNGetArchitectureGlobalRegisters(
14650 arch: *mut BNArchitecture,
14651 count: *mut usize,
14652 ) -> *mut u32;
14653}
14654unsafe extern "C" {
14655 pub fn BNIsArchitectureGlobalRegister(arch: *mut BNArchitecture, reg: u32) -> bool;
14656}
14657unsafe extern "C" {
14658 pub fn BNGetArchitectureSystemRegisters(
14659 arch: *mut BNArchitecture,
14660 count: *mut usize,
14661 ) -> *mut u32;
14662}
14663unsafe extern "C" {
14664 pub fn BNIsArchitectureSystemRegister(arch: *mut BNArchitecture, reg: u32) -> bool;
14665}
14666unsafe extern "C" {
14667 pub fn BNGetArchitectureRegisterByName(
14668 arch: *mut BNArchitecture,
14669 name: *const ::std::os::raw::c_char,
14670 ) -> u32;
14671}
14672unsafe extern "C" {
14673 pub fn BNGetArchitectureRegisterStackName(
14674 arch: *mut BNArchitecture,
14675 regStack: u32,
14676 ) -> *mut ::std::os::raw::c_char;
14677}
14678unsafe extern "C" {
14679 pub fn BNGetAllArchitectureRegisterStacks(
14680 arch: *mut BNArchitecture,
14681 count: *mut usize,
14682 ) -> *mut u32;
14683}
14684unsafe extern "C" {
14685 pub fn BNGetArchitectureRegisterStackInfo(
14686 arch: *mut BNArchitecture,
14687 regStack: u32,
14688 ) -> BNRegisterStackInfo;
14689}
14690unsafe extern "C" {
14691 pub fn BNGetArchitectureRegisterStackForRegister(arch: *mut BNArchitecture, reg: u32) -> u32;
14692}
14693unsafe extern "C" {
14694 pub fn BNGetArchitectureIntrinsicClass(
14695 arch: *mut BNArchitecture,
14696 intrinsic: u32,
14697 ) -> BNIntrinsicClass;
14698}
14699unsafe extern "C" {
14700 pub fn BNGetArchitectureIntrinsicName(
14701 arch: *mut BNArchitecture,
14702 intrinsic: u32,
14703 ) -> *mut ::std::os::raw::c_char;
14704}
14705unsafe extern "C" {
14706 pub fn BNGetAllArchitectureIntrinsics(arch: *mut BNArchitecture, count: *mut usize)
14707 -> *mut u32;
14708}
14709unsafe extern "C" {
14710 pub fn BNGetArchitectureIntrinsicInputs(
14711 arch: *mut BNArchitecture,
14712 intrinsic: u32,
14713 count: *mut usize,
14714 ) -> *mut BNNameAndType;
14715}
14716unsafe extern "C" {
14717 pub fn BNFreeNameAndTypeList(nt: *mut BNNameAndType, count: usize);
14718}
14719unsafe extern "C" {
14720 pub fn BNGetArchitectureIntrinsicOutputs(
14721 arch: *mut BNArchitecture,
14722 intrinsic: u32,
14723 count: *mut usize,
14724 ) -> *mut BNTypeWithConfidence;
14725}
14726unsafe extern "C" {
14727 pub fn BNFreeOutputTypeList(types: *mut BNTypeWithConfidence, count: usize);
14728}
14729unsafe extern "C" {
14730 pub fn BNCanArchitectureAssemble(arch: *mut BNArchitecture) -> bool;
14731}
14732unsafe extern "C" {
14733 pub fn BNAssemble(
14734 arch: *mut BNArchitecture,
14735 code: *const ::std::os::raw::c_char,
14736 addr: u64,
14737 result: *mut BNDataBuffer,
14738 errors: *mut *mut ::std::os::raw::c_char,
14739 ) -> bool;
14740}
14741unsafe extern "C" {
14742 pub fn BNIsArchitectureNeverBranchPatchAvailable(
14743 arch: *mut BNArchitecture,
14744 data: *const u8,
14745 addr: u64,
14746 len: usize,
14747 ) -> bool;
14748}
14749unsafe extern "C" {
14750 pub fn BNIsArchitectureAlwaysBranchPatchAvailable(
14751 arch: *mut BNArchitecture,
14752 data: *const u8,
14753 addr: u64,
14754 len: usize,
14755 ) -> bool;
14756}
14757unsafe extern "C" {
14758 pub fn BNIsArchitectureInvertBranchPatchAvailable(
14759 arch: *mut BNArchitecture,
14760 data: *const u8,
14761 addr: u64,
14762 len: usize,
14763 ) -> bool;
14764}
14765unsafe extern "C" {
14766 pub fn BNIsArchitectureSkipAndReturnZeroPatchAvailable(
14767 arch: *mut BNArchitecture,
14768 data: *const u8,
14769 addr: u64,
14770 len: usize,
14771 ) -> bool;
14772}
14773unsafe extern "C" {
14774 pub fn BNIsArchitectureSkipAndReturnValuePatchAvailable(
14775 arch: *mut BNArchitecture,
14776 data: *const u8,
14777 addr: u64,
14778 len: usize,
14779 ) -> bool;
14780}
14781unsafe extern "C" {
14782 pub fn BNArchitectureConvertToNop(
14783 arch: *mut BNArchitecture,
14784 data: *mut u8,
14785 addr: u64,
14786 len: usize,
14787 ) -> bool;
14788}
14789unsafe extern "C" {
14790 pub fn BNArchitectureAlwaysBranch(
14791 arch: *mut BNArchitecture,
14792 data: *mut u8,
14793 addr: u64,
14794 len: usize,
14795 ) -> bool;
14796}
14797unsafe extern "C" {
14798 pub fn BNArchitectureInvertBranch(
14799 arch: *mut BNArchitecture,
14800 data: *mut u8,
14801 addr: u64,
14802 len: usize,
14803 ) -> bool;
14804}
14805unsafe extern "C" {
14806 pub fn BNArchitectureSkipAndReturnValue(
14807 arch: *mut BNArchitecture,
14808 data: *mut u8,
14809 addr: u64,
14810 len: usize,
14811 value: u64,
14812 ) -> bool;
14813}
14814unsafe extern "C" {
14815 pub fn BNRegisterArchitectureFunctionRecognizer(
14816 arch: *mut BNArchitecture,
14817 rec: *mut BNFunctionRecognizer,
14818 );
14819}
14820unsafe extern "C" {
14821 pub fn BNArchitectureRegisterRelocationHandler(
14822 arch: *mut BNArchitecture,
14823 viewName: *const ::std::os::raw::c_char,
14824 handler: *mut BNRelocationHandler,
14825 );
14826}
14827unsafe extern "C" {
14828 pub fn BNCreateRelocationHandler(
14829 handler: *mut BNCustomRelocationHandler,
14830 ) -> *mut BNRelocationHandler;
14831}
14832unsafe extern "C" {
14833 pub fn BNArchitectureGetRelocationHandler(
14834 arch: *mut BNArchitecture,
14835 viewName: *const ::std::os::raw::c_char,
14836 ) -> *mut BNRelocationHandler;
14837}
14838unsafe extern "C" {
14839 pub fn BNNewRelocationHandlerReference(
14840 handler: *mut BNRelocationHandler,
14841 ) -> *mut BNRelocationHandler;
14842}
14843unsafe extern "C" {
14844 pub fn BNFreeRelocationHandler(handler: *mut BNRelocationHandler);
14845}
14846unsafe extern "C" {
14847 pub fn BNRelocationHandlerGetRelocationInfo(
14848 handler: *mut BNRelocationHandler,
14849 data: *mut BNBinaryView,
14850 arch: *mut BNArchitecture,
14851 info: *mut BNRelocationInfo,
14852 infoCount: usize,
14853 ) -> bool;
14854}
14855unsafe extern "C" {
14856 pub fn BNRelocationHandlerApplyRelocation(
14857 handler: *mut BNRelocationHandler,
14858 view: *mut BNBinaryView,
14859 arch: *mut BNArchitecture,
14860 reloc: *mut BNRelocation,
14861 dest: *mut u8,
14862 len: usize,
14863 ) -> bool;
14864}
14865unsafe extern "C" {
14866 pub fn BNRelocationHandlerDefaultApplyRelocation(
14867 handler: *mut BNRelocationHandler,
14868 view: *mut BNBinaryView,
14869 arch: *mut BNArchitecture,
14870 reloc: *mut BNRelocation,
14871 dest: *mut u8,
14872 len: usize,
14873 ) -> bool;
14874}
14875unsafe extern "C" {
14876 pub fn BNRelocationHandlerGetOperandForExternalRelocation(
14877 handler: *mut BNRelocationHandler,
14878 data: *const u8,
14879 addr: u64,
14880 length: usize,
14881 il: *const BNLowLevelILFunction,
14882 relocation: *mut BNRelocation,
14883 ) -> usize;
14884}
14885unsafe extern "C" {
14886 #[doc = " Analysis"]
14887 pub fn BNAddAnalysisOption(view: *mut BNBinaryView, name: *const ::std::os::raw::c_char);
14888}
14889unsafe extern "C" {
14890 pub fn BNAddFunctionForAnalysis(
14891 view: *mut BNBinaryView,
14892 platform: *mut BNPlatform,
14893 addr: u64,
14894 autoDiscovered: bool,
14895 type_: *mut BNType,
14896 ) -> *mut BNFunction;
14897}
14898unsafe extern "C" {
14899 pub fn BNAddEntryPointForAnalysis(
14900 view: *mut BNBinaryView,
14901 platform: *mut BNPlatform,
14902 addr: u64,
14903 );
14904}
14905unsafe extern "C" {
14906 pub fn BNRemoveAnalysisFunction(
14907 view: *mut BNBinaryView,
14908 func: *mut BNFunction,
14909 updateRefs: bool,
14910 );
14911}
14912unsafe extern "C" {
14913 pub fn BNCreateUserFunction(
14914 view: *mut BNBinaryView,
14915 platform: *mut BNPlatform,
14916 addr: u64,
14917 ) -> *mut BNFunction;
14918}
14919unsafe extern "C" {
14920 pub fn BNRemoveUserFunction(view: *mut BNBinaryView, func: *mut BNFunction);
14921}
14922unsafe extern "C" {
14923 pub fn BNHasInitialAnalysis(view: *mut BNBinaryView) -> bool;
14924}
14925unsafe extern "C" {
14926 pub fn BNSetAnalysisHold(view: *mut BNBinaryView, enable: bool);
14927}
14928unsafe extern "C" {
14929 pub fn BNGetFunctionAnalysisUpdateDisabled(view: *mut BNBinaryView) -> bool;
14930}
14931unsafe extern "C" {
14932 pub fn BNSetFunctionAnalysisUpdateDisabled(view: *mut BNBinaryView, disabled: bool);
14933}
14934unsafe extern "C" {
14935 pub fn BNUpdateAnalysisAndWait(view: *mut BNBinaryView);
14936}
14937unsafe extern "C" {
14938 pub fn BNUpdateAnalysis(view: *mut BNBinaryView);
14939}
14940unsafe extern "C" {
14941 pub fn BNAbortAnalysis(view: *mut BNBinaryView);
14942}
14943unsafe extern "C" {
14944 pub fn BNAnalysisIsAborted(view: *mut BNBinaryView) -> bool;
14945}
14946unsafe extern "C" {
14947 pub fn BNIsFunctionUpdateNeeded(func: *mut BNFunction) -> bool;
14948}
14949unsafe extern "C" {
14950 pub fn BNRequestAdvancedFunctionAnalysisData(func: *mut BNFunction);
14951}
14952unsafe extern "C" {
14953 pub fn BNReleaseAdvancedFunctionAnalysisData(func: *mut BNFunction);
14954}
14955unsafe extern "C" {
14956 pub fn BNReleaseAdvancedFunctionAnalysisDataMultiple(func: *mut BNFunction, count: usize);
14957}
14958unsafe extern "C" {
14959 pub fn BNNewFunctionReference(func: *mut BNFunction) -> *mut BNFunction;
14960}
14961unsafe extern "C" {
14962 pub fn BNFreeFunction(func: *mut BNFunction);
14963}
14964unsafe extern "C" {
14965 pub fn BNGetAnalysisFunctionList(
14966 view: *mut BNBinaryView,
14967 count: *mut usize,
14968 ) -> *mut *mut BNFunction;
14969}
14970unsafe extern "C" {
14971 pub fn BNFreeFunctionList(funcs: *mut *mut BNFunction, count: usize);
14972}
14973unsafe extern "C" {
14974 pub fn BNHasFunctions(view: *mut BNBinaryView) -> bool;
14975}
14976unsafe extern "C" {
14977 pub fn BNHasSymbols(view: *mut BNBinaryView) -> bool;
14978}
14979unsafe extern "C" {
14980 pub fn BNHasDataVariables(view: *mut BNBinaryView) -> bool;
14981}
14982unsafe extern "C" {
14983 pub fn BNGetAnalysisFunction(
14984 view: *mut BNBinaryView,
14985 platform: *mut BNPlatform,
14986 addr: u64,
14987 ) -> *mut BNFunction;
14988}
14989unsafe extern "C" {
14990 pub fn BNGetRecentAnalysisFunctionForAddress(
14991 view: *mut BNBinaryView,
14992 addr: u64,
14993 ) -> *mut BNFunction;
14994}
14995unsafe extern "C" {
14996 pub fn BNGetAnalysisFunctionsForAddress(
14997 view: *mut BNBinaryView,
14998 addr: u64,
14999 count: *mut usize,
15000 ) -> *mut *mut BNFunction;
15001}
15002unsafe extern "C" {
15003 pub fn BNGetAnalysisFunctionsContainingAddress(
15004 view: *mut BNBinaryView,
15005 addr: u64,
15006 count: *mut usize,
15007 ) -> *mut *mut BNFunction;
15008}
15009unsafe extern "C" {
15010 pub fn BNGetAnalysisEntryPoint(view: *mut BNBinaryView) -> *mut BNFunction;
15011}
15012unsafe extern "C" {
15013 pub fn BNGetAllEntryFunctions(
15014 view: *mut BNBinaryView,
15015 count: *mut usize,
15016 ) -> *mut *mut BNFunction;
15017}
15018unsafe extern "C" {
15019 pub fn BNAddToEntryFunctions(view: *mut BNBinaryView, func: *mut BNFunction);
15020}
15021unsafe extern "C" {
15022 pub fn BNGetGlobalCommentForAddress(
15023 view: *mut BNBinaryView,
15024 addr: u64,
15025 ) -> *mut ::std::os::raw::c_char;
15026}
15027unsafe extern "C" {
15028 pub fn BNGetGlobalCommentedAddresses(view: *mut BNBinaryView, count: *mut usize) -> *mut u64;
15029}
15030unsafe extern "C" {
15031 pub fn BNSetGlobalCommentForAddress(
15032 view: *mut BNBinaryView,
15033 addr: u64,
15034 comment: *const ::std::os::raw::c_char,
15035 );
15036}
15037unsafe extern "C" {
15038 pub fn BNGetFunctionData(func: *mut BNFunction) -> *mut BNBinaryView;
15039}
15040unsafe extern "C" {
15041 pub fn BNGetFunctionArchitecture(func: *mut BNFunction) -> *mut BNArchitecture;
15042}
15043unsafe extern "C" {
15044 pub fn BNGetFunctionPlatform(func: *mut BNFunction) -> *mut BNPlatform;
15045}
15046unsafe extern "C" {
15047 pub fn BNGetFunctionStart(func: *mut BNFunction) -> u64;
15048}
15049unsafe extern "C" {
15050 pub fn BNGetFunctionSymbol(func: *mut BNFunction) -> *mut BNSymbol;
15051}
15052unsafe extern "C" {
15053 pub fn BNWasFunctionAutomaticallyDiscovered(func: *mut BNFunction) -> bool;
15054}
15055unsafe extern "C" {
15056 pub fn BNFunctionHasUserAnnotations(func: *mut BNFunction) -> bool;
15057}
15058unsafe extern "C" {
15059 pub fn BNCanFunctionReturn(func: *mut BNFunction) -> BNBoolWithConfidence;
15060}
15061unsafe extern "C" {
15062 pub fn BNIsFunctionPure(func: *mut BNFunction) -> BNBoolWithConfidence;
15063}
15064unsafe extern "C" {
15065 pub fn BNSetFunctionAutoType(func: *mut BNFunction, type_: *mut BNType);
15066}
15067unsafe extern "C" {
15068 pub fn BNSetFunctionUserType(func: *mut BNFunction, type_: *mut BNType);
15069}
15070unsafe extern "C" {
15071 pub fn BNFunctionHasUserType(func: *mut BNFunction) -> bool;
15072}
15073unsafe extern "C" {
15074 pub fn BNGetFunctionComment(func: *mut BNFunction) -> *mut ::std::os::raw::c_char;
15075}
15076unsafe extern "C" {
15077 pub fn BNGetCommentForAddress(func: *mut BNFunction, addr: u64) -> *mut ::std::os::raw::c_char;
15078}
15079unsafe extern "C" {
15080 pub fn BNGetCommentedAddresses(func: *mut BNFunction, count: *mut usize) -> *mut u64;
15081}
15082unsafe extern "C" {
15083 pub fn BNFreeAddressList(addrs: *mut u64);
15084}
15085unsafe extern "C" {
15086 pub fn BNSetFunctionComment(func: *mut BNFunction, comment: *const ::std::os::raw::c_char);
15087}
15088unsafe extern "C" {
15089 pub fn BNSetCommentForAddress(
15090 func: *mut BNFunction,
15091 addr: u64,
15092 comment: *const ::std::os::raw::c_char,
15093 );
15094}
15095unsafe extern "C" {
15096 pub fn BNAddUserCodeReference(
15097 func: *mut BNFunction,
15098 fromArch: *mut BNArchitecture,
15099 fromAddr: u64,
15100 toAddr: u64,
15101 );
15102}
15103unsafe extern "C" {
15104 pub fn BNRemoveUserCodeReference(
15105 func: *mut BNFunction,
15106 fromArch: *mut BNArchitecture,
15107 fromAddr: u64,
15108 toAddr: u64,
15109 );
15110}
15111unsafe extern "C" {
15112 pub fn BNAddUserTypeReference(
15113 func: *mut BNFunction,
15114 fromArch: *mut BNArchitecture,
15115 fromAddr: u64,
15116 name: *mut BNQualifiedName,
15117 );
15118}
15119unsafe extern "C" {
15120 pub fn BNRemoveUserTypeReference(
15121 func: *mut BNFunction,
15122 fromArch: *mut BNArchitecture,
15123 fromAddr: u64,
15124 name: *mut BNQualifiedName,
15125 );
15126}
15127unsafe extern "C" {
15128 pub fn BNAddUserTypeFieldReference(
15129 func: *mut BNFunction,
15130 fromArch: *mut BNArchitecture,
15131 fromAddr: u64,
15132 name: *mut BNQualifiedName,
15133 offset: u64,
15134 size: usize,
15135 );
15136}
15137unsafe extern "C" {
15138 pub fn BNRemoveUserTypeFieldReference(
15139 func: *mut BNFunction,
15140 fromArch: *mut BNArchitecture,
15141 fromAddr: u64,
15142 name: *mut BNQualifiedName,
15143 offset: u64,
15144 size: usize,
15145 );
15146}
15147unsafe extern "C" {
15148 pub fn BNGetForeignFunctionLiftedIL(
15149 func: *const BNFunction,
15150 logger: *const BNLogger,
15151 inlinedCallsCount: usize,
15152 inlinedCalls: *const u64,
15153 ) -> *mut BNLowLevelILFunction;
15154}
15155unsafe extern "C" {
15156 pub fn BNNewBasicBlockReference(block: *mut BNBasicBlock) -> *mut BNBasicBlock;
15157}
15158unsafe extern "C" {
15159 pub fn BNFreeBasicBlock(block: *mut BNBasicBlock);
15160}
15161unsafe extern "C" {
15162 pub fn BNGetFunctionBasicBlockList(
15163 func: *mut BNFunction,
15164 count: *mut usize,
15165 ) -> *mut *mut BNBasicBlock;
15166}
15167unsafe extern "C" {
15168 pub fn BNFreeBasicBlockList(blocks: *mut *mut BNBasicBlock, count: usize);
15169}
15170unsafe extern "C" {
15171 pub fn BNGetFunctionBasicBlockAtAddress(
15172 func: *mut BNFunction,
15173 arch: *mut BNArchitecture,
15174 addr: u64,
15175 ) -> *mut BNBasicBlock;
15176}
15177unsafe extern "C" {
15178 pub fn BNGetRecentBasicBlockForAddress(view: *mut BNBinaryView, addr: u64)
15179 -> *mut BNBasicBlock;
15180}
15181unsafe extern "C" {
15182 pub fn BNGetBasicBlocksForAddress(
15183 view: *mut BNBinaryView,
15184 addr: u64,
15185 count: *mut usize,
15186 ) -> *mut *mut BNBasicBlock;
15187}
15188unsafe extern "C" {
15189 pub fn BNGetBasicBlocksStartingAtAddress(
15190 view: *mut BNBinaryView,
15191 addr: u64,
15192 count: *mut usize,
15193 ) -> *mut *mut BNBasicBlock;
15194}
15195unsafe extern "C" {
15196 pub fn BNGetFunctionHighestAddress(func: *mut BNFunction) -> u64;
15197}
15198unsafe extern "C" {
15199 pub fn BNGetFunctionLowestAddress(func: *mut BNFunction) -> u64;
15200}
15201unsafe extern "C" {
15202 pub fn BNGetFunctionAddressRanges(
15203 func: *mut BNFunction,
15204 count: *mut usize,
15205 ) -> *mut BNAddressRange;
15206}
15207unsafe extern "C" {
15208 pub fn BNGetFunctionLowLevelIL(func: *mut BNFunction) -> *mut BNLowLevelILFunction;
15209}
15210unsafe extern "C" {
15211 pub fn BNGetFunctionLowLevelILIfAvailable(func: *mut BNFunction) -> *mut BNLowLevelILFunction;
15212}
15213unsafe extern "C" {
15214 pub fn BNFreeILInstructionList(list: *mut usize);
15215}
15216unsafe extern "C" {
15217 pub fn BNGetFunctionMediumLevelIL(func: *mut BNFunction) -> *mut BNMediumLevelILFunction;
15218}
15219unsafe extern "C" {
15220 pub fn BNGetFunctionMediumLevelILIfAvailable(
15221 func: *mut BNFunction,
15222 ) -> *mut BNMediumLevelILFunction;
15223}
15224unsafe extern "C" {
15225 pub fn BNGetFunctionMappedMediumLevelIL(func: *mut BNFunction) -> *mut BNMediumLevelILFunction;
15226}
15227unsafe extern "C" {
15228 pub fn BNGetFunctionMappedMediumLevelILIfAvailable(
15229 func: *mut BNFunction,
15230 ) -> *mut BNMediumLevelILFunction;
15231}
15232unsafe extern "C" {
15233 pub fn BNGetFunctionHighLevelIL(func: *mut BNFunction) -> *mut BNHighLevelILFunction;
15234}
15235unsafe extern "C" {
15236 pub fn BNGetFunctionHighLevelILIfAvailable(func: *mut BNFunction)
15237 -> *mut BNHighLevelILFunction;
15238}
15239unsafe extern "C" {
15240 pub fn BNGetFunctionLanguageRepresentation(
15241 func: *mut BNFunction,
15242 language: *const ::std::os::raw::c_char,
15243 ) -> *mut BNLanguageRepresentationFunction;
15244}
15245unsafe extern "C" {
15246 pub fn BNGetFunctionLanguageRepresentationIfAvailable(
15247 func: *mut BNFunction,
15248 language: *const ::std::os::raw::c_char,
15249 ) -> *mut BNLanguageRepresentationFunction;
15250}
15251unsafe extern "C" {
15252 pub fn BNGetConstantData(
15253 func: *mut BNFunction,
15254 state: BNRegisterValueType,
15255 value: u64,
15256 size: usize,
15257 builtin: *mut BNBuiltinType,
15258 ) -> *mut BNDataBuffer;
15259}
15260unsafe extern "C" {
15261 pub fn BNGetRegisterValueAtInstruction(
15262 func: *mut BNFunction,
15263 arch: *mut BNArchitecture,
15264 addr: u64,
15265 reg: u32,
15266 ) -> BNRegisterValue;
15267}
15268unsafe extern "C" {
15269 pub fn BNGetRegisterValueAfterInstruction(
15270 func: *mut BNFunction,
15271 arch: *mut BNArchitecture,
15272 addr: u64,
15273 reg: u32,
15274 ) -> BNRegisterValue;
15275}
15276unsafe extern "C" {
15277 pub fn BNGetStackContentsAtInstruction(
15278 func: *mut BNFunction,
15279 arch: *mut BNArchitecture,
15280 addr: u64,
15281 offset: i64,
15282 size: usize,
15283 ) -> BNRegisterValue;
15284}
15285unsafe extern "C" {
15286 pub fn BNGetStackContentsAfterInstruction(
15287 func: *mut BNFunction,
15288 arch: *mut BNArchitecture,
15289 addr: u64,
15290 offset: i64,
15291 size: usize,
15292 ) -> BNRegisterValue;
15293}
15294unsafe extern "C" {
15295 pub fn BNGetParameterValueAtInstruction(
15296 func: *mut BNFunction,
15297 arch: *mut BNArchitecture,
15298 addr: u64,
15299 functionType: *mut BNType,
15300 i: usize,
15301 ) -> BNRegisterValue;
15302}
15303unsafe extern "C" {
15304 pub fn BNGetParameterValueAtLowLevelILInstruction(
15305 func: *mut BNFunction,
15306 instr: usize,
15307 functionType: *mut BNType,
15308 i: usize,
15309 ) -> BNRegisterValue;
15310}
15311unsafe extern "C" {
15312 pub fn BNGetRegistersReadByInstruction(
15313 func: *mut BNFunction,
15314 arch: *mut BNArchitecture,
15315 addr: u64,
15316 count: *mut usize,
15317 ) -> *mut u32;
15318}
15319unsafe extern "C" {
15320 pub fn BNGetRegistersWrittenByInstruction(
15321 func: *mut BNFunction,
15322 arch: *mut BNArchitecture,
15323 addr: u64,
15324 count: *mut usize,
15325 ) -> *mut u32;
15326}
15327unsafe extern "C" {
15328 pub fn BNGetStackVariablesReferencedByInstruction(
15329 func: *mut BNFunction,
15330 arch: *mut BNArchitecture,
15331 addr: u64,
15332 count: *mut usize,
15333 ) -> *mut BNStackVariableReference;
15334}
15335unsafe extern "C" {
15336 pub fn BNGetStackVariablesReferencedByInstructionIfAvailable(
15337 func: *mut BNFunction,
15338 arch: *mut BNArchitecture,
15339 addr: u64,
15340 count: *mut usize,
15341 ) -> *mut BNStackVariableReference;
15342}
15343unsafe extern "C" {
15344 pub fn BNFreeStackVariableReferenceList(refs: *mut BNStackVariableReference, count: usize);
15345}
15346unsafe extern "C" {
15347 pub fn BNGetConstantsReferencedByInstruction(
15348 func: *mut BNFunction,
15349 arch: *mut BNArchitecture,
15350 addr: u64,
15351 count: *mut usize,
15352 ) -> *mut BNConstantReference;
15353}
15354unsafe extern "C" {
15355 pub fn BNGetConstantsReferencedByInstructionIfAvailable(
15356 func: *mut BNFunction,
15357 arch: *mut BNArchitecture,
15358 addr: u64,
15359 count: *mut usize,
15360 ) -> *mut BNConstantReference;
15361}
15362unsafe extern "C" {
15363 pub fn BNFreeConstantReferenceList(refs: *mut BNConstantReference);
15364}
15365unsafe extern "C" {
15366 pub fn BNGetFunctionLiftedIL(func: *mut BNFunction) -> *mut BNLowLevelILFunction;
15367}
15368unsafe extern "C" {
15369 pub fn BNGetFunctionLiftedILIfAvailable(func: *mut BNFunction) -> *mut BNLowLevelILFunction;
15370}
15371unsafe extern "C" {
15372 pub fn BNGetLiftedILFlagUsesForDefinition(
15373 func: *mut BNFunction,
15374 i: usize,
15375 flag: u32,
15376 count: *mut usize,
15377 ) -> *mut usize;
15378}
15379unsafe extern "C" {
15380 pub fn BNGetLiftedILFlagDefinitionsForUse(
15381 func: *mut BNFunction,
15382 i: usize,
15383 flag: u32,
15384 count: *mut usize,
15385 ) -> *mut usize;
15386}
15387unsafe extern "C" {
15388 pub fn BNGetFlagsReadByLiftedILInstruction(
15389 func: *mut BNFunction,
15390 i: usize,
15391 count: *mut usize,
15392 ) -> *mut u32;
15393}
15394unsafe extern "C" {
15395 pub fn BNGetFlagsWrittenByLiftedILInstruction(
15396 func: *mut BNFunction,
15397 i: usize,
15398 count: *mut usize,
15399 ) -> *mut u32;
15400}
15401unsafe extern "C" {
15402 pub fn BNGetFunctionType(func: *mut BNFunction) -> *mut BNType;
15403}
15404unsafe extern "C" {
15405 pub fn BNGetFunctionReturnType(func: *mut BNFunction) -> BNTypeWithConfidence;
15406}
15407unsafe extern "C" {
15408 pub fn BNGetFunctionReturnValue(func: *mut BNFunction) -> BNReturnValue;
15409}
15410unsafe extern "C" {
15411 pub fn BNFreeReturnValue(ret: *mut BNReturnValue);
15412}
15413unsafe extern "C" {
15414 pub fn BNIsFunctionReturnValueDefaultLocation(func: *mut BNFunction) -> bool;
15415}
15416unsafe extern "C" {
15417 pub fn BNGetFunctionReturnValueLocation(func: *mut BNFunction)
15418 -> BNValueLocationWithConfidence;
15419}
15420unsafe extern "C" {
15421 pub fn BNGetFunctionReturnRegisters(func: *mut BNFunction) -> BNRegisterSetWithConfidence;
15422}
15423unsafe extern "C" {
15424 pub fn BNGetFunctionCallingConvention(
15425 func: *mut BNFunction,
15426 ) -> BNCallingConventionWithConfidence;
15427}
15428unsafe extern "C" {
15429 pub fn BNGetFunctionParameterVariables(
15430 func: *mut BNFunction,
15431 ) -> BNParameterVariablesWithConfidence;
15432}
15433unsafe extern "C" {
15434 pub fn BNFreeParameterVariables(vars: *mut BNParameterVariablesWithConfidence);
15435}
15436unsafe extern "C" {
15437 pub fn BNGetFunctionParameterLocations(
15438 func: *mut BNFunction,
15439 ) -> BNValueLocationListWithConfidence;
15440}
15441unsafe extern "C" {
15442 pub fn BNFreeParameterLocations(locations: *mut BNValueLocationListWithConfidence);
15443}
15444unsafe extern "C" {
15445 pub fn BNGetValueLocationVariableForReturnValue(
15446 location: *const BNValueLocation,
15447 var: *mut BNVariable,
15448 ) -> bool;
15449}
15450unsafe extern "C" {
15451 pub fn BNGetValueLocationVariableForParameter(
15452 location: *const BNValueLocation,
15453 var: *mut BNVariable,
15454 idx: usize,
15455 ) -> bool;
15456}
15457unsafe extern "C" {
15458 pub fn BNFunctionHasVariableArguments(func: *mut BNFunction) -> BNBoolWithConfidence;
15459}
15460unsafe extern "C" {
15461 pub fn BNGetFunctionStackAdjustment(func: *mut BNFunction) -> BNOffsetWithConfidence;
15462}
15463unsafe extern "C" {
15464 pub fn BNGetFunctionRegisterStackAdjustments(
15465 func: *mut BNFunction,
15466 count: *mut usize,
15467 ) -> *mut BNRegisterStackAdjustment;
15468}
15469unsafe extern "C" {
15470 pub fn BNFreeRegisterStackAdjustments(adjustments: *mut BNRegisterStackAdjustment);
15471}
15472unsafe extern "C" {
15473 pub fn BNGetFunctionClobberedRegisters(func: *mut BNFunction) -> BNRegisterSetWithConfidence;
15474}
15475unsafe extern "C" {
15476 pub fn BNFreeRegisterSet(regs: *mut BNRegisterSetWithConfidence);
15477}
15478unsafe extern "C" {
15479 pub fn BNSetAutoFunctionReturnType(func: *mut BNFunction, type_: *mut BNTypeWithConfidence);
15480}
15481unsafe extern "C" {
15482 pub fn BNSetAutoIsFunctionReturnValueDefaultLocation(
15483 func: *mut BNFunction,
15484 defaultLocation: bool,
15485 );
15486}
15487unsafe extern "C" {
15488 pub fn BNSetAutoFunctionReturnValueLocation(
15489 func: *mut BNFunction,
15490 location: *mut BNValueLocationWithConfidence,
15491 );
15492}
15493unsafe extern "C" {
15494 pub fn BNSetAutoFunctionReturnValue(func: *mut BNFunction, returnValue: *mut BNReturnValue);
15495}
15496unsafe extern "C" {
15497 pub fn BNSetAutoFunctionCallingConvention(
15498 func: *mut BNFunction,
15499 convention: *mut BNCallingConventionWithConfidence,
15500 );
15501}
15502unsafe extern "C" {
15503 pub fn BNSetAutoFunctionParameterLocations(
15504 func: *mut BNFunction,
15505 locations: *mut BNValueLocationListWithConfidence,
15506 );
15507}
15508unsafe extern "C" {
15509 pub fn BNSetAutoFunctionHasVariableArguments(
15510 func: *mut BNFunction,
15511 varArgs: *mut BNBoolWithConfidence,
15512 );
15513}
15514unsafe extern "C" {
15515 pub fn BNSetAutoFunctionCanReturn(func: *mut BNFunction, returns: *mut BNBoolWithConfidence);
15516}
15517unsafe extern "C" {
15518 pub fn BNSetAutoFunctionPure(func: *mut BNFunction, pure_: *mut BNBoolWithConfidence);
15519}
15520unsafe extern "C" {
15521 pub fn BNSetAutoFunctionStackAdjustment(
15522 func: *mut BNFunction,
15523 stackAdjust: *mut BNOffsetWithConfidence,
15524 );
15525}
15526unsafe extern "C" {
15527 pub fn BNSetAutoFunctionRegisterStackAdjustments(
15528 func: *mut BNFunction,
15529 adjustments: *mut BNRegisterStackAdjustment,
15530 count: usize,
15531 );
15532}
15533unsafe extern "C" {
15534 pub fn BNSetAutoFunctionClobberedRegisters(
15535 func: *mut BNFunction,
15536 regs: *mut BNRegisterSetWithConfidence,
15537 );
15538}
15539unsafe extern "C" {
15540 pub fn BNSetUserFunctionReturnType(func: *mut BNFunction, type_: *mut BNTypeWithConfidence);
15541}
15542unsafe extern "C" {
15543 pub fn BNSetUserIsFunctionReturnValueDefaultLocation(
15544 func: *mut BNFunction,
15545 defaultLocation: bool,
15546 );
15547}
15548unsafe extern "C" {
15549 pub fn BNSetUserFunctionReturnValueLocation(
15550 func: *mut BNFunction,
15551 location: *mut BNValueLocationWithConfidence,
15552 );
15553}
15554unsafe extern "C" {
15555 pub fn BNSetUserFunctionReturnValue(func: *mut BNFunction, returnValue: *mut BNReturnValue);
15556}
15557unsafe extern "C" {
15558 pub fn BNSetUserFunctionCallingConvention(
15559 func: *mut BNFunction,
15560 convention: *mut BNCallingConventionWithConfidence,
15561 );
15562}
15563unsafe extern "C" {
15564 pub fn BNSetUserFunctionParameterLocations(
15565 func: *mut BNFunction,
15566 locations: *mut BNValueLocationListWithConfidence,
15567 );
15568}
15569unsafe extern "C" {
15570 pub fn BNSetUserFunctionHasVariableArguments(
15571 func: *mut BNFunction,
15572 varArgs: *mut BNBoolWithConfidence,
15573 );
15574}
15575unsafe extern "C" {
15576 pub fn BNSetUserFunctionCanReturn(func: *mut BNFunction, returns: *mut BNBoolWithConfidence);
15577}
15578unsafe extern "C" {
15579 pub fn BNSetUserFunctionPure(func: *mut BNFunction, pure_: *mut BNBoolWithConfidence);
15580}
15581unsafe extern "C" {
15582 pub fn BNSetUserFunctionStackAdjustment(
15583 func: *mut BNFunction,
15584 stackAdjust: *mut BNOffsetWithConfidence,
15585 );
15586}
15587unsafe extern "C" {
15588 pub fn BNSetUserFunctionRegisterStackAdjustments(
15589 func: *mut BNFunction,
15590 adjustments: *mut BNRegisterStackAdjustment,
15591 count: usize,
15592 );
15593}
15594unsafe extern "C" {
15595 pub fn BNSetUserFunctionClobberedRegisters(
15596 func: *mut BNFunction,
15597 regs: *mut BNRegisterSetWithConfidence,
15598 );
15599}
15600unsafe extern "C" {
15601 pub fn BNApplyImportedTypes(func: *mut BNFunction, sym: *mut BNSymbol, type_: *mut BNType);
15602}
15603unsafe extern "C" {
15604 pub fn BNApplyAutoDiscoveredFunctionType(func: *mut BNFunction, type_: *mut BNType);
15605}
15606unsafe extern "C" {
15607 pub fn BNFunctionHasExplicitlyDefinedType(func: *mut BNFunction) -> bool;
15608}
15609unsafe extern "C" {
15610 pub fn BNGetFunctionTypeTokens(
15611 func: *mut BNFunction,
15612 settings: *mut BNDisassemblySettings,
15613 count: *mut usize,
15614 ) -> *mut BNDisassemblyTextLine;
15615}
15616unsafe extern "C" {
15617 pub fn BNGetFunctionGlobalPointerValues(
15618 func: *mut BNFunction,
15619 count: *mut usize,
15620 ) -> *mut BNRegisterValueWithConfidenceAndRegister;
15621}
15622unsafe extern "C" {
15623 pub fn BNFunctionUsesIncomingGlobalPointer(func: *mut BNFunction) -> bool;
15624}
15625unsafe extern "C" {
15626 pub fn BNGetFunctionRegisterValueAtExit(
15627 func: *mut BNFunction,
15628 reg: u32,
15629 ) -> BNRegisterValueWithConfidence;
15630}
15631unsafe extern "C" {
15632 pub fn BNIsFunctionInlinedDuringAnalysis(func: *mut BNFunction) -> BNBoolWithConfidence;
15633}
15634unsafe extern "C" {
15635 pub fn BNGetFunctionInlinedDuringAnalysis(
15636 func: *mut BNFunction,
15637 ) -> BNInlineDuringAnalysisWithConfidence;
15638}
15639unsafe extern "C" {
15640 pub fn BNSetAutoFunctionInlinedDuringAnalysis(
15641 func: *mut BNFunction,
15642 inlined: BNInlineDuringAnalysisWithConfidence,
15643 );
15644}
15645unsafe extern "C" {
15646 pub fn BNSetUserFunctionInlinedDuringAnalysis(
15647 func: *mut BNFunction,
15648 inlined: BNInlineDuringAnalysisWithConfidence,
15649 );
15650}
15651unsafe extern "C" {
15652 pub fn BNGetInstructionContainingAddress(
15653 func: *mut BNFunction,
15654 arch: *mut BNArchitecture,
15655 addr: u64,
15656 start: *mut u64,
15657 ) -> bool;
15658}
15659unsafe extern "C" {
15660 pub fn BNGetBasicBlockFunction(block: *mut BNBasicBlock) -> *mut BNFunction;
15661}
15662unsafe extern "C" {
15663 pub fn BNGetBasicBlockArchitecture(block: *mut BNBasicBlock) -> *mut BNArchitecture;
15664}
15665unsafe extern "C" {
15666 pub fn BNGetBasicBlockSource(block: *mut BNBasicBlock) -> *mut BNBasicBlock;
15667}
15668unsafe extern "C" {
15669 pub fn BNGetBasicBlockStart(block: *mut BNBasicBlock) -> u64;
15670}
15671unsafe extern "C" {
15672 pub fn BNSetBasicBlockEnd(block: *mut BNBasicBlock, end: u64);
15673}
15674unsafe extern "C" {
15675 pub fn BNGetBasicBlockEnd(block: *mut BNBasicBlock) -> u64;
15676}
15677unsafe extern "C" {
15678 pub fn BNGetBasicBlockLength(block: *mut BNBasicBlock) -> u64;
15679}
15680unsafe extern "C" {
15681 pub fn BNGetBasicBlockOutgoingEdges(
15682 block: *mut BNBasicBlock,
15683 count: *mut usize,
15684 ) -> *mut BNBasicBlockEdge;
15685}
15686unsafe extern "C" {
15687 pub fn BNGetBasicBlockIncomingEdges(
15688 block: *mut BNBasicBlock,
15689 count: *mut usize,
15690 ) -> *mut BNBasicBlockEdge;
15691}
15692unsafe extern "C" {
15693 pub fn BNFreeBasicBlockEdgeList(edges: *mut BNBasicBlockEdge, count: usize);
15694}
15695unsafe extern "C" {
15696 pub fn BNBasicBlockHasUndeterminedOutgoingEdges(block: *mut BNBasicBlock) -> bool;
15697}
15698unsafe extern "C" {
15699 pub fn BNBasicBlockAddPendingOutgoingEdge(
15700 block: *mut BNBasicBlock,
15701 type_: BNBranchType,
15702 addr: u64,
15703 arch: *mut BNArchitecture,
15704 fallThrough: bool,
15705 );
15706}
15707unsafe extern "C" {
15708 pub fn BNGetBasicBlockPendingOutgoingEdges(
15709 block: *mut BNBasicBlock,
15710 count: *mut usize,
15711 ) -> *mut BNPendingBasicBlockEdge;
15712}
15713unsafe extern "C" {
15714 pub fn BNFreePendingBasicBlockEdgeList(edges: *mut BNPendingBasicBlockEdge);
15715}
15716unsafe extern "C" {
15717 pub fn BNClearBasicBlockPendingOutgoingEdges(block: *mut BNBasicBlock);
15718}
15719unsafe extern "C" {
15720 pub fn BNBasicBlockSetUndeterminedOutgoingEdges(block: *mut BNBasicBlock, value: bool);
15721}
15722unsafe extern "C" {
15723 pub fn BNBasicBlockHasInstructionData(block: *mut BNBasicBlock) -> bool;
15724}
15725unsafe extern "C" {
15726 pub fn BNBasicBlockGetInstructionData(
15727 block: *mut BNBasicBlock,
15728 addr: u64,
15729 len: *mut usize,
15730 ) -> *const u8;
15731}
15732unsafe extern "C" {
15733 pub fn BNBasicBlockAddInstructionData(
15734 block: *mut BNBasicBlock,
15735 data: *const ::std::os::raw::c_void,
15736 len: usize,
15737 );
15738}
15739unsafe extern "C" {
15740 pub fn BNBasicBlockSetFallThroughToFunction(block: *mut BNBasicBlock, value: bool);
15741}
15742unsafe extern "C" {
15743 pub fn BNBasicBlockIsFallThroughToFunction(block: *mut BNBasicBlock) -> bool;
15744}
15745unsafe extern "C" {
15746 pub fn BNBasicBlockCanExit(block: *mut BNBasicBlock) -> bool;
15747}
15748unsafe extern "C" {
15749 pub fn BNBasicBlockSetCanExit(block: *mut BNBasicBlock, value: bool);
15750}
15751unsafe extern "C" {
15752 pub fn BNBasicBlockSetHasInvalidInstructions(block: *mut BNBasicBlock, value: bool);
15753}
15754unsafe extern "C" {
15755 pub fn BNBasicBlockHasInvalidInstructions(block: *mut BNBasicBlock) -> bool;
15756}
15757unsafe extern "C" {
15758 pub fn BNGetBasicBlockIndex(block: *mut BNBasicBlock) -> usize;
15759}
15760unsafe extern "C" {
15761 pub fn BNGetBasicBlockDominators(
15762 block: *mut BNBasicBlock,
15763 count: *mut usize,
15764 post: bool,
15765 ) -> *mut *mut BNBasicBlock;
15766}
15767unsafe extern "C" {
15768 pub fn BNGetBasicBlockStrictDominators(
15769 block: *mut BNBasicBlock,
15770 count: *mut usize,
15771 post: bool,
15772 ) -> *mut *mut BNBasicBlock;
15773}
15774unsafe extern "C" {
15775 pub fn BNGetBasicBlockImmediateDominator(
15776 block: *mut BNBasicBlock,
15777 post: bool,
15778 ) -> *mut BNBasicBlock;
15779}
15780unsafe extern "C" {
15781 pub fn BNGetBasicBlockDominatorTreeChildren(
15782 block: *mut BNBasicBlock,
15783 count: *mut usize,
15784 post: bool,
15785 ) -> *mut *mut BNBasicBlock;
15786}
15787unsafe extern "C" {
15788 pub fn BNGetBasicBlockDominanceFrontier(
15789 block: *mut BNBasicBlock,
15790 count: *mut usize,
15791 post: bool,
15792 ) -> *mut *mut BNBasicBlock;
15793}
15794unsafe extern "C" {
15795 pub fn BNGetBasicBlockIteratedDominanceFrontier(
15796 blocks: *mut *mut BNBasicBlock,
15797 incomingCount: usize,
15798 outputCount: *mut usize,
15799 ) -> *mut *mut BNBasicBlock;
15800}
15801unsafe extern "C" {
15802 pub fn BNIsILBasicBlock(block: *mut BNBasicBlock) -> bool;
15803}
15804unsafe extern "C" {
15805 pub fn BNIsLowLevelILBasicBlock(block: *mut BNBasicBlock) -> bool;
15806}
15807unsafe extern "C" {
15808 pub fn BNIsMediumLevelILBasicBlock(block: *mut BNBasicBlock) -> bool;
15809}
15810unsafe extern "C" {
15811 pub fn BNIsHighLevelILBasicBlock(block: *mut BNBasicBlock) -> bool;
15812}
15813unsafe extern "C" {
15814 pub fn BNGetBasicBlockFunctionGraphType(block: *mut BNBasicBlock) -> BNFunctionGraphType;
15815}
15816unsafe extern "C" {
15817 pub fn BNGetBasicBlockLowLevelILFunction(block: *mut BNBasicBlock)
15818 -> *mut BNLowLevelILFunction;
15819}
15820unsafe extern "C" {
15821 pub fn BNGetBasicBlockMediumLevelILFunction(
15822 block: *mut BNBasicBlock,
15823 ) -> *mut BNMediumLevelILFunction;
15824}
15825unsafe extern "C" {
15826 pub fn BNGetBasicBlockHighLevelILFunction(
15827 block: *mut BNBasicBlock,
15828 ) -> *mut BNHighLevelILFunction;
15829}
15830unsafe extern "C" {
15831 pub fn BNGetBasicBlockInstructionContainingAddress(
15832 block: *mut BNBasicBlock,
15833 addr: u64,
15834 start: *mut u64,
15835 ) -> bool;
15836}
15837unsafe extern "C" {
15838 pub fn BNGetBasicBlockSourceBlock(block: *mut BNBasicBlock) -> *mut BNBasicBlock;
15839}
15840unsafe extern "C" {
15841 pub fn BNGetBasicBlockDisassemblyText(
15842 block: *mut BNBasicBlock,
15843 settings: *mut BNDisassemblySettings,
15844 count: *mut usize,
15845 ) -> *mut BNDisassemblyTextLine;
15846}
15847unsafe extern "C" {
15848 pub fn BNFreeDisassemblyTextLines(lines: *mut BNDisassemblyTextLine, count: usize);
15849}
15850unsafe extern "C" {
15851 pub fn BNGetDisplayStringForInteger(
15852 binaryView: *mut BNBinaryView,
15853 type_: BNIntegerDisplayType,
15854 value: u64,
15855 inputWidth: usize,
15856 isSigned: bool,
15857 ) -> *mut ::std::os::raw::c_char;
15858}
15859unsafe extern "C" {
15860 pub fn BNCreateDisassemblyTextRenderer(
15861 func: *mut BNFunction,
15862 settings: *mut BNDisassemblySettings,
15863 ) -> *mut BNDisassemblyTextRenderer;
15864}
15865unsafe extern "C" {
15866 pub fn BNCreateLowLevelILDisassemblyTextRenderer(
15867 func: *mut BNLowLevelILFunction,
15868 settings: *mut BNDisassemblySettings,
15869 ) -> *mut BNDisassemblyTextRenderer;
15870}
15871unsafe extern "C" {
15872 pub fn BNCreateMediumLevelILDisassemblyTextRenderer(
15873 func: *mut BNMediumLevelILFunction,
15874 settings: *mut BNDisassemblySettings,
15875 ) -> *mut BNDisassemblyTextRenderer;
15876}
15877unsafe extern "C" {
15878 pub fn BNCreateHighLevelILDisassemblyTextRenderer(
15879 func: *mut BNHighLevelILFunction,
15880 settings: *mut BNDisassemblySettings,
15881 ) -> *mut BNDisassemblyTextRenderer;
15882}
15883unsafe extern "C" {
15884 pub fn BNNewDisassemblyTextRendererReference(
15885 renderer: *mut BNDisassemblyTextRenderer,
15886 ) -> *mut BNDisassemblyTextRenderer;
15887}
15888unsafe extern "C" {
15889 pub fn BNFreeDisassemblyTextRenderer(renderer: *mut BNDisassemblyTextRenderer);
15890}
15891unsafe extern "C" {
15892 pub fn BNGetDisassemblyTextRendererFunction(
15893 renderer: *mut BNDisassemblyTextRenderer,
15894 ) -> *mut BNFunction;
15895}
15896unsafe extern "C" {
15897 pub fn BNGetDisassemblyTextRendererLowLevelILFunction(
15898 renderer: *mut BNDisassemblyTextRenderer,
15899 ) -> *mut BNLowLevelILFunction;
15900}
15901unsafe extern "C" {
15902 pub fn BNGetDisassemblyTextRendererMediumLevelILFunction(
15903 renderer: *mut BNDisassemblyTextRenderer,
15904 ) -> *mut BNMediumLevelILFunction;
15905}
15906unsafe extern "C" {
15907 pub fn BNGetDisassemblyTextRendererHighLevelILFunction(
15908 renderer: *mut BNDisassemblyTextRenderer,
15909 ) -> *mut BNHighLevelILFunction;
15910}
15911unsafe extern "C" {
15912 pub fn BNGetDisassemblyTextRendererBasicBlock(
15913 renderer: *mut BNDisassemblyTextRenderer,
15914 ) -> *mut BNBasicBlock;
15915}
15916unsafe extern "C" {
15917 pub fn BNGetDisassemblyTextRendererArchitecture(
15918 renderer: *mut BNDisassemblyTextRenderer,
15919 ) -> *mut BNArchitecture;
15920}
15921unsafe extern "C" {
15922 pub fn BNGetDisassemblyTextRendererSettings(
15923 renderer: *mut BNDisassemblyTextRenderer,
15924 ) -> *mut BNDisassemblySettings;
15925}
15926unsafe extern "C" {
15927 pub fn BNSetDisassemblyTextRendererBasicBlock(
15928 renderer: *mut BNDisassemblyTextRenderer,
15929 block: *mut BNBasicBlock,
15930 );
15931}
15932unsafe extern "C" {
15933 pub fn BNSetDisassemblyTextRendererArchitecture(
15934 renderer: *mut BNDisassemblyTextRenderer,
15935 arch: *mut BNArchitecture,
15936 );
15937}
15938unsafe extern "C" {
15939 pub fn BNSetDisassemblyTextRendererSettings(
15940 renderer: *mut BNDisassemblyTextRenderer,
15941 settings: *mut BNDisassemblySettings,
15942 );
15943}
15944unsafe extern "C" {
15945 pub fn BNIsILDisassemblyTextRenderer(renderer: *mut BNDisassemblyTextRenderer) -> bool;
15946}
15947unsafe extern "C" {
15948 pub fn BNDisassemblyTextRendererHasDataFlow(renderer: *mut BNDisassemblyTextRenderer) -> bool;
15949}
15950unsafe extern "C" {
15951 pub fn BNGetDisassemblyTextRendererInstructionAnnotations(
15952 renderer: *mut BNDisassemblyTextRenderer,
15953 addr: u64,
15954 count: *mut usize,
15955 ) -> *mut BNInstructionTextToken;
15956}
15957unsafe extern "C" {
15958 pub fn BNGetDisassemblyTextRendererInstructionText(
15959 renderer: *mut BNDisassemblyTextRenderer,
15960 addr: u64,
15961 len: *mut usize,
15962 result: *mut *mut BNDisassemblyTextLine,
15963 count: *mut usize,
15964 ) -> bool;
15965}
15966unsafe extern "C" {
15967 pub fn BNGetDisassemblyTextRendererLines(
15968 renderer: *mut BNDisassemblyTextRenderer,
15969 addr: u64,
15970 len: *mut usize,
15971 result: *mut *mut BNDisassemblyTextLine,
15972 count: *mut usize,
15973 ) -> bool;
15974}
15975unsafe extern "C" {
15976 pub fn BNPostProcessDisassemblyTextRendererLines(
15977 renderer: *mut BNDisassemblyTextRenderer,
15978 addr: u64,
15979 len: usize,
15980 inLines: *mut BNDisassemblyTextLine,
15981 inCount: usize,
15982 outCount: *mut usize,
15983 indentSpaces: *const ::std::os::raw::c_char,
15984 ) -> *mut BNDisassemblyTextLine;
15985}
15986unsafe extern "C" {
15987 pub fn BNResetDisassemblyTextRendererDeduplicatedComments(
15988 renderer: *mut BNDisassemblyTextRenderer,
15989 );
15990}
15991unsafe extern "C" {
15992 pub fn BNGetDisassemblyTextRendererSymbolTokens(
15993 renderer: *mut BNDisassemblyTextRenderer,
15994 addr: u64,
15995 size: usize,
15996 operand: usize,
15997 result: *mut *mut BNInstructionTextToken,
15998 count: *mut usize,
15999 ) -> bool;
16000}
16001unsafe extern "C" {
16002 pub fn BNGetDisassemblyTextRendererSymbolTokensStatic(
16003 addr: u64,
16004 size: usize,
16005 operand: usize,
16006 data: *mut BNBinaryView,
16007 maxSymbolWidth: usize,
16008 func: *mut BNFunction,
16009 confidence: u8,
16010 symbolDisplay: BNSymbolDisplayType,
16011 precedence: BNOperatorPrecedence,
16012 instrAddr: u64,
16013 exprIndex: u64,
16014 result: *mut *mut BNInstructionTextToken,
16015 count: *mut usize,
16016 ) -> BNSymbolDisplayResult;
16017}
16018unsafe extern "C" {
16019 pub fn BNGetDisassemblyTextRendererStackVariableReferenceTokens(
16020 renderer: *mut BNDisassemblyTextRenderer,
16021 ref_: *mut BNStackVariableReference,
16022 count: *mut usize,
16023 ) -> *mut BNInstructionTextToken;
16024}
16025unsafe extern "C" {
16026 pub fn BNIsIntegerToken(type_: BNInstructionTextTokenType) -> bool;
16027}
16028unsafe extern "C" {
16029 pub fn BNGetDisassemblyTextRendererIntegerTokens(
16030 renderer: *mut BNDisassemblyTextRenderer,
16031 token: *mut BNInstructionTextToken,
16032 arch: *mut BNArchitecture,
16033 addr: u64,
16034 count: *mut usize,
16035 ) -> *mut BNInstructionTextToken;
16036}
16037unsafe extern "C" {
16038 pub fn BNDisassemblyTextRendererWrapComment(
16039 renderer: *mut BNDisassemblyTextRenderer,
16040 inLine: *const BNDisassemblyTextLine,
16041 outLineCount: *mut usize,
16042 comment: *const ::std::os::raw::c_char,
16043 hasAutoAnnotations: bool,
16044 leadingSpaces: *const ::std::os::raw::c_char,
16045 indentSpaces: *const ::std::os::raw::c_char,
16046 ) -> *mut BNDisassemblyTextLine;
16047}
16048unsafe extern "C" {
16049 pub fn BNGetStringLiteralPrefix(type_: BNStringType) -> *mut ::std::os::raw::c_char;
16050}
16051unsafe extern "C" {
16052 pub fn BNMarkFunctionAsRecentlyUsed(func: *mut BNFunction);
16053}
16054unsafe extern "C" {
16055 pub fn BNMarkBasicBlockAsRecentlyUsed(block: *mut BNBasicBlock);
16056}
16057unsafe extern "C" {
16058 pub fn BNGetCodeReferences(
16059 view: *mut BNBinaryView,
16060 addr: u64,
16061 count: *mut usize,
16062 limit: bool,
16063 maxItems: usize,
16064 ) -> *mut BNReferenceSource;
16065}
16066unsafe extern "C" {
16067 pub fn BNGetCodeReferencesInRange(
16068 view: *mut BNBinaryView,
16069 addr: u64,
16070 len: u64,
16071 count: *mut usize,
16072 limit: bool,
16073 maxItems: usize,
16074 ) -> *mut BNReferenceSource;
16075}
16076unsafe extern "C" {
16077 pub fn BNFreeCodeReferences(refs: *mut BNReferenceSource, count: usize);
16078}
16079unsafe extern "C" {
16080 pub fn BNFreeTypeFieldReferences(refs: *mut BNTypeFieldReference, count: usize);
16081}
16082unsafe extern "C" {
16083 pub fn BNFreeILReferences(refs: *mut BNILReferenceSource, count: usize);
16084}
16085unsafe extern "C" {
16086 pub fn BNGetCodeReferencesFrom(
16087 view: *mut BNBinaryView,
16088 src: *mut BNReferenceSource,
16089 count: *mut usize,
16090 ) -> *mut u64;
16091}
16092unsafe extern "C" {
16093 pub fn BNGetCodeReferencesFromInRange(
16094 view: *mut BNBinaryView,
16095 src: *mut BNReferenceSource,
16096 len: u64,
16097 count: *mut usize,
16098 ) -> *mut u64;
16099}
16100unsafe extern "C" {
16101 pub fn BNGetDataReferences(
16102 view: *mut BNBinaryView,
16103 addr: u64,
16104 count: *mut usize,
16105 limit: bool,
16106 maxItems: usize,
16107 ) -> *mut u64;
16108}
16109unsafe extern "C" {
16110 pub fn BNGetDataReferencesInRange(
16111 view: *mut BNBinaryView,
16112 addr: u64,
16113 len: u64,
16114 count: *mut usize,
16115 limit: bool,
16116 maxItems: usize,
16117 ) -> *mut u64;
16118}
16119unsafe extern "C" {
16120 pub fn BNGetDataReferencesFrom(
16121 view: *mut BNBinaryView,
16122 addr: u64,
16123 count: *mut usize,
16124 ) -> *mut u64;
16125}
16126unsafe extern "C" {
16127 pub fn BNGetDataReferencesFromInRange(
16128 view: *mut BNBinaryView,
16129 addr: u64,
16130 len: u64,
16131 count: *mut usize,
16132 ) -> *mut u64;
16133}
16134unsafe extern "C" {
16135 pub fn BNAddDataReference(view: *mut BNBinaryView, fromAddr: u64, toAddr: u64);
16136}
16137unsafe extern "C" {
16138 pub fn BNRemoveDataReference(view: *mut BNBinaryView, fromAddr: u64, toAddr: u64);
16139}
16140unsafe extern "C" {
16141 pub fn BNAddUserDataReference(view: *mut BNBinaryView, fromAddr: u64, toAddr: u64);
16142}
16143unsafe extern "C" {
16144 pub fn BNRemoveUserDataReference(view: *mut BNBinaryView, fromAddr: u64, toAddr: u64);
16145}
16146unsafe extern "C" {
16147 pub fn BNFreeDataReferences(refs: *mut u64);
16148}
16149unsafe extern "C" {
16150 pub fn BNFreeTypeReferences(refs: *mut BNTypeReferenceSource, count: usize);
16151}
16152unsafe extern "C" {
16153 pub fn BNFreeTypeFieldReferenceSizeInfo(refs: *mut BNTypeFieldReferenceSizeInfo, count: usize);
16154}
16155unsafe extern "C" {
16156 pub fn BNFreeTypeFieldReferenceTypeInfo(refs: *mut BNTypeFieldReferenceTypeInfo, count: usize);
16157}
16158unsafe extern "C" {
16159 pub fn BNFreeTypeFieldReferenceSizes(refs: *mut usize, count: usize);
16160}
16161unsafe extern "C" {
16162 pub fn BNFreeTypeFieldReferenceTypes(refs: *mut BNTypeWithConfidence, count: usize);
16163}
16164unsafe extern "C" {
16165 #[doc = " References to type"]
16166 pub fn BNGetCodeReferencesForType(
16167 view: *mut BNBinaryView,
16168 type_: *mut BNQualifiedName,
16169 count: *mut usize,
16170 limit: bool,
16171 maxItems: usize,
16172 ) -> *mut BNReferenceSource;
16173}
16174unsafe extern "C" {
16175 pub fn BNGetDataReferencesForType(
16176 view: *mut BNBinaryView,
16177 type_: *mut BNQualifiedName,
16178 count: *mut usize,
16179 limit: bool,
16180 maxItems: usize,
16181 ) -> *mut u64;
16182}
16183unsafe extern "C" {
16184 pub fn BNGetTypeReferencesForType(
16185 view: *mut BNBinaryView,
16186 type_: *mut BNQualifiedName,
16187 count: *mut usize,
16188 limit: bool,
16189 maxItems: usize,
16190 ) -> *mut BNTypeReferenceSource;
16191}
16192unsafe extern "C" {
16193 #[doc = " References to type field"]
16194 pub fn BNGetCodeReferencesForTypeField(
16195 view: *mut BNBinaryView,
16196 type_: *mut BNQualifiedName,
16197 offset: u64,
16198 count: *mut usize,
16199 limit: bool,
16200 maxItems: usize,
16201 ) -> *mut BNTypeFieldReference;
16202}
16203unsafe extern "C" {
16204 pub fn BNGetDataReferencesForTypeField(
16205 view: *mut BNBinaryView,
16206 type_: *mut BNQualifiedName,
16207 offset: u64,
16208 count: *mut usize,
16209 limit: bool,
16210 maxItems: usize,
16211 ) -> *mut u64;
16212}
16213unsafe extern "C" {
16214 pub fn BNGetDataReferencesFromForTypeField(
16215 view: *mut BNBinaryView,
16216 type_: *mut BNQualifiedName,
16217 offset: u64,
16218 count: *mut usize,
16219 limit: bool,
16220 maxItems: usize,
16221 ) -> *mut u64;
16222}
16223unsafe extern "C" {
16224 pub fn BNGetTypeReferencesForTypeField(
16225 view: *mut BNBinaryView,
16226 type_: *mut BNQualifiedName,
16227 offset: u64,
16228 count: *mut usize,
16229 limit: bool,
16230 maxItems: usize,
16231 ) -> *mut BNTypeReferenceSource;
16232}
16233unsafe extern "C" {
16234 pub fn BNGetAllReferencesForType(
16235 view: *mut BNBinaryView,
16236 type_: *mut BNQualifiedName,
16237 limit: bool,
16238 maxItems: usize,
16239 ) -> BNAllTypeReferences;
16240}
16241unsafe extern "C" {
16242 pub fn BNFreeAllTypeReferences(refs: *mut BNAllTypeReferences);
16243}
16244unsafe extern "C" {
16245 pub fn BNGetAllReferencesForTypeField(
16246 view: *mut BNBinaryView,
16247 type_: *mut BNQualifiedName,
16248 offset: u64,
16249 limit: bool,
16250 maxItems: usize,
16251 ) -> BNAllTypeFieldReferences;
16252}
16253unsafe extern "C" {
16254 pub fn BNFreeAllTypeFieldReferences(refs: *mut BNAllTypeFieldReferences);
16255}
16256unsafe extern "C" {
16257 pub fn BNGetCodeReferencesForTypeFrom(
16258 view: *mut BNBinaryView,
16259 addr: *mut BNReferenceSource,
16260 count: *mut usize,
16261 ) -> *mut BNTypeReferenceSource;
16262}
16263unsafe extern "C" {
16264 pub fn BNGetCodeReferencesForTypeFromInRange(
16265 view: *mut BNBinaryView,
16266 addr: *mut BNReferenceSource,
16267 len: u64,
16268 count: *mut usize,
16269 ) -> *mut BNTypeReferenceSource;
16270}
16271unsafe extern "C" {
16272 pub fn BNGetCodeReferencesForTypeFieldsFrom(
16273 view: *mut BNBinaryView,
16274 addr: *mut BNReferenceSource,
16275 count: *mut usize,
16276 ) -> *mut BNTypeReferenceSource;
16277}
16278unsafe extern "C" {
16279 pub fn BNGetCodeReferencesForTypeFieldsFromInRange(
16280 view: *mut BNBinaryView,
16281 addr: *mut BNReferenceSource,
16282 len: u64,
16283 count: *mut usize,
16284 ) -> *mut BNTypeReferenceSource;
16285}
16286unsafe extern "C" {
16287 pub fn BNGetAllFieldsReferenced(
16288 view: *mut BNBinaryView,
16289 type_: *mut BNQualifiedName,
16290 count: *mut usize,
16291 ) -> *mut u64;
16292}
16293unsafe extern "C" {
16294 pub fn BNGetAllSizesReferenced(
16295 view: *mut BNBinaryView,
16296 type_: *mut BNQualifiedName,
16297 count: *mut usize,
16298 ) -> *mut BNTypeFieldReferenceSizeInfo;
16299}
16300unsafe extern "C" {
16301 pub fn BNGetAllTypesReferenced(
16302 view: *mut BNBinaryView,
16303 type_: *mut BNQualifiedName,
16304 count: *mut usize,
16305 ) -> *mut BNTypeFieldReferenceTypeInfo;
16306}
16307unsafe extern "C" {
16308 pub fn BNGetSizesReferenced(
16309 view: *mut BNBinaryView,
16310 type_: *mut BNQualifiedName,
16311 offset: u64,
16312 count: *mut usize,
16313 ) -> *mut usize;
16314}
16315unsafe extern "C" {
16316 pub fn BNGetTypesReferenced(
16317 view: *mut BNBinaryView,
16318 type_: *mut BNQualifiedName,
16319 offset: u64,
16320 count: *mut usize,
16321 ) -> *mut BNTypeWithConfidence;
16322}
16323unsafe extern "C" {
16324 pub fn BNGetOutgoingDirectTypeReferences(
16325 view: *mut BNBinaryView,
16326 type_: *mut BNQualifiedName,
16327 count: *mut usize,
16328 ) -> *mut BNQualifiedName;
16329}
16330unsafe extern "C" {
16331 pub fn BNGetOutgoingRecursiveTypeReferences(
16332 view: *mut BNBinaryView,
16333 types: *mut BNQualifiedName,
16334 typeCount: usize,
16335 count: *mut usize,
16336 ) -> *mut BNQualifiedName;
16337}
16338unsafe extern "C" {
16339 pub fn BNGetIncomingDirectTypeReferences(
16340 view: *mut BNBinaryView,
16341 type_: *mut BNQualifiedName,
16342 count: *mut usize,
16343 ) -> *mut BNQualifiedName;
16344}
16345unsafe extern "C" {
16346 pub fn BNGetIncomingRecursiveTypeReferences(
16347 view: *mut BNBinaryView,
16348 types: *mut BNQualifiedName,
16349 typeCount: usize,
16350 count: *mut usize,
16351 ) -> *mut BNQualifiedName;
16352}
16353unsafe extern "C" {
16354 pub fn BNRegisterGlobalFunctionRecognizer(rec: *mut BNFunctionRecognizer);
16355}
16356unsafe extern "C" {
16357 pub fn BNGetStringAtAddress(
16358 view: *mut BNBinaryView,
16359 addr: u64,
16360 strRef: *mut BNStringReference,
16361 ) -> bool;
16362}
16363unsafe extern "C" {
16364 pub fn BNGetStrings(view: *mut BNBinaryView, count: *mut usize) -> *mut BNStringReference;
16365}
16366unsafe extern "C" {
16367 pub fn BNGetStringsInRange(
16368 view: *mut BNBinaryView,
16369 start: u64,
16370 len: u64,
16371 count: *mut usize,
16372 ) -> *mut BNStringReference;
16373}
16374unsafe extern "C" {
16375 pub fn BNFreeStringReferenceList(strings: *mut BNStringReference);
16376}
16377unsafe extern "C" {
16378 pub fn BNGetDerivedStrings(view: *mut BNBinaryView, count: *mut usize) -> *mut BNDerivedString;
16379}
16380unsafe extern "C" {
16381 pub fn BNGetDerivedStringCodeReferences(
16382 view: *mut BNBinaryView,
16383 str_: *mut BNDerivedString,
16384 count: *mut usize,
16385 limit: bool,
16386 maxItems: usize,
16387 ) -> *mut BNReferenceSource;
16388}
16389unsafe extern "C" {
16390 pub fn BNFreeDerivedStringList(strings: *mut BNDerivedString, count: usize);
16391}
16392unsafe extern "C" {
16393 pub fn BNGetStackLayout(func: *mut BNFunction, count: *mut usize)
16394 -> *mut BNVariableNameAndType;
16395}
16396unsafe extern "C" {
16397 pub fn BNFreeVariableNameAndTypeList(vars: *mut BNVariableNameAndType, count: usize);
16398}
16399unsafe extern "C" {
16400 pub fn BNCreateAutoStackVariable(
16401 func: *mut BNFunction,
16402 offset: i64,
16403 type_: *mut BNTypeWithConfidence,
16404 name: *const ::std::os::raw::c_char,
16405 );
16406}
16407unsafe extern "C" {
16408 pub fn BNCreateUserStackVariable(
16409 func: *mut BNFunction,
16410 offset: i64,
16411 type_: *mut BNTypeWithConfidence,
16412 name: *const ::std::os::raw::c_char,
16413 );
16414}
16415unsafe extern "C" {
16416 pub fn BNDeleteAutoStackVariable(func: *mut BNFunction, offset: i64);
16417}
16418unsafe extern "C" {
16419 pub fn BNDeleteUserStackVariable(func: *mut BNFunction, offset: i64);
16420}
16421unsafe extern "C" {
16422 pub fn BNGetStackVariableAtFrameOffset(
16423 func: *mut BNFunction,
16424 arch: *mut BNArchitecture,
16425 addr: u64,
16426 offset: i64,
16427 var: *mut BNVariableNameAndType,
16428 ) -> bool;
16429}
16430unsafe extern "C" {
16431 pub fn BNGetStackVariableAtFrameOffsetAfterInstruction(
16432 func: *mut BNFunction,
16433 arch: *mut BNArchitecture,
16434 addr: u64,
16435 offset: i64,
16436 var: *mut BNVariableNameAndType,
16437 ) -> bool;
16438}
16439unsafe extern "C" {
16440 pub fn BNFreeVariableNameAndType(var: *mut BNVariableNameAndType);
16441}
16442unsafe extern "C" {
16443 pub fn BNGetFunctionVariables(
16444 func: *mut BNFunction,
16445 count: *mut usize,
16446 ) -> *mut BNVariableNameAndType;
16447}
16448unsafe extern "C" {
16449 pub fn BNCreateAutoVariable(
16450 func: *mut BNFunction,
16451 var: *const BNVariable,
16452 type_: *mut BNTypeWithConfidence,
16453 name: *const ::std::os::raw::c_char,
16454 ignoreDisjointUses: bool,
16455 );
16456}
16457unsafe extern "C" {
16458 pub fn BNCreateUserVariable(
16459 func: *mut BNFunction,
16460 var: *const BNVariable,
16461 type_: *mut BNTypeWithConfidence,
16462 name: *const ::std::os::raw::c_char,
16463 ignoreDisjointUses: bool,
16464 );
16465}
16466unsafe extern "C" {
16467 pub fn BNDeleteUserVariable(func: *mut BNFunction, var: *const BNVariable);
16468}
16469unsafe extern "C" {
16470 pub fn BNIsVariableUserDefined(func: *mut BNFunction, var: *const BNVariable) -> bool;
16471}
16472unsafe extern "C" {
16473 pub fn BNGetVariableType(func: *mut BNFunction, var: *const BNVariable)
16474 -> BNTypeWithConfidence;
16475}
16476unsafe extern "C" {
16477 pub fn BNGetVariableName(
16478 func: *mut BNFunction,
16479 var: *const BNVariable,
16480 ) -> *mut ::std::os::raw::c_char;
16481}
16482unsafe extern "C" {
16483 pub fn BNGetVariableNameOrDefault(
16484 func: *mut BNFunction,
16485 var: *const BNVariable,
16486 ) -> *mut ::std::os::raw::c_char;
16487}
16488unsafe extern "C" {
16489 pub fn BNGetLastSeenVariableNameOrDefault(
16490 func: *mut BNFunction,
16491 var: *const BNVariable,
16492 ) -> *mut ::std::os::raw::c_char;
16493}
16494unsafe extern "C" {
16495 pub fn BNToVariableIdentifier(var: *const BNVariable) -> u64;
16496}
16497unsafe extern "C" {
16498 pub fn BNFromVariableIdentifier(id: u64) -> BNVariable;
16499}
16500unsafe extern "C" {
16501 pub fn BNGetFunctionVariableDeadStoreElimination(
16502 func: *mut BNFunction,
16503 var: *const BNVariable,
16504 ) -> BNDeadStoreElimination;
16505}
16506unsafe extern "C" {
16507 pub fn BNSetFunctionVariableDeadStoreElimination(
16508 func: *mut BNFunction,
16509 var: *const BNVariable,
16510 mode: BNDeadStoreElimination,
16511 );
16512}
16513unsafe extern "C" {
16514 pub fn BNGetExprFolding(func: *mut BNFunction, addr: u64) -> BNExprFolding;
16515}
16516unsafe extern "C" {
16517 pub fn BNSetExprFolding(func: *mut BNFunction, addr: u64, mode: BNExprFolding);
16518}
16519unsafe extern "C" {
16520 pub fn BNIsConditionInverted(func: *mut BNFunction, addr: u64) -> bool;
16521}
16522unsafe extern "C" {
16523 pub fn BNSetConditionInverted(func: *mut BNFunction, addr: u64, invert: bool);
16524}
16525unsafe extern "C" {
16526 pub fn BNGetEarlyReturn(func: *mut BNFunction, addr: u64) -> BNEarlyReturn;
16527}
16528unsafe extern "C" {
16529 pub fn BNSetEarlyReturn(func: *mut BNFunction, addr: u64, mode: BNEarlyReturn);
16530}
16531unsafe extern "C" {
16532 pub fn BNGetSwitchRecovery(func: *mut BNFunction, addr: u64) -> BNSwitchRecovery;
16533}
16534unsafe extern "C" {
16535 pub fn BNSetSwitchRecovery(func: *mut BNFunction, addr: u64, mode: BNSwitchRecovery);
16536}
16537unsafe extern "C" {
16538 pub fn BNGetMergedVariables(func: *mut BNFunction, count: *mut usize) -> *mut BNMergedVariable;
16539}
16540unsafe extern "C" {
16541 pub fn BNFreeMergedVariableList(vars: *mut BNMergedVariable, count: usize);
16542}
16543unsafe extern "C" {
16544 pub fn BNMergeVariables(
16545 func: *mut BNFunction,
16546 target: *const BNVariable,
16547 sources: *const BNVariable,
16548 sourceCount: usize,
16549 );
16550}
16551unsafe extern "C" {
16552 pub fn BNUnmergeVariables(
16553 func: *mut BNFunction,
16554 target: *const BNVariable,
16555 sources: *const BNVariable,
16556 sourceCount: usize,
16557 );
16558}
16559unsafe extern "C" {
16560 pub fn BNGetSplitVariables(func: *mut BNFunction, count: *mut usize) -> *mut BNVariable;
16561}
16562unsafe extern "C" {
16563 pub fn BNSplitVariable(func: *mut BNFunction, var: *const BNVariable);
16564}
16565unsafe extern "C" {
16566 pub fn BNUnsplitVariable(func: *mut BNFunction, var: *const BNVariable);
16567}
16568unsafe extern "C" {
16569 pub fn BNGetFunctionCallSites(
16570 func: *mut BNFunction,
16571 count: *mut usize,
16572 ) -> *mut BNReferenceSource;
16573}
16574unsafe extern "C" {
16575 pub fn BNGetCallees(
16576 view: *mut BNBinaryView,
16577 callSite: *mut BNReferenceSource,
16578 count: *mut usize,
16579 ) -> *mut u64;
16580}
16581unsafe extern "C" {
16582 pub fn BNGetCallers(
16583 view: *mut BNBinaryView,
16584 callee: u64,
16585 count: *mut usize,
16586 ) -> *mut BNReferenceSource;
16587}
16588unsafe extern "C" {
16589 pub fn BNSetAutoIndirectBranches(
16590 func: *mut BNFunction,
16591 sourceArch: *mut BNArchitecture,
16592 source: u64,
16593 branches: *mut BNArchitectureAndAddress,
16594 count: usize,
16595 );
16596}
16597unsafe extern "C" {
16598 pub fn BNSetUserIndirectBranches(
16599 func: *mut BNFunction,
16600 sourceArch: *mut BNArchitecture,
16601 source: u64,
16602 branches: *mut BNArchitectureAndAddress,
16603 count: usize,
16604 );
16605}
16606unsafe extern "C" {
16607 pub fn BNSetGuidedSourceBlocks(
16608 func: *mut BNFunction,
16609 addresses: *mut BNArchitectureAndAddress,
16610 count: usize,
16611 );
16612}
16613unsafe extern "C" {
16614 pub fn BNAddGuidedSourceBlocks(
16615 func: *mut BNFunction,
16616 addresses: *mut BNArchitectureAndAddress,
16617 count: usize,
16618 );
16619}
16620unsafe extern "C" {
16621 pub fn BNRemoveGuidedSourceBlocks(
16622 func: *mut BNFunction,
16623 addresses: *mut BNArchitectureAndAddress,
16624 count: usize,
16625 );
16626}
16627unsafe extern "C" {
16628 pub fn BNIsGuidedSourceBlock(
16629 func: *mut BNFunction,
16630 arch: *mut BNArchitecture,
16631 addr: u64,
16632 ) -> bool;
16633}
16634unsafe extern "C" {
16635 pub fn BNGetGuidedSourceBlocks(
16636 func: *mut BNFunction,
16637 count: *mut usize,
16638 ) -> *mut BNArchitectureAndAddress;
16639}
16640unsafe extern "C" {
16641 pub fn BNHasGuidedSourceBlocks(func: *mut BNFunction) -> bool;
16642}
16643unsafe extern "C" {
16644 pub fn BNFreeArchitectureAndAddressList(addresses: *mut BNArchitectureAndAddress);
16645}
16646unsafe extern "C" {
16647 pub fn BNGetIndirectBranches(
16648 func: *mut BNFunction,
16649 count: *mut usize,
16650 ) -> *mut BNIndirectBranchInfo;
16651}
16652unsafe extern "C" {
16653 pub fn BNGetIndirectBranchesAt(
16654 func: *mut BNFunction,
16655 arch: *mut BNArchitecture,
16656 addr: u64,
16657 count: *mut usize,
16658 ) -> *mut BNIndirectBranchInfo;
16659}
16660unsafe extern "C" {
16661 pub fn BNFreeIndirectBranchList(branches: *mut BNIndirectBranchInfo);
16662}
16663unsafe extern "C" {
16664 pub fn BNGetCalleeForAnalysis(
16665 func: *mut BNFunction,
16666 platform: *mut BNPlatform,
16667 addr: u64,
16668 exact: bool,
16669 ) -> *mut BNFunction;
16670}
16671unsafe extern "C" {
16672 pub fn BNGetUnresolvedIndirectBranches(
16673 func: *mut BNFunction,
16674 count: *mut usize,
16675 ) -> *mut BNArchitectureAndAddress;
16676}
16677unsafe extern "C" {
16678 pub fn BNHasUnresolvedIndirectBranches(func: *mut BNFunction) -> bool;
16679}
16680unsafe extern "C" {
16681 pub fn BNFunctionToggleRegion(func: *mut BNFunction, hash: u64);
16682}
16683unsafe extern "C" {
16684 pub fn BNFunctionIsRegionCollapsed(func: *mut BNFunction, hash: u64) -> bool;
16685}
16686unsafe extern "C" {
16687 pub fn BNFunctionExpandAll(func: *mut BNFunction);
16688}
16689unsafe extern "C" {
16690 pub fn BNFunctionCollapseRegion(func: *mut BNFunction, hash: u64);
16691}
16692unsafe extern "C" {
16693 pub fn BNFunctionExpandRegion(func: *mut BNFunction, hash: u64);
16694}
16695unsafe extern "C" {
16696 pub fn BNFunctionStoreMetadata(
16697 func: *mut BNFunction,
16698 key: *const ::std::os::raw::c_char,
16699 value: *mut BNMetadata,
16700 isAuto: bool,
16701 );
16702}
16703unsafe extern "C" {
16704 pub fn BNFunctionQueryMetadata(
16705 func: *mut BNFunction,
16706 key: *const ::std::os::raw::c_char,
16707 ) -> *mut BNMetadata;
16708}
16709unsafe extern "C" {
16710 pub fn BNFunctionRemoveMetadata(func: *mut BNFunction, key: *const ::std::os::raw::c_char);
16711}
16712unsafe extern "C" {
16713 pub fn BNFunctionGetMetadata(func: *mut BNFunction) -> *mut BNMetadata;
16714}
16715unsafe extern "C" {
16716 pub fn BNFunctionGetAutoMetadata(func: *mut BNFunction) -> *mut BNMetadata;
16717}
16718unsafe extern "C" {
16719 pub fn BNSetAutoCallTypeAdjustment(
16720 func: *mut BNFunction,
16721 arch: *mut BNArchitecture,
16722 addr: u64,
16723 type_: *mut BNTypeWithConfidence,
16724 );
16725}
16726unsafe extern "C" {
16727 pub fn BNSetUserCallTypeAdjustment(
16728 func: *mut BNFunction,
16729 arch: *mut BNArchitecture,
16730 addr: u64,
16731 type_: *mut BNTypeWithConfidence,
16732 );
16733}
16734unsafe extern "C" {
16735 pub fn BNSetAutoCallStackAdjustment(
16736 func: *mut BNFunction,
16737 arch: *mut BNArchitecture,
16738 addr: u64,
16739 adjust: i64,
16740 confidence: u8,
16741 );
16742}
16743unsafe extern "C" {
16744 pub fn BNSetUserCallStackAdjustment(
16745 func: *mut BNFunction,
16746 arch: *mut BNArchitecture,
16747 addr: u64,
16748 adjust: i64,
16749 confidence: u8,
16750 );
16751}
16752unsafe extern "C" {
16753 pub fn BNSetAutoCallRegisterStackAdjustment(
16754 func: *mut BNFunction,
16755 arch: *mut BNArchitecture,
16756 addr: u64,
16757 adjust: *mut BNRegisterStackAdjustment,
16758 count: usize,
16759 );
16760}
16761unsafe extern "C" {
16762 pub fn BNSetUserCallRegisterStackAdjustment(
16763 func: *mut BNFunction,
16764 arch: *mut BNArchitecture,
16765 addr: u64,
16766 adjust: *mut BNRegisterStackAdjustment,
16767 count: usize,
16768 );
16769}
16770unsafe extern "C" {
16771 pub fn BNSetAutoCallRegisterStackAdjustmentForRegisterStack(
16772 func: *mut BNFunction,
16773 arch: *mut BNArchitecture,
16774 addr: u64,
16775 regStack: u32,
16776 adjust: i32,
16777 confidence: u8,
16778 );
16779}
16780unsafe extern "C" {
16781 pub fn BNSetUserCallRegisterStackAdjustmentForRegisterStack(
16782 func: *mut BNFunction,
16783 arch: *mut BNArchitecture,
16784 addr: u64,
16785 regStack: u32,
16786 adjust: i32,
16787 confidence: u8,
16788 );
16789}
16790unsafe extern "C" {
16791 pub fn BNGetCallTypeAdjustment(
16792 func: *mut BNFunction,
16793 arch: *mut BNArchitecture,
16794 addr: u64,
16795 ) -> BNTypeWithConfidence;
16796}
16797unsafe extern "C" {
16798 pub fn BNGetCallStackAdjustment(
16799 func: *mut BNFunction,
16800 arch: *mut BNArchitecture,
16801 addr: u64,
16802 ) -> BNOffsetWithConfidence;
16803}
16804unsafe extern "C" {
16805 pub fn BNGetCallRegisterStackAdjustment(
16806 func: *mut BNFunction,
16807 arch: *mut BNArchitecture,
16808 addr: u64,
16809 count: *mut usize,
16810 ) -> *mut BNRegisterStackAdjustment;
16811}
16812unsafe extern "C" {
16813 pub fn BNGetCallRegisterStackAdjustmentForRegisterStack(
16814 func: *mut BNFunction,
16815 arch: *mut BNArchitecture,
16816 addr: u64,
16817 regStack: u32,
16818 ) -> BNRegisterStackAdjustment;
16819}
16820unsafe extern "C" {
16821 pub fn BNIsCallInstruction(func: *mut BNFunction, arch: *mut BNArchitecture, addr: u64)
16822 -> bool;
16823}
16824unsafe extern "C" {
16825 pub fn BNGetFunctionBlockAnnotations(
16826 func: *mut BNFunction,
16827 arch: *mut BNArchitecture,
16828 addr: u64,
16829 count: *mut usize,
16830 ) -> *mut BNInstructionTextLine;
16831}
16832unsafe extern "C" {
16833 pub fn BNGetFunctionBlockSortHint(
16834 func: *mut BNFunction,
16835 arch: *mut BNArchitecture,
16836 addr: u64,
16837 result: *mut i64,
16838 ) -> bool;
16839}
16840unsafe extern "C" {
16841 pub fn BNGetIntegerConstantDisplayType(
16842 func: *mut BNFunction,
16843 arch: *mut BNArchitecture,
16844 instrAddr: u64,
16845 value: u64,
16846 operand: usize,
16847 ) -> BNIntegerDisplayType;
16848}
16849unsafe extern "C" {
16850 pub fn BNSetIntegerConstantDisplayType(
16851 func: *mut BNFunction,
16852 arch: *mut BNArchitecture,
16853 instrAddr: u64,
16854 value: u64,
16855 operand: usize,
16856 type_: BNIntegerDisplayType,
16857 typeID: *const ::std::os::raw::c_char,
16858 );
16859}
16860unsafe extern "C" {
16861 pub fn BNGetIntegerConstantDisplayTypeEnumerationType(
16862 func: *mut BNFunction,
16863 arch: *mut BNArchitecture,
16864 instrAddr: u64,
16865 value: u64,
16866 operand: usize,
16867 ) -> *mut ::std::os::raw::c_char;
16868}
16869unsafe extern "C" {
16870 pub fn BNIsFunctionTooLarge(func: *mut BNFunction) -> bool;
16871}
16872unsafe extern "C" {
16873 pub fn BNIsFunctionAnalysisSkipped(func: *mut BNFunction) -> bool;
16874}
16875unsafe extern "C" {
16876 pub fn BNGetAnalysisSkipReason(func: *mut BNFunction) -> BNAnalysisSkipReason;
16877}
16878unsafe extern "C" {
16879 pub fn BNGetFunctionAnalysisSkipOverride(
16880 func: *mut BNFunction,
16881 ) -> BNFunctionAnalysisSkipOverride;
16882}
16883unsafe extern "C" {
16884 pub fn BNSetFunctionAnalysisSkipOverride(
16885 func: *mut BNFunction,
16886 skip: BNFunctionAnalysisSkipOverride,
16887 );
16888}
16889unsafe extern "C" {
16890 pub fn BNGetGotoLabelName(func: *mut BNFunction, labelId: u64) -> *mut ::std::os::raw::c_char;
16891}
16892unsafe extern "C" {
16893 pub fn BNSetUserGotoLabelName(
16894 func: *mut BNFunction,
16895 labelId: u64,
16896 name: *const ::std::os::raw::c_char,
16897 );
16898}
16899unsafe extern "C" {
16900 #[doc = " BNAnalyzeBasicBlockContext operations"]
16901 pub fn BNAnalyzeBasicBlocksContextCreateBasicBlock(
16902 abb: *mut BNBasicBlockAnalysisContext,
16903 arch: *mut BNArchitecture,
16904 addr: u64,
16905 ) -> *mut BNBasicBlock;
16906}
16907unsafe extern "C" {
16908 pub fn BNAnalyzeBasicBlocksContextAddBasicBlockToFunction(
16909 abb: *mut BNBasicBlockAnalysisContext,
16910 block: *mut BNBasicBlock,
16911 );
16912}
16913unsafe extern "C" {
16914 pub fn BNAnalyzeBasicBlocksContextAddTempReference(
16915 abb: *mut BNBasicBlockAnalysisContext,
16916 target: *mut BNFunction,
16917 );
16918}
16919unsafe extern "C" {
16920 pub fn BNAnalyzeBasicBlocksContextSetDirectCodeReferences(
16921 abb: *mut BNBasicBlockAnalysisContext,
16922 sources: *mut BNArchitectureAndAddress,
16923 targets: *mut u64,
16924 count: usize,
16925 );
16926}
16927unsafe extern "C" {
16928 pub fn BNAnalyzeBasicBlocksContextSetDirectNoReturnCalls(
16929 abb: *mut BNBasicBlockAnalysisContext,
16930 sources: *mut BNArchitectureAndAddress,
16931 count: usize,
16932 );
16933}
16934unsafe extern "C" {
16935 pub fn BNAnalyzeBasicBlocksContextSetContextualFunctionReturns(
16936 abb: *mut BNBasicBlockAnalysisContext,
16937 sources: *mut BNArchitectureAndAddress,
16938 values: *mut bool,
16939 count: usize,
16940 );
16941}
16942unsafe extern "C" {
16943 pub fn BNAnalyzeBasicBlocksContextSetHaltedDisassemblyAddresses(
16944 abb: *mut BNBasicBlockAnalysisContext,
16945 sources: *mut BNArchitectureAndAddress,
16946 count: usize,
16947 );
16948}
16949unsafe extern "C" {
16950 pub fn BNAnalyzeBasicBlocksContextSetInlinedUnresolvedIndirectBranches(
16951 abb: *mut BNBasicBlockAnalysisContext,
16952 locations: *mut BNArchitectureAndAddress,
16953 count: usize,
16954 );
16955}
16956unsafe extern "C" {
16957 pub fn BNGetParametersForAnalysis(view: *mut BNBinaryView) -> BNAnalysisParameters;
16958}
16959unsafe extern "C" {
16960 pub fn BNSetParametersForAnalysis(view: *mut BNBinaryView, params: BNAnalysisParameters);
16961}
16962unsafe extern "C" {
16963 pub fn BNGetMaxFunctionSizeForAnalysis(view: *mut BNBinaryView) -> u64;
16964}
16965unsafe extern "C" {
16966 pub fn BNSetMaxFunctionSizeForAnalysis(view: *mut BNBinaryView, size: u64);
16967}
16968unsafe extern "C" {
16969 pub fn BNGetNewAutoFunctionAnalysisSuppressed(view: *mut BNBinaryView) -> bool;
16970}
16971unsafe extern "C" {
16972 pub fn BNSetNewAutoFunctionAnalysisSuppressed(view: *mut BNBinaryView, suppress: bool);
16973}
16974unsafe extern "C" {
16975 pub fn BNAddAnalysisCompletionEvent(
16976 view: *mut BNBinaryView,
16977 ctxt: *mut ::std::os::raw::c_void,
16978 callback: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
16979 ) -> *mut BNAnalysisCompletionEvent;
16980}
16981unsafe extern "C" {
16982 pub fn BNNewAnalysisCompletionEventReference(
16983 event: *mut BNAnalysisCompletionEvent,
16984 ) -> *mut BNAnalysisCompletionEvent;
16985}
16986unsafe extern "C" {
16987 pub fn BNFreeAnalysisCompletionEvent(event: *mut BNAnalysisCompletionEvent);
16988}
16989unsafe extern "C" {
16990 pub fn BNCancelAnalysisCompletionEvent(event: *mut BNAnalysisCompletionEvent);
16991}
16992unsafe extern "C" {
16993 pub fn BNShouldSkipTargetAnalysis(
16994 view: *mut BNBinaryView,
16995 source: *mut BNArchitectureAndAddress,
16996 sourceFunc: *mut BNFunction,
16997 sourceEnd: u64,
16998 target: *mut BNArchitectureAndAddress,
16999 ) -> bool;
17000}
17001unsafe extern "C" {
17002 pub fn BNGetAnalysisInfo(view: *mut BNBinaryView) -> *mut BNAnalysisInfo;
17003}
17004unsafe extern "C" {
17005 pub fn BNFreeAnalysisInfo(info: *mut BNAnalysisInfo);
17006}
17007unsafe extern "C" {
17008 pub fn BNGetAnalysisProgress(view: *mut BNBinaryView) -> BNAnalysisProgress;
17009}
17010unsafe extern "C" {
17011 pub fn BNGetAnalysisState(view: *mut BNBinaryView) -> BNAnalysisState;
17012}
17013unsafe extern "C" {
17014 pub fn BNGetBackgroundAnalysisTask(view: *mut BNBinaryView) -> *mut BNBackgroundTask;
17015}
17016unsafe extern "C" {
17017 pub fn BNGetNextFunctionStartAfterAddress(view: *mut BNBinaryView, addr: u64) -> u64;
17018}
17019unsafe extern "C" {
17020 pub fn BNGetNextBasicBlockStartAfterAddress(view: *mut BNBinaryView, addr: u64) -> u64;
17021}
17022unsafe extern "C" {
17023 pub fn BNGetNextDataAfterAddress(view: *mut BNBinaryView, addr: u64) -> u64;
17024}
17025unsafe extern "C" {
17026 pub fn BNGetNextDataVariableStartAfterAddress(view: *mut BNBinaryView, addr: u64) -> u64;
17027}
17028unsafe extern "C" {
17029 pub fn BNGetPreviousFunctionStartBeforeAddress(view: *mut BNBinaryView, addr: u64) -> u64;
17030}
17031unsafe extern "C" {
17032 pub fn BNGetPreviousBasicBlockStartBeforeAddress(view: *mut BNBinaryView, addr: u64) -> u64;
17033}
17034unsafe extern "C" {
17035 pub fn BNGetPreviousBasicBlockEndBeforeAddress(view: *mut BNBinaryView, addr: u64) -> u64;
17036}
17037unsafe extern "C" {
17038 pub fn BNGetPreviousDataBeforeAddress(view: *mut BNBinaryView, addr: u64) -> u64;
17039}
17040unsafe extern "C" {
17041 pub fn BNGetPreviousDataVariableStartBeforeAddress(view: *mut BNBinaryView, addr: u64) -> u64;
17042}
17043unsafe extern "C" {
17044 pub fn BNCreateLinearViewDisassembly(
17045 view: *mut BNBinaryView,
17046 settings: *mut BNDisassemblySettings,
17047 ) -> *mut BNLinearViewObject;
17048}
17049unsafe extern "C" {
17050 pub fn BNCreateLinearViewLiftedIL(
17051 view: *mut BNBinaryView,
17052 settings: *mut BNDisassemblySettings,
17053 ) -> *mut BNLinearViewObject;
17054}
17055unsafe extern "C" {
17056 pub fn BNCreateLinearViewLowLevelIL(
17057 view: *mut BNBinaryView,
17058 settings: *mut BNDisassemblySettings,
17059 ) -> *mut BNLinearViewObject;
17060}
17061unsafe extern "C" {
17062 pub fn BNCreateLinearViewLowLevelILSSAForm(
17063 view: *mut BNBinaryView,
17064 settings: *mut BNDisassemblySettings,
17065 ) -> *mut BNLinearViewObject;
17066}
17067unsafe extern "C" {
17068 pub fn BNCreateLinearViewMediumLevelIL(
17069 view: *mut BNBinaryView,
17070 settings: *mut BNDisassemblySettings,
17071 ) -> *mut BNLinearViewObject;
17072}
17073unsafe extern "C" {
17074 pub fn BNCreateLinearViewMediumLevelILSSAForm(
17075 view: *mut BNBinaryView,
17076 settings: *mut BNDisassemblySettings,
17077 ) -> *mut BNLinearViewObject;
17078}
17079unsafe extern "C" {
17080 pub fn BNCreateLinearViewMappedMediumLevelIL(
17081 view: *mut BNBinaryView,
17082 settings: *mut BNDisassemblySettings,
17083 ) -> *mut BNLinearViewObject;
17084}
17085unsafe extern "C" {
17086 pub fn BNCreateLinearViewMappedMediumLevelILSSAForm(
17087 view: *mut BNBinaryView,
17088 settings: *mut BNDisassemblySettings,
17089 ) -> *mut BNLinearViewObject;
17090}
17091unsafe extern "C" {
17092 pub fn BNCreateLinearViewHighLevelIL(
17093 view: *mut BNBinaryView,
17094 settings: *mut BNDisassemblySettings,
17095 ) -> *mut BNLinearViewObject;
17096}
17097unsafe extern "C" {
17098 pub fn BNCreateLinearViewHighLevelILSSAForm(
17099 view: *mut BNBinaryView,
17100 settings: *mut BNDisassemblySettings,
17101 ) -> *mut BNLinearViewObject;
17102}
17103unsafe extern "C" {
17104 pub fn BNCreateLinearViewLanguageRepresentation(
17105 view: *mut BNBinaryView,
17106 settings: *mut BNDisassemblySettings,
17107 language: *const ::std::os::raw::c_char,
17108 ) -> *mut BNLinearViewObject;
17109}
17110unsafe extern "C" {
17111 pub fn BNCreateLinearViewDataOnly(
17112 view: *mut BNBinaryView,
17113 settings: *mut BNDisassemblySettings,
17114 ) -> *mut BNLinearViewObject;
17115}
17116unsafe extern "C" {
17117 pub fn BNCreateLinearViewSingleFunctionDisassembly(
17118 func: *mut BNFunction,
17119 settings: *mut BNDisassemblySettings,
17120 ) -> *mut BNLinearViewObject;
17121}
17122unsafe extern "C" {
17123 pub fn BNCreateLinearViewSingleFunctionLiftedIL(
17124 func: *mut BNFunction,
17125 settings: *mut BNDisassemblySettings,
17126 ) -> *mut BNLinearViewObject;
17127}
17128unsafe extern "C" {
17129 pub fn BNCreateLinearViewSingleFunctionLowLevelIL(
17130 func: *mut BNFunction,
17131 settings: *mut BNDisassemblySettings,
17132 ) -> *mut BNLinearViewObject;
17133}
17134unsafe extern "C" {
17135 pub fn BNCreateLinearViewSingleFunctionLowLevelILSSAForm(
17136 func: *mut BNFunction,
17137 settings: *mut BNDisassemblySettings,
17138 ) -> *mut BNLinearViewObject;
17139}
17140unsafe extern "C" {
17141 pub fn BNCreateLinearViewSingleFunctionMediumLevelIL(
17142 func: *mut BNFunction,
17143 settings: *mut BNDisassemblySettings,
17144 ) -> *mut BNLinearViewObject;
17145}
17146unsafe extern "C" {
17147 pub fn BNCreateLinearViewSingleFunctionMediumLevelILSSAForm(
17148 func: *mut BNFunction,
17149 settings: *mut BNDisassemblySettings,
17150 ) -> *mut BNLinearViewObject;
17151}
17152unsafe extern "C" {
17153 pub fn BNCreateLinearViewSingleFunctionMappedMediumLevelIL(
17154 func: *mut BNFunction,
17155 settings: *mut BNDisassemblySettings,
17156 ) -> *mut BNLinearViewObject;
17157}
17158unsafe extern "C" {
17159 pub fn BNCreateLinearViewSingleFunctionMappedMediumLevelILSSAForm(
17160 func: *mut BNFunction,
17161 settings: *mut BNDisassemblySettings,
17162 ) -> *mut BNLinearViewObject;
17163}
17164unsafe extern "C" {
17165 pub fn BNCreateLinearViewSingleFunctionHighLevelIL(
17166 func: *mut BNFunction,
17167 settings: *mut BNDisassemblySettings,
17168 ) -> *mut BNLinearViewObject;
17169}
17170unsafe extern "C" {
17171 pub fn BNCreateLinearViewSingleFunctionHighLevelILSSAForm(
17172 func: *mut BNFunction,
17173 settings: *mut BNDisassemblySettings,
17174 ) -> *mut BNLinearViewObject;
17175}
17176unsafe extern "C" {
17177 pub fn BNCreateLinearViewSingleFunctionLanguageRepresentation(
17178 func: *mut BNFunction,
17179 settings: *mut BNDisassemblySettings,
17180 language: *const ::std::os::raw::c_char,
17181 ) -> *mut BNLinearViewObject;
17182}
17183unsafe extern "C" {
17184 pub fn BNNewLinearViewObjectReference(obj: *mut BNLinearViewObject) -> *mut BNLinearViewObject;
17185}
17186unsafe extern "C" {
17187 pub fn BNFreeLinearViewObject(obj: *mut BNLinearViewObject);
17188}
17189unsafe extern "C" {
17190 pub fn BNGetFirstLinearViewObjectChild(obj: *mut BNLinearViewObject)
17191 -> *mut BNLinearViewObject;
17192}
17193unsafe extern "C" {
17194 pub fn BNGetLastLinearViewObjectChild(obj: *mut BNLinearViewObject) -> *mut BNLinearViewObject;
17195}
17196unsafe extern "C" {
17197 pub fn BNGetPreviousLinearViewObjectChild(
17198 parent: *mut BNLinearViewObject,
17199 child: *mut BNLinearViewObject,
17200 ) -> *mut BNLinearViewObject;
17201}
17202unsafe extern "C" {
17203 pub fn BNGetNextLinearViewObjectChild(
17204 parent: *mut BNLinearViewObject,
17205 child: *mut BNLinearViewObject,
17206 ) -> *mut BNLinearViewObject;
17207}
17208unsafe extern "C" {
17209 pub fn BNGetLinearViewObjectChildForAddress(
17210 parent: *mut BNLinearViewObject,
17211 addr: u64,
17212 ) -> *mut BNLinearViewObject;
17213}
17214unsafe extern "C" {
17215 pub fn BNGetLinearViewObjectChildForIdentifier(
17216 parent: *mut BNLinearViewObject,
17217 id: *mut BNLinearViewObjectIdentifier,
17218 ) -> *mut BNLinearViewObject;
17219}
17220unsafe extern "C" {
17221 pub fn BNGetLinearViewObjectLines(
17222 obj: *mut BNLinearViewObject,
17223 prev: *mut BNLinearViewObject,
17224 next: *mut BNLinearViewObject,
17225 count: *mut usize,
17226 ) -> *mut BNLinearDisassemblyLine;
17227}
17228unsafe extern "C" {
17229 pub fn BNFreeLinearDisassemblyLines(lines: *mut BNLinearDisassemblyLine, count: usize);
17230}
17231unsafe extern "C" {
17232 pub fn BNGetLinearViewObjectStart(obj: *mut BNLinearViewObject) -> u64;
17233}
17234unsafe extern "C" {
17235 pub fn BNGetLinearViewObjectEnd(obj: *mut BNLinearViewObject) -> u64;
17236}
17237unsafe extern "C" {
17238 pub fn BNGetLinearViewObjectIdentifier(
17239 obj: *mut BNLinearViewObject,
17240 ) -> BNLinearViewObjectIdentifier;
17241}
17242unsafe extern "C" {
17243 pub fn BNFreeLinearViewObjectIdentifier(id: *mut BNLinearViewObjectIdentifier);
17244}
17245unsafe extern "C" {
17246 pub fn BNCompareLinearViewObjectChildren(
17247 obj: *mut BNLinearViewObject,
17248 a: *mut BNLinearViewObject,
17249 b: *mut BNLinearViewObject,
17250 ) -> ::std::os::raw::c_int;
17251}
17252unsafe extern "C" {
17253 pub fn BNGetLinearViewObjectOrderingIndexTotal(obj: *mut BNLinearViewObject) -> u64;
17254}
17255unsafe extern "C" {
17256 pub fn BNGetLinearViewObjectOrderingIndexForChild(
17257 parent: *mut BNLinearViewObject,
17258 child: *mut BNLinearViewObject,
17259 ) -> u64;
17260}
17261unsafe extern "C" {
17262 pub fn BNGetLinearViewObjectChildForOrderingIndex(
17263 parent: *mut BNLinearViewObject,
17264 idx: u64,
17265 ) -> *mut BNLinearViewObject;
17266}
17267unsafe extern "C" {
17268 pub fn BNCreateLinearViewCursor(root: *mut BNLinearViewObject) -> *mut BNLinearViewCursor;
17269}
17270unsafe extern "C" {
17271 pub fn BNDuplicateLinearViewCursor(cursor: *mut BNLinearViewCursor) -> *mut BNLinearViewCursor;
17272}
17273unsafe extern "C" {
17274 pub fn BNNewLinearViewCursorReference(
17275 cursor: *mut BNLinearViewCursor,
17276 ) -> *mut BNLinearViewCursor;
17277}
17278unsafe extern "C" {
17279 pub fn BNFreeLinearViewCursor(cursor: *mut BNLinearViewCursor);
17280}
17281unsafe extern "C" {
17282 pub fn BNIsLinearViewCursorBeforeBegin(cursor: *mut BNLinearViewCursor) -> bool;
17283}
17284unsafe extern "C" {
17285 pub fn BNIsLinearViewCursorAfterEnd(cursor: *mut BNLinearViewCursor) -> bool;
17286}
17287unsafe extern "C" {
17288 pub fn BNGetLinearViewCursorCurrentObject(
17289 cursor: *mut BNLinearViewCursor,
17290 ) -> *mut BNLinearViewObject;
17291}
17292unsafe extern "C" {
17293 pub fn BNGetLinearViewCursorPath(
17294 cursor: *mut BNLinearViewCursor,
17295 count: *mut usize,
17296 ) -> *mut BNLinearViewObjectIdentifier;
17297}
17298unsafe extern "C" {
17299 pub fn BNFreeLinearViewCursorPath(objs: *mut BNLinearViewObjectIdentifier, count: usize);
17300}
17301unsafe extern "C" {
17302 pub fn BNGetLinearViewCursorPathObjects(
17303 cursor: *mut BNLinearViewCursor,
17304 count: *mut usize,
17305 ) -> *mut *mut BNLinearViewObject;
17306}
17307unsafe extern "C" {
17308 pub fn BNFreeLinearViewCursorPathObjects(objs: *mut *mut BNLinearViewObject, count: usize);
17309}
17310unsafe extern "C" {
17311 pub fn BNGetLinearViewCursorOrderingIndex(cursor: *mut BNLinearViewCursor) -> BNAddressRange;
17312}
17313unsafe extern "C" {
17314 pub fn BNGetLinearViewCursorOrderingIndexTotal(cursor: *mut BNLinearViewCursor) -> u64;
17315}
17316unsafe extern "C" {
17317 pub fn BNSeekLinearViewCursorToBegin(cursor: *mut BNLinearViewCursor);
17318}
17319unsafe extern "C" {
17320 pub fn BNSeekLinearViewCursorToEnd(cursor: *mut BNLinearViewCursor);
17321}
17322unsafe extern "C" {
17323 pub fn BNSeekLinearViewCursorToAddress(cursor: *mut BNLinearViewCursor, addr: u64);
17324}
17325unsafe extern "C" {
17326 pub fn BNSeekLinearViewCursorToPath(
17327 cursor: *mut BNLinearViewCursor,
17328 ids: *mut BNLinearViewObjectIdentifier,
17329 count: usize,
17330 ) -> bool;
17331}
17332unsafe extern "C" {
17333 pub fn BNSeekLinearViewCursorToPathAndAddress(
17334 cursor: *mut BNLinearViewCursor,
17335 ids: *mut BNLinearViewObjectIdentifier,
17336 count: usize,
17337 addr: u64,
17338 ) -> bool;
17339}
17340unsafe extern "C" {
17341 pub fn BNSeekLinearViewCursorToCursorPath(
17342 cursor: *mut BNLinearViewCursor,
17343 path: *mut BNLinearViewCursor,
17344 ) -> bool;
17345}
17346unsafe extern "C" {
17347 pub fn BNSeekLinearViewCursorToCursorPathAndAddress(
17348 cursor: *mut BNLinearViewCursor,
17349 path: *mut BNLinearViewCursor,
17350 addr: u64,
17351 ) -> bool;
17352}
17353unsafe extern "C" {
17354 pub fn BNSeekLinearViewCursorToOrderingIndex(cursor: *mut BNLinearViewCursor, idx: u64);
17355}
17356unsafe extern "C" {
17357 pub fn BNLinearViewCursorNext(cursor: *mut BNLinearViewCursor) -> bool;
17358}
17359unsafe extern "C" {
17360 pub fn BNLinearViewCursorPrevious(cursor: *mut BNLinearViewCursor) -> bool;
17361}
17362unsafe extern "C" {
17363 pub fn BNGetLinearViewCursorLines(
17364 cursor: *mut BNLinearViewCursor,
17365 count: *mut usize,
17366 ) -> *mut BNLinearDisassemblyLine;
17367}
17368unsafe extern "C" {
17369 pub fn BNCompareLinearViewCursors(
17370 a: *mut BNLinearViewCursor,
17371 b: *mut BNLinearViewCursor,
17372 ) -> ::std::os::raw::c_int;
17373}
17374unsafe extern "C" {
17375 pub fn BNGetLinearViewCursorRenderLayers(
17376 cursor: *mut BNLinearViewCursor,
17377 count: *mut usize,
17378 ) -> *mut *mut BNRenderLayer;
17379}
17380unsafe extern "C" {
17381 pub fn BNAddLinearViewCursorRenderLayer(
17382 cursor: *mut BNLinearViewCursor,
17383 layer: *mut BNRenderLayer,
17384 );
17385}
17386unsafe extern "C" {
17387 pub fn BNRemoveLinearViewCursorRenderLayer(
17388 cursor: *mut BNLinearViewCursor,
17389 layer: *mut BNRenderLayer,
17390 );
17391}
17392unsafe extern "C" {
17393 pub fn BNDefineDataVariable(
17394 view: *mut BNBinaryView,
17395 addr: u64,
17396 type_: *mut BNTypeWithConfidence,
17397 );
17398}
17399unsafe extern "C" {
17400 pub fn BNDefineUserDataVariable(
17401 view: *mut BNBinaryView,
17402 addr: u64,
17403 type_: *mut BNTypeWithConfidence,
17404 );
17405}
17406unsafe extern "C" {
17407 pub fn BNUndefineDataVariable(view: *mut BNBinaryView, addr: u64, blacklist: bool);
17408}
17409unsafe extern "C" {
17410 pub fn BNUndefineUserDataVariable(view: *mut BNBinaryView, addr: u64);
17411}
17412unsafe extern "C" {
17413 pub fn BNGetDataVariables(view: *mut BNBinaryView, count: *mut usize) -> *mut BNDataVariable;
17414}
17415unsafe extern "C" {
17416 pub fn BNFreeDataVariable(var: *mut BNDataVariable);
17417}
17418unsafe extern "C" {
17419 pub fn BNFreeDataVariables(vars: *mut BNDataVariable, count: usize);
17420}
17421unsafe extern "C" {
17422 pub fn BNFreeDataVariableAndName(var: *mut BNDataVariableAndName);
17423}
17424unsafe extern "C" {
17425 pub fn BNFreeDataVariablesAndName(vars: *mut BNDataVariableAndName, count: usize);
17426}
17427unsafe extern "C" {
17428 pub fn BNFreeDataVariableAndNameAndDebugParserList(
17429 vars: *mut BNDataVariableAndNameAndDebugParser,
17430 count: usize,
17431 );
17432}
17433unsafe extern "C" {
17434 pub fn BNGetDataVariableAtAddress(
17435 view: *mut BNBinaryView,
17436 addr: u64,
17437 var: *mut BNDataVariable,
17438 ) -> bool;
17439}
17440unsafe extern "C" {
17441 pub fn BNParseTypeString(
17442 view: *mut BNBinaryView,
17443 text: *const ::std::os::raw::c_char,
17444 result: *mut BNQualifiedNameAndType,
17445 errors: *mut *mut ::std::os::raw::c_char,
17446 typesAllowRedefinition: *mut BNQualifiedNameList,
17447 importDepencencies: bool,
17448 ) -> bool;
17449}
17450unsafe extern "C" {
17451 pub fn BNParseTypesString(
17452 view: *mut BNBinaryView,
17453 text: *const ::std::os::raw::c_char,
17454 options: *const *const ::std::os::raw::c_char,
17455 optionCount: usize,
17456 includeDirs: *const *const ::std::os::raw::c_char,
17457 includeDirCount: usize,
17458 result: *mut BNTypeParserResult,
17459 errors: *mut *mut ::std::os::raw::c_char,
17460 typesAllowRedefinition: *mut BNQualifiedNameList,
17461 importDepencencies: bool,
17462 ) -> bool;
17463}
17464unsafe extern "C" {
17465 pub fn BNFreeQualifiedNameAndType(obj: *mut BNQualifiedNameAndType);
17466}
17467unsafe extern "C" {
17468 pub fn BNFreeQualifiedNameAndTypeArray(obj: *mut BNQualifiedNameAndType, count: usize);
17469}
17470unsafe extern "C" {
17471 pub fn BNFreeQualifiedNameTypeAndId(obj: *mut BNQualifiedNameTypeAndId);
17472}
17473unsafe extern "C" {
17474 pub fn BNEscapeTypeName(
17475 name: *const ::std::os::raw::c_char,
17476 escaping: BNTokenEscapingType,
17477 ) -> *mut ::std::os::raw::c_char;
17478}
17479unsafe extern "C" {
17480 pub fn BNUnescapeTypeName(
17481 name: *const ::std::os::raw::c_char,
17482 escaping: BNTokenEscapingType,
17483 ) -> *mut ::std::os::raw::c_char;
17484}
17485unsafe extern "C" {
17486 pub fn BNGetAnalysisTypeList(
17487 view: *mut BNBinaryView,
17488 count: *mut usize,
17489 ) -> *mut BNQualifiedNameAndType;
17490}
17491unsafe extern "C" {
17492 pub fn BNGetAnalysisDependencySortedTypeList(
17493 view: *mut BNBinaryView,
17494 count: *mut usize,
17495 ) -> *mut BNQualifiedNameAndType;
17496}
17497unsafe extern "C" {
17498 pub fn BNFreeTypeAndNameList(types: *mut BNQualifiedNameAndType, count: usize);
17499}
17500unsafe extern "C" {
17501 pub fn BNFreeTypeIdList(types: *mut BNQualifiedNameTypeAndId, count: usize);
17502}
17503unsafe extern "C" {
17504 pub fn BNGetAnalysisTypeNames(
17505 view: *mut BNBinaryView,
17506 count: *mut usize,
17507 matching: *const ::std::os::raw::c_char,
17508 ) -> *mut BNQualifiedName;
17509}
17510unsafe extern "C" {
17511 pub fn BNFreeTypeNameList(names: *mut BNQualifiedName, count: usize);
17512}
17513unsafe extern "C" {
17514 pub fn BNGetAnalysisTypeContainer(view: *mut BNBinaryView) -> *mut BNTypeContainer;
17515}
17516unsafe extern "C" {
17517 pub fn BNGetAnalysisAutoTypeContainer(view: *mut BNBinaryView) -> *mut BNTypeContainer;
17518}
17519unsafe extern "C" {
17520 pub fn BNGetAnalysisUserTypeContainer(view: *mut BNBinaryView) -> *mut BNTypeContainer;
17521}
17522unsafe extern "C" {
17523 pub fn BNGetAnalysisTypeByName(
17524 view: *mut BNBinaryView,
17525 name: *mut BNQualifiedName,
17526 ) -> *mut BNType;
17527}
17528unsafe extern "C" {
17529 pub fn BNGetAnalysisTypeByRef(
17530 view: *mut BNBinaryView,
17531 ref_: *mut BNNamedTypeReference,
17532 ) -> *mut BNType;
17533}
17534unsafe extern "C" {
17535 pub fn BNGetAnalysisTypeById(
17536 view: *mut BNBinaryView,
17537 id: *const ::std::os::raw::c_char,
17538 ) -> *mut BNType;
17539}
17540unsafe extern "C" {
17541 pub fn BNGetAnalysisTypeId(
17542 view: *mut BNBinaryView,
17543 name: *mut BNQualifiedName,
17544 ) -> *mut ::std::os::raw::c_char;
17545}
17546unsafe extern "C" {
17547 pub fn BNGetAnalysisTypeNameById(
17548 view: *mut BNBinaryView,
17549 id: *const ::std::os::raw::c_char,
17550 ) -> BNQualifiedName;
17551}
17552unsafe extern "C" {
17553 pub fn BNIsAnalysisTypeAutoDefined(view: *mut BNBinaryView, name: *mut BNQualifiedName)
17554 -> bool;
17555}
17556unsafe extern "C" {
17557 pub fn BNDefineAnalysisType(
17558 view: *mut BNBinaryView,
17559 id: *const ::std::os::raw::c_char,
17560 defaultName: *mut BNQualifiedName,
17561 type_: *mut BNType,
17562 ) -> BNQualifiedName;
17563}
17564unsafe extern "C" {
17565 pub fn BNDefineUserAnalysisType(
17566 view: *mut BNBinaryView,
17567 name: *mut BNQualifiedName,
17568 type_: *mut BNType,
17569 );
17570}
17571unsafe extern "C" {
17572 pub fn BNDefineAnalysisTypes(
17573 view: *mut BNBinaryView,
17574 types: *mut BNQualifiedNameTypeAndId,
17575 count: usize,
17576 progress: BNProgressFunction,
17577 progressContext: *mut ::std::os::raw::c_void,
17578 resultIds: *mut *mut *mut ::std::os::raw::c_char,
17579 resultNames: *mut *mut BNQualifiedName,
17580 ) -> usize;
17581}
17582unsafe extern "C" {
17583 pub fn BNDefineUserAnalysisTypes(
17584 view: *mut BNBinaryView,
17585 types: *mut BNQualifiedNameAndType,
17586 count: usize,
17587 progress: BNProgressFunction,
17588 progressContext: *mut ::std::os::raw::c_void,
17589 );
17590}
17591unsafe extern "C" {
17592 pub fn BNUndefineAnalysisType(view: *mut BNBinaryView, id: *const ::std::os::raw::c_char);
17593}
17594unsafe extern "C" {
17595 pub fn BNUndefineUserAnalysisType(view: *mut BNBinaryView, name: *mut BNQualifiedName);
17596}
17597unsafe extern "C" {
17598 pub fn BNRenameAnalysisType(
17599 view: *mut BNBinaryView,
17600 oldName: *mut BNQualifiedName,
17601 newName: *mut BNQualifiedName,
17602 );
17603}
17604unsafe extern "C" {
17605 pub fn BNGetAnalysisSystemCallType(
17606 view: *mut BNBinaryView,
17607 platform: *mut BNPlatform,
17608 id: u32,
17609 ) -> *mut BNType;
17610}
17611unsafe extern "C" {
17612 pub fn BNGetAnalysisSystemCallName(
17613 view: *mut BNBinaryView,
17614 platform: *mut BNPlatform,
17615 id: u32,
17616 ) -> *mut ::std::os::raw::c_char;
17617}
17618unsafe extern "C" {
17619 pub fn BNGenerateAutoTypeId(
17620 source: *const ::std::os::raw::c_char,
17621 name: *mut BNQualifiedName,
17622 ) -> *mut ::std::os::raw::c_char;
17623}
17624unsafe extern "C" {
17625 pub fn BNGenerateAutoPlatformTypeId(
17626 platform: *mut BNPlatform,
17627 name: *mut BNQualifiedName,
17628 ) -> *mut ::std::os::raw::c_char;
17629}
17630unsafe extern "C" {
17631 pub fn BNGenerateAutoDemangledTypeId(name: *mut BNQualifiedName)
17632 -> *mut ::std::os::raw::c_char;
17633}
17634unsafe extern "C" {
17635 pub fn BNGetAutoPlatformTypeIdSource(platform: *mut BNPlatform) -> *mut ::std::os::raw::c_char;
17636}
17637unsafe extern "C" {
17638 pub fn BNGetAutoDemangledTypeIdSource() -> *mut ::std::os::raw::c_char;
17639}
17640unsafe extern "C" {
17641 pub fn BNGenerateAutoDebugTypeId(name: *mut BNQualifiedName) -> *mut ::std::os::raw::c_char;
17642}
17643unsafe extern "C" {
17644 pub fn BNGetAutoDebugTypeIdSource() -> *mut ::std::os::raw::c_char;
17645}
17646unsafe extern "C" {
17647 pub fn BNRegisterPlatformTypes(view: *mut BNBinaryView, platform: *mut BNPlatform);
17648}
17649unsafe extern "C" {
17650 pub fn BNLookupImportedTypePlatform(
17651 view: *mut BNBinaryView,
17652 typeName: *const BNQualifiedName,
17653 platform: *mut *mut BNPlatform,
17654 resultName: *mut BNQualifiedName,
17655 ) -> bool;
17656}
17657unsafe extern "C" {
17658 pub fn BNReanalyzeAllFunctions(view: *mut BNBinaryView);
17659}
17660unsafe extern "C" {
17661 pub fn BNAnalyzeFunction(func: *mut BNFunction);
17662}
17663unsafe extern "C" {
17664 pub fn BNReanalyzeFunction(func: *mut BNFunction, type_: BNFunctionUpdateType);
17665}
17666unsafe extern "C" {
17667 pub fn BNMarkUpdatesRequired(func: *mut BNFunction, type_: BNFunctionUpdateType);
17668}
17669unsafe extern "C" {
17670 pub fn BNMarkCallerUpdatesRequired(func: *mut BNFunction, type_: BNFunctionUpdateType);
17671}
17672unsafe extern "C" {
17673 pub fn BNGetInstructionHighlight(
17674 func: *mut BNFunction,
17675 arch: *mut BNArchitecture,
17676 addr: u64,
17677 ) -> BNHighlightColor;
17678}
17679unsafe extern "C" {
17680 pub fn BNSetAutoInstructionHighlight(
17681 func: *mut BNFunction,
17682 arch: *mut BNArchitecture,
17683 addr: u64,
17684 color: BNHighlightColor,
17685 );
17686}
17687unsafe extern "C" {
17688 pub fn BNSetUserInstructionHighlight(
17689 func: *mut BNFunction,
17690 arch: *mut BNArchitecture,
17691 addr: u64,
17692 color: BNHighlightColor,
17693 );
17694}
17695unsafe extern "C" {
17696 pub fn BNGetBasicBlockHighlight(block: *mut BNBasicBlock) -> BNHighlightColor;
17697}
17698unsafe extern "C" {
17699 pub fn BNSetAutoBasicBlockHighlight(block: *mut BNBasicBlock, color: BNHighlightColor);
17700}
17701unsafe extern "C" {
17702 pub fn BNSetUserBasicBlockHighlight(block: *mut BNBasicBlock, color: BNHighlightColor);
17703}
17704unsafe extern "C" {
17705 pub fn BNFreeTypeContainer(container: *mut BNTypeContainer);
17706}
17707unsafe extern "C" {
17708 pub fn BNDuplicateTypeContainer(container: *mut BNTypeContainer) -> *mut BNTypeContainer;
17709}
17710unsafe extern "C" {
17711 pub fn BNTypeContainerGetId(container: *mut BNTypeContainer) -> *mut ::std::os::raw::c_char;
17712}
17713unsafe extern "C" {
17714 pub fn BNTypeContainerGetName(container: *mut BNTypeContainer) -> *mut ::std::os::raw::c_char;
17715}
17716unsafe extern "C" {
17717 pub fn BNTypeContainerGetType(container: *mut BNTypeContainer) -> BNTypeContainerType;
17718}
17719unsafe extern "C" {
17720 pub fn BNTypeContainerIsMutable(container: *mut BNTypeContainer) -> bool;
17721}
17722unsafe extern "C" {
17723 pub fn BNTypeContainerGetPlatform(container: *mut BNTypeContainer) -> *mut BNPlatform;
17724}
17725unsafe extern "C" {
17726 pub fn BNTypeContainerAddTypes(
17727 container: *mut BNTypeContainer,
17728 typeNames: *const BNQualifiedName,
17729 types: *mut *mut BNType,
17730 typeCount: usize,
17731 progress: BNProgressFunction,
17732 progressContext: *mut ::std::os::raw::c_void,
17733 resultNames: *mut *mut BNQualifiedName,
17734 resultIds: *mut *mut *mut ::std::os::raw::c_char,
17735 resultCount: *mut usize,
17736 ) -> bool;
17737}
17738unsafe extern "C" {
17739 pub fn BNTypeContainerRenameType(
17740 container: *mut BNTypeContainer,
17741 typeId: *const ::std::os::raw::c_char,
17742 newName: *const BNQualifiedName,
17743 ) -> bool;
17744}
17745unsafe extern "C" {
17746 pub fn BNTypeContainerDeleteType(
17747 container: *mut BNTypeContainer,
17748 typeId: *const ::std::os::raw::c_char,
17749 ) -> bool;
17750}
17751unsafe extern "C" {
17752 pub fn BNTypeContainerGetTypeId(
17753 container: *mut BNTypeContainer,
17754 typeName: *const BNQualifiedName,
17755 result: *mut *mut ::std::os::raw::c_char,
17756 ) -> bool;
17757}
17758unsafe extern "C" {
17759 pub fn BNTypeContainerGetTypeName(
17760 container: *mut BNTypeContainer,
17761 typeId: *const ::std::os::raw::c_char,
17762 result: *mut BNQualifiedName,
17763 ) -> bool;
17764}
17765unsafe extern "C" {
17766 pub fn BNTypeContainerGetTypeById(
17767 container: *mut BNTypeContainer,
17768 typeId: *const ::std::os::raw::c_char,
17769 result: *mut *mut BNType,
17770 ) -> bool;
17771}
17772unsafe extern "C" {
17773 pub fn BNTypeContainerGetTypes(
17774 container: *mut BNTypeContainer,
17775 typeIds: *mut *mut *mut ::std::os::raw::c_char,
17776 typeNames: *mut *mut BNQualifiedName,
17777 types: *mut *mut *mut BNType,
17778 count: *mut usize,
17779 ) -> bool;
17780}
17781unsafe extern "C" {
17782 pub fn BNTypeContainerGetTypeByName(
17783 container: *mut BNTypeContainer,
17784 typeName: *const BNQualifiedName,
17785 result: *mut *mut BNType,
17786 ) -> bool;
17787}
17788unsafe extern "C" {
17789 pub fn BNTypeContainerGetTypeIds(
17790 container: *mut BNTypeContainer,
17791 typeIds: *mut *mut *mut ::std::os::raw::c_char,
17792 count: *mut usize,
17793 ) -> bool;
17794}
17795unsafe extern "C" {
17796 pub fn BNTypeContainerGetTypeNames(
17797 container: *mut BNTypeContainer,
17798 typeNames: *mut *mut BNQualifiedName,
17799 count: *mut usize,
17800 ) -> bool;
17801}
17802unsafe extern "C" {
17803 pub fn BNTypeContainerGetTypeNamesAndIds(
17804 container: *mut BNTypeContainer,
17805 typeIds: *mut *mut *mut ::std::os::raw::c_char,
17806 typeNames: *mut *mut BNQualifiedName,
17807 count: *mut usize,
17808 ) -> bool;
17809}
17810unsafe extern "C" {
17811 pub fn BNTypeContainerGetTypeCount(container: *mut BNTypeContainer) -> usize;
17812}
17813unsafe extern "C" {
17814 pub fn BNTypeContainerParseTypeString(
17815 container: *mut BNTypeContainer,
17816 source: *const ::std::os::raw::c_char,
17817 importDepencencies: bool,
17818 result: *mut BNQualifiedNameAndType,
17819 errors: *mut *mut BNTypeParserError,
17820 errorCount: *mut usize,
17821 ) -> bool;
17822}
17823unsafe extern "C" {
17824 pub fn BNTypeContainerParseTypesFromSource(
17825 container: *mut BNTypeContainer,
17826 source: *const ::std::os::raw::c_char,
17827 fileName: *const ::std::os::raw::c_char,
17828 options: *const *const ::std::os::raw::c_char,
17829 optionCount: usize,
17830 includeDirs: *const *const ::std::os::raw::c_char,
17831 includeDirCount: usize,
17832 autoTypeSource: *const ::std::os::raw::c_char,
17833 importDepencencies: bool,
17834 result: *mut BNTypeParserResult,
17835 errors: *mut *mut BNTypeParserError,
17836 errorCount: *mut usize,
17837 ) -> bool;
17838}
17839unsafe extern "C" {
17840 pub fn BNGetEmptyTypeContainer() -> *mut BNTypeContainer;
17841}
17842unsafe extern "C" {
17843 pub fn BNCreateTagType(view: *mut BNBinaryView) -> *mut BNTagType;
17844}
17845unsafe extern "C" {
17846 pub fn BNNewTagTypeReference(tagType: *mut BNTagType) -> *mut BNTagType;
17847}
17848unsafe extern "C" {
17849 pub fn BNFreeTagType(tagType: *mut BNTagType);
17850}
17851unsafe extern "C" {
17852 pub fn BNFreeTagTypeList(tagTypes: *mut *mut BNTagType, count: usize);
17853}
17854unsafe extern "C" {
17855 pub fn BNTagTypeGetView(tagType: *mut BNTagType) -> *mut BNBinaryView;
17856}
17857unsafe extern "C" {
17858 pub fn BNTagTypeGetId(tagType: *mut BNTagType) -> *mut ::std::os::raw::c_char;
17859}
17860unsafe extern "C" {
17861 pub fn BNTagTypeGetName(tagType: *mut BNTagType) -> *mut ::std::os::raw::c_char;
17862}
17863unsafe extern "C" {
17864 pub fn BNTagTypeSetName(tagType: *mut BNTagType, name: *const ::std::os::raw::c_char);
17865}
17866unsafe extern "C" {
17867 pub fn BNTagTypeGetIcon(tagType: *mut BNTagType) -> *mut ::std::os::raw::c_char;
17868}
17869unsafe extern "C" {
17870 pub fn BNTagTypeSetIcon(tagType: *mut BNTagType, icon: *const ::std::os::raw::c_char);
17871}
17872unsafe extern "C" {
17873 pub fn BNTagTypeGetVisible(tagType: *mut BNTagType) -> bool;
17874}
17875unsafe extern "C" {
17876 pub fn BNTagTypeSetVisible(tagType: *mut BNTagType, visible: bool);
17877}
17878unsafe extern "C" {
17879 pub fn BNTagTypeGetType(tagType: *mut BNTagType) -> BNTagTypeType;
17880}
17881unsafe extern "C" {
17882 pub fn BNTagTypeSetType(tagType: *mut BNTagType, type_: BNTagTypeType);
17883}
17884unsafe extern "C" {
17885 pub fn BNCreateTag(type_: *mut BNTagType, data: *const ::std::os::raw::c_char) -> *mut BNTag;
17886}
17887unsafe extern "C" {
17888 pub fn BNNewTagReference(tag: *mut BNTag) -> *mut BNTag;
17889}
17890unsafe extern "C" {
17891 pub fn BNFreeTag(tag: *mut BNTag);
17892}
17893unsafe extern "C" {
17894 pub fn BNFreeTagList(tags: *mut *mut BNTag, count: usize);
17895}
17896unsafe extern "C" {
17897 pub fn BNTagGetId(tag: *mut BNTag) -> *mut ::std::os::raw::c_char;
17898}
17899unsafe extern "C" {
17900 pub fn BNTagGetType(tag: *mut BNTag) -> *mut BNTagType;
17901}
17902unsafe extern "C" {
17903 pub fn BNTagGetData(tag: *mut BNTag) -> *mut ::std::os::raw::c_char;
17904}
17905unsafe extern "C" {
17906 pub fn BNTagSetData(tag: *mut BNTag, data: *const ::std::os::raw::c_char);
17907}
17908unsafe extern "C" {
17909 pub fn BNAddTagType(view: *mut BNBinaryView, tagType: *mut BNTagType);
17910}
17911unsafe extern "C" {
17912 pub fn BNRemoveTagType(view: *mut BNBinaryView, tagType: *mut BNTagType);
17913}
17914unsafe extern "C" {
17915 pub fn BNGetTagType(
17916 view: *mut BNBinaryView,
17917 name: *const ::std::os::raw::c_char,
17918 ) -> *mut BNTagType;
17919}
17920unsafe extern "C" {
17921 pub fn BNGetTagTypeWithType(
17922 view: *mut BNBinaryView,
17923 name: *const ::std::os::raw::c_char,
17924 type_: BNTagTypeType,
17925 ) -> *mut BNTagType;
17926}
17927unsafe extern "C" {
17928 pub fn BNGetTagTypeById(
17929 view: *mut BNBinaryView,
17930 id: *const ::std::os::raw::c_char,
17931 ) -> *mut BNTagType;
17932}
17933unsafe extern "C" {
17934 pub fn BNGetTagTypeByIdWithType(
17935 view: *mut BNBinaryView,
17936 id: *const ::std::os::raw::c_char,
17937 type_: BNTagTypeType,
17938 ) -> *mut BNTagType;
17939}
17940unsafe extern "C" {
17941 pub fn BNGetTagTypes(view: *mut BNBinaryView, count: *mut usize) -> *mut *mut BNTagType;
17942}
17943unsafe extern "C" {
17944 pub fn BNAddTag(view: *mut BNBinaryView, tag: *mut BNTag, user: bool);
17945}
17946unsafe extern "C" {
17947 pub fn BNGetTag(view: *mut BNBinaryView, tagId: *const ::std::os::raw::c_char) -> *mut BNTag;
17948}
17949unsafe extern "C" {
17950 pub fn BNRemoveTag(view: *mut BNBinaryView, tag: *mut BNTag, user: bool);
17951}
17952unsafe extern "C" {
17953 pub fn BNGetAllTagReferences(view: *mut BNBinaryView, count: *mut usize)
17954 -> *mut BNTagReference;
17955}
17956unsafe extern "C" {
17957 pub fn BNGetAllAddressTagReferences(
17958 view: *mut BNBinaryView,
17959 count: *mut usize,
17960 ) -> *mut BNTagReference;
17961}
17962unsafe extern "C" {
17963 pub fn BNGetAllFunctionTagReferences(
17964 view: *mut BNBinaryView,
17965 count: *mut usize,
17966 ) -> *mut BNTagReference;
17967}
17968unsafe extern "C" {
17969 pub fn BNGetAllTagReferencesOfType(
17970 view: *mut BNBinaryView,
17971 tagType: *mut BNTagType,
17972 count: *mut usize,
17973 ) -> *mut BNTagReference;
17974}
17975unsafe extern "C" {
17976 pub fn BNGetTagReferencesOfType(
17977 view: *mut BNBinaryView,
17978 tagType: *mut BNTagType,
17979 count: *mut usize,
17980 ) -> *mut BNTagReference;
17981}
17982unsafe extern "C" {
17983 pub fn BNGetDataTagReferences(
17984 view: *mut BNBinaryView,
17985 count: *mut usize,
17986 ) -> *mut BNTagReference;
17987}
17988unsafe extern "C" {
17989 pub fn BNGetAutoDataTagReferences(
17990 view: *mut BNBinaryView,
17991 count: *mut usize,
17992 ) -> *mut BNTagReference;
17993}
17994unsafe extern "C" {
17995 pub fn BNGetUserDataTagReferences(
17996 view: *mut BNBinaryView,
17997 count: *mut usize,
17998 ) -> *mut BNTagReference;
17999}
18000unsafe extern "C" {
18001 pub fn BNRemoveTagReference(view: *mut BNBinaryView, ref_: BNTagReference);
18002}
18003unsafe extern "C" {
18004 pub fn BNFreeTagReferences(refs: *mut BNTagReference, count: usize);
18005}
18006unsafe extern "C" {
18007 pub fn BNGetDataTags(view: *mut BNBinaryView, addr: u64, count: *mut usize) -> *mut *mut BNTag;
18008}
18009unsafe extern "C" {
18010 pub fn BNGetAutoDataTags(
18011 view: *mut BNBinaryView,
18012 addr: u64,
18013 count: *mut usize,
18014 ) -> *mut *mut BNTag;
18015}
18016unsafe extern "C" {
18017 pub fn BNGetUserDataTags(
18018 view: *mut BNBinaryView,
18019 addr: u64,
18020 count: *mut usize,
18021 ) -> *mut *mut BNTag;
18022}
18023unsafe extern "C" {
18024 pub fn BNGetDataTagsOfType(
18025 view: *mut BNBinaryView,
18026 addr: u64,
18027 tagType: *mut BNTagType,
18028 count: *mut usize,
18029 ) -> *mut *mut BNTag;
18030}
18031unsafe extern "C" {
18032 pub fn BNGetAutoDataTagsOfType(
18033 view: *mut BNBinaryView,
18034 addr: u64,
18035 tagType: *mut BNTagType,
18036 count: *mut usize,
18037 ) -> *mut *mut BNTag;
18038}
18039unsafe extern "C" {
18040 pub fn BNGetUserDataTagsOfType(
18041 view: *mut BNBinaryView,
18042 addr: u64,
18043 tagType: *mut BNTagType,
18044 count: *mut usize,
18045 ) -> *mut *mut BNTag;
18046}
18047unsafe extern "C" {
18048 pub fn BNGetDataTagsInRange(
18049 view: *mut BNBinaryView,
18050 start: u64,
18051 end: u64,
18052 count: *mut usize,
18053 ) -> *mut BNTagReference;
18054}
18055unsafe extern "C" {
18056 pub fn BNGetAutoDataTagsInRange(
18057 view: *mut BNBinaryView,
18058 start: u64,
18059 end: u64,
18060 count: *mut usize,
18061 ) -> *mut BNTagReference;
18062}
18063unsafe extern "C" {
18064 pub fn BNGetUserDataTagsInRange(
18065 view: *mut BNBinaryView,
18066 start: u64,
18067 end: u64,
18068 count: *mut usize,
18069 ) -> *mut BNTagReference;
18070}
18071unsafe extern "C" {
18072 pub fn BNAddAutoDataTag(view: *mut BNBinaryView, addr: u64, tag: *mut BNTag);
18073}
18074unsafe extern "C" {
18075 pub fn BNRemoveAutoDataTag(view: *mut BNBinaryView, addr: u64, tag: *mut BNTag);
18076}
18077unsafe extern "C" {
18078 pub fn BNRemoveAutoDataTagsOfType(view: *mut BNBinaryView, addr: u64, tagType: *mut BNTagType);
18079}
18080unsafe extern "C" {
18081 pub fn BNAddUserDataTag(view: *mut BNBinaryView, addr: u64, tag: *mut BNTag);
18082}
18083unsafe extern "C" {
18084 pub fn BNRemoveUserDataTag(view: *mut BNBinaryView, addr: u64, tag: *mut BNTag);
18085}
18086unsafe extern "C" {
18087 pub fn BNRemoveUserDataTagsOfType(view: *mut BNBinaryView, addr: u64, tagType: *mut BNTagType);
18088}
18089unsafe extern "C" {
18090 pub fn BNGetTagReferencesOfTypeCount(view: *mut BNBinaryView, tagType: *mut BNTagType)
18091 -> usize;
18092}
18093unsafe extern "C" {
18094 pub fn BNGetAllTagReferencesOfTypeCount(
18095 view: *mut BNBinaryView,
18096 tagType: *mut BNTagType,
18097 ) -> usize;
18098}
18099unsafe extern "C" {
18100 pub fn BNGetAllTagReferenceTypeCounts(
18101 view: *mut BNBinaryView,
18102 tagTypes: *mut *mut *mut BNTagType,
18103 counts: *mut *mut usize,
18104 count: *mut usize,
18105 );
18106}
18107unsafe extern "C" {
18108 pub fn BNFreeTagReferenceTypeCounts(
18109 tagTypes: *mut *mut BNTagType,
18110 counts: *mut usize,
18111 count: usize,
18112 );
18113}
18114unsafe extern "C" {
18115 pub fn BNGetFunctionAllTagReferences(
18116 func: *mut BNFunction,
18117 count: *mut usize,
18118 ) -> *mut BNTagReference;
18119}
18120unsafe extern "C" {
18121 pub fn BNGetFunctionTagReferencesOfType(
18122 func: *mut BNFunction,
18123 tagType: *mut BNTagType,
18124 count: *mut usize,
18125 ) -> *mut BNTagReference;
18126}
18127unsafe extern "C" {
18128 pub fn BNGetAddressTagReferences(
18129 func: *mut BNFunction,
18130 count: *mut usize,
18131 ) -> *mut BNTagReference;
18132}
18133unsafe extern "C" {
18134 pub fn BNGetAutoAddressTagReferences(
18135 func: *mut BNFunction,
18136 count: *mut usize,
18137 ) -> *mut BNTagReference;
18138}
18139unsafe extern "C" {
18140 pub fn BNGetUserAddressTagReferences(
18141 func: *mut BNFunction,
18142 count: *mut usize,
18143 ) -> *mut BNTagReference;
18144}
18145unsafe extern "C" {
18146 pub fn BNGetAddressTags(
18147 func: *mut BNFunction,
18148 arch: *mut BNArchitecture,
18149 addr: u64,
18150 count: *mut usize,
18151 ) -> *mut *mut BNTag;
18152}
18153unsafe extern "C" {
18154 pub fn BNGetAutoAddressTags(
18155 func: *mut BNFunction,
18156 arch: *mut BNArchitecture,
18157 addr: u64,
18158 count: *mut usize,
18159 ) -> *mut *mut BNTag;
18160}
18161unsafe extern "C" {
18162 pub fn BNGetUserAddressTags(
18163 func: *mut BNFunction,
18164 arch: *mut BNArchitecture,
18165 addr: u64,
18166 count: *mut usize,
18167 ) -> *mut *mut BNTag;
18168}
18169unsafe extern "C" {
18170 pub fn BNGetAddressTagsOfType(
18171 func: *mut BNFunction,
18172 arch: *mut BNArchitecture,
18173 addr: u64,
18174 tagType: *mut BNTagType,
18175 count: *mut usize,
18176 ) -> *mut *mut BNTag;
18177}
18178unsafe extern "C" {
18179 pub fn BNGetAutoAddressTagsOfType(
18180 func: *mut BNFunction,
18181 arch: *mut BNArchitecture,
18182 addr: u64,
18183 tagType: *mut BNTagType,
18184 count: *mut usize,
18185 ) -> *mut *mut BNTag;
18186}
18187unsafe extern "C" {
18188 pub fn BNGetUserAddressTagsOfType(
18189 func: *mut BNFunction,
18190 arch: *mut BNArchitecture,
18191 addr: u64,
18192 tagType: *mut BNTagType,
18193 count: *mut usize,
18194 ) -> *mut *mut BNTag;
18195}
18196unsafe extern "C" {
18197 pub fn BNGetAddressTagsInRange(
18198 func: *mut BNFunction,
18199 arch: *mut BNArchitecture,
18200 start: u64,
18201 end: u64,
18202 count: *mut usize,
18203 ) -> *mut BNTagReference;
18204}
18205unsafe extern "C" {
18206 pub fn BNGetAutoAddressTagsInRange(
18207 func: *mut BNFunction,
18208 arch: *mut BNArchitecture,
18209 start: u64,
18210 end: u64,
18211 count: *mut usize,
18212 ) -> *mut BNTagReference;
18213}
18214unsafe extern "C" {
18215 pub fn BNGetUserAddressTagsInRange(
18216 func: *mut BNFunction,
18217 arch: *mut BNArchitecture,
18218 start: u64,
18219 end: u64,
18220 count: *mut usize,
18221 ) -> *mut BNTagReference;
18222}
18223unsafe extern "C" {
18224 pub fn BNAddAutoAddressTag(
18225 func: *mut BNFunction,
18226 arch: *mut BNArchitecture,
18227 addr: u64,
18228 tag: *mut BNTag,
18229 );
18230}
18231unsafe extern "C" {
18232 pub fn BNRemoveAutoAddressTag(
18233 func: *mut BNFunction,
18234 arch: *mut BNArchitecture,
18235 addr: u64,
18236 tag: *mut BNTag,
18237 );
18238}
18239unsafe extern "C" {
18240 pub fn BNRemoveAutoAddressTagsOfType(
18241 func: *mut BNFunction,
18242 arch: *mut BNArchitecture,
18243 addr: u64,
18244 tagType: *mut BNTagType,
18245 );
18246}
18247unsafe extern "C" {
18248 pub fn BNAddUserAddressTag(
18249 func: *mut BNFunction,
18250 arch: *mut BNArchitecture,
18251 addr: u64,
18252 tag: *mut BNTag,
18253 );
18254}
18255unsafe extern "C" {
18256 pub fn BNRemoveUserAddressTag(
18257 func: *mut BNFunction,
18258 arch: *mut BNArchitecture,
18259 addr: u64,
18260 tag: *mut BNTag,
18261 );
18262}
18263unsafe extern "C" {
18264 pub fn BNRemoveUserAddressTagsOfType(
18265 func: *mut BNFunction,
18266 arch: *mut BNArchitecture,
18267 addr: u64,
18268 tagType: *mut BNTagType,
18269 );
18270}
18271unsafe extern "C" {
18272 pub fn BNGetFunctionTagReferences(
18273 func: *mut BNFunction,
18274 count: *mut usize,
18275 ) -> *mut BNTagReference;
18276}
18277unsafe extern "C" {
18278 pub fn BNGetAutoFunctionTagReferences(
18279 func: *mut BNFunction,
18280 count: *mut usize,
18281 ) -> *mut BNTagReference;
18282}
18283unsafe extern "C" {
18284 pub fn BNGetUserFunctionTagReferences(
18285 func: *mut BNFunction,
18286 count: *mut usize,
18287 ) -> *mut BNTagReference;
18288}
18289unsafe extern "C" {
18290 pub fn BNGetFunctionTags(func: *mut BNFunction, count: *mut usize) -> *mut *mut BNTag;
18291}
18292unsafe extern "C" {
18293 pub fn BNGetAutoFunctionTags(func: *mut BNFunction, count: *mut usize) -> *mut *mut BNTag;
18294}
18295unsafe extern "C" {
18296 pub fn BNGetUserFunctionTags(func: *mut BNFunction, count: *mut usize) -> *mut *mut BNTag;
18297}
18298unsafe extern "C" {
18299 pub fn BNGetFunctionTagsOfType(
18300 func: *mut BNFunction,
18301 tagType: *mut BNTagType,
18302 count: *mut usize,
18303 ) -> *mut *mut BNTag;
18304}
18305unsafe extern "C" {
18306 pub fn BNGetAutoFunctionTagsOfType(
18307 func: *mut BNFunction,
18308 tagType: *mut BNTagType,
18309 count: *mut usize,
18310 ) -> *mut *mut BNTag;
18311}
18312unsafe extern "C" {
18313 pub fn BNGetUserFunctionTagsOfType(
18314 func: *mut BNFunction,
18315 tagType: *mut BNTagType,
18316 count: *mut usize,
18317 ) -> *mut *mut BNTag;
18318}
18319unsafe extern "C" {
18320 pub fn BNAddAutoFunctionTag(func: *mut BNFunction, tag: *mut BNTag);
18321}
18322unsafe extern "C" {
18323 pub fn BNRemoveAutoFunctionTag(func: *mut BNFunction, tag: *mut BNTag);
18324}
18325unsafe extern "C" {
18326 pub fn BNRemoveAutoFunctionTagsOfType(func: *mut BNFunction, tagType: *mut BNTagType);
18327}
18328unsafe extern "C" {
18329 pub fn BNAddUserFunctionTag(func: *mut BNFunction, tag: *mut BNTag);
18330}
18331unsafe extern "C" {
18332 pub fn BNRemoveUserFunctionTag(func: *mut BNFunction, tag: *mut BNTag);
18333}
18334unsafe extern "C" {
18335 pub fn BNRemoveUserFunctionTagsOfType(func: *mut BNFunction, tagType: *mut BNTagType);
18336}
18337unsafe extern "C" {
18338 pub fn BNGetFunctionAnalysisPerformanceInfo(
18339 func: *mut BNFunction,
18340 count: *mut usize,
18341 ) -> *mut BNPerformanceInfo;
18342}
18343unsafe extern "C" {
18344 pub fn BNFreeAnalysisPerformanceInfo(info: *mut BNPerformanceInfo, count: usize);
18345}
18346unsafe extern "C" {
18347 pub fn BNGetUnresolvedStackAdjustmentGraph(func: *mut BNFunction) -> *mut BNFlowGraph;
18348}
18349unsafe extern "C" {
18350 pub fn BNSetUserVariableValue(
18351 func: *mut BNFunction,
18352 var: *const BNVariable,
18353 defSite: *const BNArchitectureAndAddress,
18354 after: bool,
18355 value: *const BNPossibleValueSet,
18356 );
18357}
18358unsafe extern "C" {
18359 pub fn BNClearUserVariableValue(
18360 func: *mut BNFunction,
18361 var: *const BNVariable,
18362 defSite: *const BNArchitectureAndAddress,
18363 after: bool,
18364 );
18365}
18366unsafe extern "C" {
18367 pub fn BNGetAllUserVariableValues(
18368 func: *mut BNFunction,
18369 count: *mut usize,
18370 ) -> *mut BNUserVariableValue;
18371}
18372unsafe extern "C" {
18373 pub fn BNFreeUserVariableValues(result: *mut BNUserVariableValue);
18374}
18375unsafe extern "C" {
18376 pub fn BNParsePossibleValueSet(
18377 view: *mut BNBinaryView,
18378 valueText: *const ::std::os::raw::c_char,
18379 state: BNRegisterValueType,
18380 result: *mut BNPossibleValueSet,
18381 here: u64,
18382 errors: *mut *mut ::std::os::raw::c_char,
18383 ) -> bool;
18384}
18385unsafe extern "C" {
18386 pub fn BNCreateForcedVariableVersion(
18387 func: *mut BNFunction,
18388 var: *const BNVariable,
18389 defSite: *const BNArchitectureAndAddress,
18390 );
18391}
18392unsafe extern "C" {
18393 pub fn BNClearForcedVariableVersion(
18394 func: *mut BNFunction,
18395 var: *const BNVariable,
18396 defSite: *const BNArchitectureAndAddress,
18397 );
18398}
18399unsafe extern "C" {
18400 pub fn BNSetFieldResolutionForVariableAt(
18401 func: *mut BNFunction,
18402 var: *const BNVariable,
18403 defSite: *const BNArchitectureAndAddress,
18404 info: *const BNFieldResolutionInfo,
18405 );
18406}
18407unsafe extern "C" {
18408 pub fn BNGetFieldResolutionForVariableAt(
18409 func: *mut BNFunction,
18410 var: *const BNVariable,
18411 defSite: *const BNArchitectureAndAddress,
18412 ) -> *mut BNFieldResolutionInfo;
18413}
18414unsafe extern "C" {
18415 pub fn BNGetAllVariableFieldResolutions(
18416 func: *mut BNFunction,
18417 count: *mut usize,
18418 ) -> *mut BNVariableFieldResolutionInfo;
18419}
18420unsafe extern "C" {
18421 pub fn BNFreeVariableFieldResolutions(result: *mut BNVariableFieldResolutionInfo, count: usize);
18422}
18423unsafe extern "C" {
18424 pub fn BNClearFieldResolutionForVariableAt(
18425 func: *mut BNFunction,
18426 var: *const BNVariable,
18427 defSite: *const BNArchitectureAndAddress,
18428 );
18429}
18430unsafe extern "C" {
18431 pub fn BNRequestFunctionDebugReport(func: *mut BNFunction, name: *const ::std::os::raw::c_char);
18432}
18433unsafe extern "C" {
18434 pub fn BNFunctionCheckForDebugReport(
18435 func: *mut BNFunction,
18436 name: *const ::std::os::raw::c_char,
18437 ) -> bool;
18438}
18439unsafe extern "C" {
18440 pub fn BNGetMediumLevelILVariableReferences(
18441 func: *mut BNFunction,
18442 var: *mut BNVariable,
18443 count: *mut usize,
18444 ) -> *mut BNILReferenceSource;
18445}
18446unsafe extern "C" {
18447 pub fn BNGetMediumLevelILVariableReferencesFrom(
18448 func: *mut BNFunction,
18449 arch: *mut BNArchitecture,
18450 address: u64,
18451 count: *mut usize,
18452 ) -> *mut BNVariableReferenceSource;
18453}
18454unsafe extern "C" {
18455 pub fn BNGetMediumLevelILVariableReferencesInRange(
18456 func: *mut BNFunction,
18457 arch: *mut BNArchitecture,
18458 address: u64,
18459 len: u64,
18460 count: *mut usize,
18461 ) -> *mut BNVariableReferenceSource;
18462}
18463unsafe extern "C" {
18464 pub fn BNGetMediumLevelILVariableReferencesIfAvailable(
18465 func: *mut BNFunction,
18466 var: *mut BNVariable,
18467 count: *mut usize,
18468 ) -> *mut BNILReferenceSource;
18469}
18470unsafe extern "C" {
18471 pub fn BNGetMediumLevelILVariableReferencesFromIfAvailable(
18472 func: *mut BNFunction,
18473 arch: *mut BNArchitecture,
18474 address: u64,
18475 count: *mut usize,
18476 ) -> *mut BNVariableReferenceSource;
18477}
18478unsafe extern "C" {
18479 pub fn BNGetMediumLevelILVariableReferencesInRangeIfAvailable(
18480 func: *mut BNFunction,
18481 arch: *mut BNArchitecture,
18482 address: u64,
18483 len: u64,
18484 count: *mut usize,
18485 ) -> *mut BNVariableReferenceSource;
18486}
18487unsafe extern "C" {
18488 pub fn BNGetHighLevelILVariableReferences(
18489 func: *mut BNFunction,
18490 var: *mut BNVariable,
18491 count: *mut usize,
18492 ) -> *mut BNILReferenceSource;
18493}
18494unsafe extern "C" {
18495 pub fn BNGetHighLevelILVariableReferencesFrom(
18496 func: *mut BNFunction,
18497 arch: *mut BNArchitecture,
18498 address: u64,
18499 count: *mut usize,
18500 ) -> *mut BNVariableReferenceSource;
18501}
18502unsafe extern "C" {
18503 pub fn BNGetHighLevelILVariableReferencesInRange(
18504 func: *mut BNFunction,
18505 arch: *mut BNArchitecture,
18506 address: u64,
18507 len: u64,
18508 count: *mut usize,
18509 ) -> *mut BNVariableReferenceSource;
18510}
18511unsafe extern "C" {
18512 pub fn BNGetHighLevelILVariableReferencesIfAvailable(
18513 func: *mut BNFunction,
18514 var: *mut BNVariable,
18515 count: *mut usize,
18516 ) -> *mut BNILReferenceSource;
18517}
18518unsafe extern "C" {
18519 pub fn BNGetHighLevelILVariableReferencesFromIfAvailable(
18520 func: *mut BNFunction,
18521 arch: *mut BNArchitecture,
18522 address: u64,
18523 count: *mut usize,
18524 ) -> *mut BNVariableReferenceSource;
18525}
18526unsafe extern "C" {
18527 pub fn BNGetHighLevelILVariableReferencesInRangeIfAvailable(
18528 func: *mut BNFunction,
18529 arch: *mut BNArchitecture,
18530 address: u64,
18531 len: u64,
18532 count: *mut usize,
18533 ) -> *mut BNVariableReferenceSource;
18534}
18535unsafe extern "C" {
18536 pub fn BNFreeVariableList(vars: *mut BNVariable);
18537}
18538unsafe extern "C" {
18539 pub fn BNFreeVariableReferenceSourceList(vars: *mut BNVariableReferenceSource, count: usize);
18540}
18541unsafe extern "C" {
18542 #[doc = " Analysis Context"]
18543 pub fn BNCreateAnalysisContext() -> *mut BNAnalysisContext;
18544}
18545unsafe extern "C" {
18546 pub fn BNNewAnalysisContextReference(
18547 analysisContext: *mut BNAnalysisContext,
18548 ) -> *mut BNAnalysisContext;
18549}
18550unsafe extern "C" {
18551 pub fn BNFreeAnalysisContext(analysisContext: *mut BNAnalysisContext);
18552}
18553unsafe extern "C" {
18554 pub fn BNAnalysisContextGetBinaryView(
18555 analysisContext: *mut BNAnalysisContext,
18556 ) -> *mut BNBinaryView;
18557}
18558unsafe extern "C" {
18559 pub fn BNAnalysisContextGetFunction(analysisContext: *mut BNAnalysisContext)
18560 -> *mut BNFunction;
18561}
18562unsafe extern "C" {
18563 pub fn BNAnalysisContextGetLiftedILFunction(
18564 analysisContext: *mut BNAnalysisContext,
18565 ) -> *mut BNLowLevelILFunction;
18566}
18567unsafe extern "C" {
18568 pub fn BNAnalysisContextGetLowLevelILFunction(
18569 analysisContext: *mut BNAnalysisContext,
18570 ) -> *mut BNLowLevelILFunction;
18571}
18572unsafe extern "C" {
18573 pub fn BNAnalysisContextGetMediumLevelILFunction(
18574 analysisContext: *mut BNAnalysisContext,
18575 ) -> *mut BNMediumLevelILFunction;
18576}
18577unsafe extern "C" {
18578 pub fn BNAnalysisContextGetHighLevelILFunction(
18579 analysisContext: *mut BNAnalysisContext,
18580 ) -> *mut BNHighLevelILFunction;
18581}
18582unsafe extern "C" {
18583 pub fn BNSetBasicBlockList(
18584 analysisContext: *mut BNAnalysisContext,
18585 basicBlocks: *mut *mut BNBasicBlock,
18586 count: usize,
18587 );
18588}
18589unsafe extern "C" {
18590 pub fn BNSetLiftedILFunction(
18591 analysisContext: *mut BNAnalysisContext,
18592 liftedIL: *mut BNLowLevelILFunction,
18593 );
18594}
18595unsafe extern "C" {
18596 pub fn BNSetLowLevelILFunction(
18597 analysisContext: *mut BNAnalysisContext,
18598 lowLevelIL: *mut BNLowLevelILFunction,
18599 );
18600}
18601unsafe extern "C" {
18602 pub fn BNSetMediumLevelILFunction(
18603 analysisContext: *mut BNAnalysisContext,
18604 mediumLevelIL: *mut BNMediumLevelILFunction,
18605 llilSSAToMLILSSAInstrMap: *mut usize,
18606 instrCount: usize,
18607 llilSSAToMLILSSAExprMap: *mut BNExprMapInfo,
18608 exprCount: usize,
18609 );
18610}
18611unsafe extern "C" {
18612 pub fn BNSetHighLevelILFunction(
18613 analysisContext: *mut BNAnalysisContext,
18614 highLevelIL: *mut BNHighLevelILFunction,
18615 );
18616}
18617unsafe extern "C" {
18618 pub fn BNAnalysisContextInform(
18619 analysisContext: *mut BNAnalysisContext,
18620 request: *const ::std::os::raw::c_char,
18621 ) -> bool;
18622}
18623unsafe extern "C" {
18624 #[doc = " Settings cache access"]
18625 pub fn BNAnalysisContextGetSettingBool(
18626 analysisContext: *mut BNAnalysisContext,
18627 key: *const ::std::os::raw::c_char,
18628 ) -> bool;
18629}
18630unsafe extern "C" {
18631 pub fn BNAnalysisContextGetSettingDouble(
18632 analysisContext: *mut BNAnalysisContext,
18633 key: *const ::std::os::raw::c_char,
18634 ) -> f64;
18635}
18636unsafe extern "C" {
18637 pub fn BNAnalysisContextGetSettingInt64(
18638 analysisContext: *mut BNAnalysisContext,
18639 key: *const ::std::os::raw::c_char,
18640 ) -> i64;
18641}
18642unsafe extern "C" {
18643 pub fn BNAnalysisContextGetSettingUInt64(
18644 analysisContext: *mut BNAnalysisContext,
18645 key: *const ::std::os::raw::c_char,
18646 ) -> u64;
18647}
18648unsafe extern "C" {
18649 pub fn BNAnalysisContextGetSettingString(
18650 analysisContext: *mut BNAnalysisContext,
18651 key: *const ::std::os::raw::c_char,
18652 ) -> *mut ::std::os::raw::c_char;
18653}
18654unsafe extern "C" {
18655 pub fn BNAnalysisContextGetSettingStringList(
18656 analysisContext: *mut BNAnalysisContext,
18657 key: *const ::std::os::raw::c_char,
18658 count: *mut usize,
18659 ) -> *mut *mut ::std::os::raw::c_char;
18660}
18661unsafe extern "C" {
18662 #[doc = " Memory map access"]
18663 pub fn BNAnalysisContextIsValidOffset(
18664 analysisContext: *mut BNAnalysisContext,
18665 offset: u64,
18666 ) -> bool;
18667}
18668unsafe extern "C" {
18669 pub fn BNAnalysisContextIsOffsetReadable(
18670 analysisContext: *mut BNAnalysisContext,
18671 offset: u64,
18672 ) -> bool;
18673}
18674unsafe extern "C" {
18675 pub fn BNAnalysisContextIsOffsetWritable(
18676 analysisContext: *mut BNAnalysisContext,
18677 offset: u64,
18678 ) -> bool;
18679}
18680unsafe extern "C" {
18681 pub fn BNAnalysisContextIsOffsetExecutable(
18682 analysisContext: *mut BNAnalysisContext,
18683 offset: u64,
18684 ) -> bool;
18685}
18686unsafe extern "C" {
18687 pub fn BNAnalysisContextIsOffsetBackedByFile(
18688 analysisContext: *mut BNAnalysisContext,
18689 offset: u64,
18690 ) -> bool;
18691}
18692unsafe extern "C" {
18693 pub fn BNAnalysisContextIsOffsetCodeSemantics(
18694 analysisContext: *mut BNAnalysisContext,
18695 offset: u64,
18696 ) -> bool;
18697}
18698unsafe extern "C" {
18699 pub fn BNAnalysisContextIsOffsetExternSemantics(
18700 analysisContext: *mut BNAnalysisContext,
18701 offset: u64,
18702 ) -> bool;
18703}
18704unsafe extern "C" {
18705 pub fn BNAnalysisContextIsOffsetWritableSemantics(
18706 analysisContext: *mut BNAnalysisContext,
18707 offset: u64,
18708 ) -> bool;
18709}
18710unsafe extern "C" {
18711 pub fn BNAnalysisContextIsOffsetReadOnlySemantics(
18712 analysisContext: *mut BNAnalysisContext,
18713 offset: u64,
18714 ) -> bool;
18715}
18716unsafe extern "C" {
18717 pub fn BNAnalysisContextGetSections(
18718 analysisContext: *mut BNAnalysisContext,
18719 count: *mut usize,
18720 ) -> *mut *mut BNSection;
18721}
18722unsafe extern "C" {
18723 pub fn BNAnalysisContextGetSectionByName(
18724 analysisContext: *mut BNAnalysisContext,
18725 name: *const ::std::os::raw::c_char,
18726 ) -> *mut BNSection;
18727}
18728unsafe extern "C" {
18729 pub fn BNAnalysisContextGetSectionsAt(
18730 analysisContext: *mut BNAnalysisContext,
18731 addr: u64,
18732 count: *mut usize,
18733 ) -> *mut *mut BNSection;
18734}
18735unsafe extern "C" {
18736 pub fn BNAnalysisContextGetStart(analysisContext: *mut BNAnalysisContext) -> u64;
18737}
18738unsafe extern "C" {
18739 pub fn BNAnalysisContextGetEnd(analysisContext: *mut BNAnalysisContext) -> u64;
18740}
18741unsafe extern "C" {
18742 pub fn BNAnalysisContextGetLength(analysisContext: *mut BNAnalysisContext) -> u64;
18743}
18744unsafe extern "C" {
18745 pub fn BNAnalysisContextGetNextValidOffset(
18746 analysisContext: *mut BNAnalysisContext,
18747 offset: u64,
18748 ) -> u64;
18749}
18750unsafe extern "C" {
18751 pub fn BNAnalysisContextGetNextMappedAddress(
18752 analysisContext: *mut BNAnalysisContext,
18753 addr: u64,
18754 flags: u32,
18755 ) -> u64;
18756}
18757unsafe extern "C" {
18758 pub fn BNAnalysisContextGetNextBackedAddress(
18759 analysisContext: *mut BNAnalysisContext,
18760 addr: u64,
18761 flags: u32,
18762 ) -> u64;
18763}
18764unsafe extern "C" {
18765 pub fn BNAnalysisContextGetSegmentAt(
18766 analysisContext: *mut BNAnalysisContext,
18767 addr: u64,
18768 ) -> *mut BNSegment;
18769}
18770unsafe extern "C" {
18771 pub fn BNAnalysisContextGetMappedAddressRanges(
18772 analysisContext: *mut BNAnalysisContext,
18773 count: *mut usize,
18774 ) -> *mut BNAddressRange;
18775}
18776unsafe extern "C" {
18777 pub fn BNAnalysisContextGetBackedAddressRanges(
18778 analysisContext: *mut BNAnalysisContext,
18779 count: *mut usize,
18780 ) -> *mut BNAddressRange;
18781}
18782unsafe extern "C" {
18783 #[doc = " Activity"]
18784 pub fn BNCreateActivity(
18785 configuration: *const ::std::os::raw::c_char,
18786 ctxt: *mut ::std::os::raw::c_void,
18787 action: ::std::option::Option<
18788 unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void, arg2: *mut BNAnalysisContext),
18789 >,
18790 ) -> *mut BNActivity;
18791}
18792unsafe extern "C" {
18793 pub fn BNCreateActivityWithEligibility(
18794 configuration: *const ::std::os::raw::c_char,
18795 ctxt: *mut ::std::os::raw::c_void,
18796 action: ::std::option::Option<
18797 unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void, arg2: *mut BNAnalysisContext),
18798 >,
18799 eligibilityHandler: ::std::option::Option<
18800 unsafe extern "C" fn(
18801 arg1: *mut ::std::os::raw::c_void,
18802 arg2: *mut BNActivity,
18803 arg3: *mut BNAnalysisContext,
18804 ) -> bool,
18805 >,
18806 ) -> *mut BNActivity;
18807}
18808unsafe extern "C" {
18809 pub fn BNNewActivityReference(activity: *mut BNActivity) -> *mut BNActivity;
18810}
18811unsafe extern "C" {
18812 pub fn BNFreeActivity(activity: *mut BNActivity);
18813}
18814unsafe extern "C" {
18815 pub fn BNActivityGetName(activity: *mut BNActivity) -> *mut ::std::os::raw::c_char;
18816}
18817unsafe extern "C" {
18818 #[doc = " Workflow"]
18819 pub fn BNCreateWorkflow(name: *const ::std::os::raw::c_char) -> *mut BNWorkflow;
18820}
18821unsafe extern "C" {
18822 pub fn BNNewWorkflowReference(workflow: *mut BNWorkflow) -> *mut BNWorkflow;
18823}
18824unsafe extern "C" {
18825 pub fn BNFreeWorkflow(workflow: *mut BNWorkflow);
18826}
18827unsafe extern "C" {
18828 pub fn BNGetWorkflowList(count: *mut usize) -> *mut *mut BNWorkflow;
18829}
18830unsafe extern "C" {
18831 pub fn BNFreeWorkflowList(workflows: *mut *mut BNWorkflow, count: usize);
18832}
18833unsafe extern "C" {
18834 pub fn BNWorkflowGet(name: *const ::std::os::raw::c_char) -> *mut BNWorkflow;
18835}
18836unsafe extern "C" {
18837 pub fn BNWorkflowGetOrCreate(name: *const ::std::os::raw::c_char) -> *mut BNWorkflow;
18838}
18839unsafe extern "C" {
18840 pub fn BNRegisterWorkflow(
18841 workflow: *mut BNWorkflow,
18842 configuration: *const ::std::os::raw::c_char,
18843 ) -> bool;
18844}
18845unsafe extern "C" {
18846 pub fn BNWorkflowClone(
18847 workflow: *mut BNWorkflow,
18848 name: *const ::std::os::raw::c_char,
18849 activity: *const ::std::os::raw::c_char,
18850 ) -> *mut BNWorkflow;
18851}
18852unsafe extern "C" {
18853 pub fn BNWorkflowRegisterActivity(
18854 workflow: *mut BNWorkflow,
18855 activity: *mut BNActivity,
18856 subactivities: *mut *const ::std::os::raw::c_char,
18857 size: usize,
18858 ) -> *mut BNActivity;
18859}
18860unsafe extern "C" {
18861 pub fn BNWorkflowContains(
18862 workflow: *mut BNWorkflow,
18863 activity: *const ::std::os::raw::c_char,
18864 ) -> bool;
18865}
18866unsafe extern "C" {
18867 pub fn BNWorkflowGetConfiguration(
18868 workflow: *mut BNWorkflow,
18869 activity: *const ::std::os::raw::c_char,
18870 ) -> *mut ::std::os::raw::c_char;
18871}
18872unsafe extern "C" {
18873 pub fn BNGetWorkflowName(workflow: *mut BNWorkflow) -> *mut ::std::os::raw::c_char;
18874}
18875unsafe extern "C" {
18876 pub fn BNWorkflowIsRegistered(workflow: *mut BNWorkflow) -> bool;
18877}
18878unsafe extern "C" {
18879 pub fn BNWorkflowSize(workflow: *mut BNWorkflow) -> usize;
18880}
18881unsafe extern "C" {
18882 pub fn BNWorkflowGetActivity(
18883 workflow: *mut BNWorkflow,
18884 activity: *const ::std::os::raw::c_char,
18885 ) -> *mut BNActivity;
18886}
18887unsafe extern "C" {
18888 pub fn BNWorkflowGetActivityRoots(
18889 workflow: *mut BNWorkflow,
18890 activity: *const ::std::os::raw::c_char,
18891 inoutSize: *mut usize,
18892 ) -> *mut *const ::std::os::raw::c_char;
18893}
18894unsafe extern "C" {
18895 pub fn BNWorkflowGetSubactivities(
18896 workflow: *mut BNWorkflow,
18897 activity: *const ::std::os::raw::c_char,
18898 immediate: bool,
18899 inoutSize: *mut usize,
18900 ) -> *mut *const ::std::os::raw::c_char;
18901}
18902unsafe extern "C" {
18903 pub fn BNWorkflowAssignSubactivities(
18904 workflow: *mut BNWorkflow,
18905 activity: *const ::std::os::raw::c_char,
18906 activities: *mut *const ::std::os::raw::c_char,
18907 size: usize,
18908 ) -> bool;
18909}
18910unsafe extern "C" {
18911 pub fn BNWorkflowClear(workflow: *mut BNWorkflow) -> bool;
18912}
18913unsafe extern "C" {
18914 pub fn BNWorkflowInsert(
18915 workflow: *mut BNWorkflow,
18916 activity: *const ::std::os::raw::c_char,
18917 activities: *mut *const ::std::os::raw::c_char,
18918 size: usize,
18919 ) -> bool;
18920}
18921unsafe extern "C" {
18922 pub fn BNWorkflowInsertAfter(
18923 workflow: *mut BNWorkflow,
18924 activity: *const ::std::os::raw::c_char,
18925 activities: *mut *const ::std::os::raw::c_char,
18926 size: usize,
18927 ) -> bool;
18928}
18929unsafe extern "C" {
18930 pub fn BNWorkflowRemove(
18931 workflow: *mut BNWorkflow,
18932 activity: *const ::std::os::raw::c_char,
18933 ) -> bool;
18934}
18935unsafe extern "C" {
18936 pub fn BNWorkflowReplace(
18937 workflow: *mut BNWorkflow,
18938 activity: *const ::std::os::raw::c_char,
18939 newActivity: *const ::std::os::raw::c_char,
18940 ) -> bool;
18941}
18942unsafe extern "C" {
18943 pub fn BNWorkflowGetGraph(
18944 workflow: *mut BNWorkflow,
18945 activity: *const ::std::os::raw::c_char,
18946 sequential: bool,
18947 ) -> *mut BNFlowGraph;
18948}
18949unsafe extern "C" {
18950 pub fn BNWorkflowShowReport(workflow: *mut BNWorkflow, name: *const ::std::os::raw::c_char);
18951}
18952unsafe extern "C" {
18953 pub fn BNWorkflowGetEligibilitySettings(
18954 workflow: *mut BNWorkflow,
18955 inoutSize: *mut usize,
18956 ) -> *mut *const ::std::os::raw::c_char;
18957}
18958unsafe extern "C" {
18959 #[doc = " BinaryView Workflow Machine"]
18960 pub fn BNGetWorkflowForBinaryView(view: *mut BNBinaryView) -> *mut BNWorkflow;
18961}
18962unsafe extern "C" {
18963 pub fn BNPostWorkflowRequestForBinaryView(
18964 view: *mut BNBinaryView,
18965 request: *const ::std::os::raw::c_char,
18966 ) -> *mut ::std::os::raw::c_char;
18967}
18968unsafe extern "C" {
18969 pub fn BNGetWorkflowGraphForBinaryView(
18970 view: *mut BNBinaryView,
18971 name: *const ::std::os::raw::c_char,
18972 sequential: bool,
18973 ) -> *mut BNFlowGraph;
18974}
18975unsafe extern "C" {
18976 pub fn BNShowWorkflowReportForBinaryView(
18977 view: *mut BNBinaryView,
18978 name: *const ::std::os::raw::c_char,
18979 );
18980}
18981unsafe extern "C" {
18982 #[doc = " Function Workflow Machine"]
18983 pub fn BNGetWorkflowForFunction(func: *mut BNFunction) -> *mut BNWorkflow;
18984}
18985unsafe extern "C" {
18986 pub fn BNPostWorkflowRequestForFunction(
18987 func: *mut BNFunction,
18988 request: *const ::std::os::raw::c_char,
18989 ) -> *mut ::std::os::raw::c_char;
18990}
18991unsafe extern "C" {
18992 pub fn BNGetWorkflowGraphForFunction(
18993 func: *mut BNFunction,
18994 name: *const ::std::os::raw::c_char,
18995 sequential: bool,
18996 ) -> *mut BNFlowGraph;
18997}
18998unsafe extern "C" {
18999 pub fn BNShowWorkflowReportForFunction(
19000 func: *mut BNFunction,
19001 name: *const ::std::os::raw::c_char,
19002 );
19003}
19004unsafe extern "C" {
19005 #[doc = " Provenance"]
19006 pub fn BNGetProvenanceString(func: *mut BNFunction) -> *mut ::std::os::raw::c_char;
19007}
19008unsafe extern "C" {
19009 #[doc = " Disassembly settings"]
19010 pub fn BNCreateDisassemblySettings() -> *mut BNDisassemblySettings;
19011}
19012unsafe extern "C" {
19013 pub fn BNDefaultDisassemblySettings() -> *mut BNDisassemblySettings;
19014}
19015unsafe extern "C" {
19016 pub fn BNDefaultGraphDisassemblySettings() -> *mut BNDisassemblySettings;
19017}
19018unsafe extern "C" {
19019 pub fn BNDefaultLinearDisassemblySettings() -> *mut BNDisassemblySettings;
19020}
19021unsafe extern "C" {
19022 pub fn BNNewDisassemblySettingsReference(
19023 settings: *mut BNDisassemblySettings,
19024 ) -> *mut BNDisassemblySettings;
19025}
19026unsafe extern "C" {
19027 pub fn BNDuplicateDisassemblySettings(
19028 settings: *mut BNDisassemblySettings,
19029 ) -> *mut BNDisassemblySettings;
19030}
19031unsafe extern "C" {
19032 pub fn BNFreeDisassemblySettings(settings: *mut BNDisassemblySettings);
19033}
19034unsafe extern "C" {
19035 pub fn BNIsDisassemblySettingsOptionSet(
19036 settings: *mut BNDisassemblySettings,
19037 option: BNDisassemblyOption,
19038 ) -> bool;
19039}
19040unsafe extern "C" {
19041 pub fn BNSetDisassemblySettingsOption(
19042 settings: *mut BNDisassemblySettings,
19043 option: BNDisassemblyOption,
19044 state: bool,
19045 );
19046}
19047unsafe extern "C" {
19048 pub fn BNGetDisassemblyWidth(settings: *mut BNDisassemblySettings) -> usize;
19049}
19050unsafe extern "C" {
19051 pub fn BNSetDisassemblyWidth(settings: *mut BNDisassemblySettings, width: usize);
19052}
19053unsafe extern "C" {
19054 pub fn BNGetDisassemblyMaximumSymbolWidth(settings: *mut BNDisassemblySettings) -> usize;
19055}
19056unsafe extern "C" {
19057 pub fn BNSetDisassemblyMaximumSymbolWidth(settings: *mut BNDisassemblySettings, width: usize);
19058}
19059unsafe extern "C" {
19060 pub fn BNGetDisassemblyGutterWidth(settings: *mut BNDisassemblySettings) -> usize;
19061}
19062unsafe extern "C" {
19063 pub fn BNSetDisassemblyGutterWidth(settings: *mut BNDisassemblySettings, width: usize);
19064}
19065unsafe extern "C" {
19066 pub fn BNGetDisassemblyAddressMode(
19067 settings: *mut BNDisassemblySettings,
19068 ) -> BNDisassemblyAddressMode;
19069}
19070unsafe extern "C" {
19071 pub fn BNSetDisassemblyAddressMode(
19072 settings: *mut BNDisassemblySettings,
19073 mode: BNDisassemblyAddressMode,
19074 );
19075}
19076unsafe extern "C" {
19077 pub fn BNGetDisassemblyAddressBaseOffset(settings: *mut BNDisassemblySettings) -> u64;
19078}
19079unsafe extern "C" {
19080 pub fn BNSetDisassemblyAddressBaseOffset(
19081 settings: *mut BNDisassemblySettings,
19082 addressBaseOffset: u64,
19083 );
19084}
19085unsafe extern "C" {
19086 pub fn BNGetDisassemblyCallParameterHints(
19087 settings: *mut BNDisassemblySettings,
19088 ) -> BNDisassemblyCallParameterHints;
19089}
19090unsafe extern "C" {
19091 pub fn BNSetDisassemblyCallParameterHints(
19092 settings: *mut BNDisassemblySettings,
19093 hints: BNDisassemblyCallParameterHints,
19094 );
19095}
19096unsafe extern "C" {
19097 pub fn BNGetDisassemblyBlockLabels(
19098 settings: *mut BNDisassemblySettings,
19099 ) -> BNDisassemblyBlockLabels;
19100}
19101unsafe extern "C" {
19102 pub fn BNSetDisassemblyBlockLabels(
19103 settings: *mut BNDisassemblySettings,
19104 labels: BNDisassemblyBlockLabels,
19105 );
19106}
19107unsafe extern "C" {
19108 #[doc = " Flow graphs"]
19109 pub fn BNCreateFlowGraph() -> *mut BNFlowGraph;
19110}
19111unsafe extern "C" {
19112 pub fn BNCreateFunctionGraph(
19113 func: *mut BNFunction,
19114 type_: BNFunctionViewType,
19115 settings: *mut BNDisassemblySettings,
19116 ) -> *mut BNFlowGraph;
19117}
19118unsafe extern "C" {
19119 pub fn BNCreateLowLevelILFunctionGraph(
19120 func: *mut BNLowLevelILFunction,
19121 settings: *mut BNDisassemblySettings,
19122 ) -> *mut BNFlowGraph;
19123}
19124unsafe extern "C" {
19125 pub fn BNCreateMediumLevelILFunctionGraph(
19126 func: *mut BNMediumLevelILFunction,
19127 settings: *mut BNDisassemblySettings,
19128 ) -> *mut BNFlowGraph;
19129}
19130unsafe extern "C" {
19131 pub fn BNCreateHighLevelILFunctionGraph(
19132 func: *mut BNHighLevelILFunction,
19133 settings: *mut BNDisassemblySettings,
19134 ) -> *mut BNFlowGraph;
19135}
19136unsafe extern "C" {
19137 pub fn BNCreateImmediateFunctionGraph(
19138 func: *mut BNFunction,
19139 type_: BNFunctionViewType,
19140 settings: *mut BNDisassemblySettings,
19141 ) -> *mut BNFlowGraph;
19142}
19143unsafe extern "C" {
19144 pub fn BNCreateLowLevelILImmediateFunctionGraph(
19145 func: *mut BNLowLevelILFunction,
19146 settings: *mut BNDisassemblySettings,
19147 ) -> *mut BNFlowGraph;
19148}
19149unsafe extern "C" {
19150 pub fn BNCreateMediumLevelILImmediateFunctionGraph(
19151 func: *mut BNMediumLevelILFunction,
19152 settings: *mut BNDisassemblySettings,
19153 ) -> *mut BNFlowGraph;
19154}
19155unsafe extern "C" {
19156 pub fn BNCreateHighLevelILImmediateFunctionGraph(
19157 func: *mut BNHighLevelILFunction,
19158 settings: *mut BNDisassemblySettings,
19159 ) -> *mut BNFlowGraph;
19160}
19161unsafe extern "C" {
19162 pub fn BNCreateCustomFlowGraph(callbacks: *mut BNCustomFlowGraph) -> *mut BNFlowGraph;
19163}
19164unsafe extern "C" {
19165 pub fn BNNewFlowGraphReference(graph: *mut BNFlowGraph) -> *mut BNFlowGraph;
19166}
19167unsafe extern "C" {
19168 pub fn BNFreeFlowGraph(graph: *mut BNFlowGraph);
19169}
19170unsafe extern "C" {
19171 pub fn BNGetFunctionForFlowGraph(graph: *mut BNFlowGraph) -> *mut BNFunction;
19172}
19173unsafe extern "C" {
19174 pub fn BNSetFunctionForFlowGraph(graph: *mut BNFlowGraph, func: *mut BNFunction);
19175}
19176unsafe extern "C" {
19177 pub fn BNGetViewForFlowGraph(graph: *mut BNFlowGraph) -> *mut BNBinaryView;
19178}
19179unsafe extern "C" {
19180 pub fn BNSetViewForFlowGraph(graph: *mut BNFlowGraph, view: *mut BNBinaryView);
19181}
19182unsafe extern "C" {
19183 pub fn BNGetHorizontalFlowGraphNodeMargin(graph: *mut BNFlowGraph) -> ::std::os::raw::c_int;
19184}
19185unsafe extern "C" {
19186 pub fn BNGetVerticalFlowGraphNodeMargin(graph: *mut BNFlowGraph) -> ::std::os::raw::c_int;
19187}
19188unsafe extern "C" {
19189 pub fn BNSetFlowGraphNodeMargins(
19190 graph: *mut BNFlowGraph,
19191 horiz: ::std::os::raw::c_int,
19192 vert: ::std::os::raw::c_int,
19193 );
19194}
19195unsafe extern "C" {
19196 pub fn BNStartFlowGraphLayout(
19197 graph: *mut BNFlowGraph,
19198 ctxt: *mut ::std::os::raw::c_void,
19199 func: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
19200 ) -> *mut BNFlowGraphLayoutRequest;
19201}
19202unsafe extern "C" {
19203 pub fn BNIsFlowGraphLayoutComplete(graph: *mut BNFlowGraph) -> bool;
19204}
19205unsafe extern "C" {
19206 pub fn BNNewFlowGraphLayoutRequestReference(
19207 layout: *mut BNFlowGraphLayoutRequest,
19208 ) -> *mut BNFlowGraphLayoutRequest;
19209}
19210unsafe extern "C" {
19211 pub fn BNFreeFlowGraphLayoutRequest(layout: *mut BNFlowGraphLayoutRequest);
19212}
19213unsafe extern "C" {
19214 pub fn BNIsFlowGraphLayoutRequestComplete(layout: *mut BNFlowGraphLayoutRequest) -> bool;
19215}
19216unsafe extern "C" {
19217 pub fn BNGetGraphForFlowGraphLayoutRequest(
19218 layout: *mut BNFlowGraphLayoutRequest,
19219 ) -> *mut BNFlowGraph;
19220}
19221unsafe extern "C" {
19222 pub fn BNAbortFlowGraphLayoutRequest(graph: *mut BNFlowGraphLayoutRequest);
19223}
19224unsafe extern "C" {
19225 pub fn BNIsILFlowGraph(graph: *mut BNFlowGraph) -> bool;
19226}
19227unsafe extern "C" {
19228 pub fn BNIsLowLevelILFlowGraph(graph: *mut BNFlowGraph) -> bool;
19229}
19230unsafe extern "C" {
19231 pub fn BNIsMediumLevelILFlowGraph(graph: *mut BNFlowGraph) -> bool;
19232}
19233unsafe extern "C" {
19234 pub fn BNIsHighLevelILFlowGraph(graph: *mut BNFlowGraph) -> bool;
19235}
19236unsafe extern "C" {
19237 pub fn BNGetFlowGraphLowLevelILFunction(graph: *mut BNFlowGraph) -> *mut BNLowLevelILFunction;
19238}
19239unsafe extern "C" {
19240 pub fn BNGetFlowGraphMediumLevelILFunction(
19241 graph: *mut BNFlowGraph,
19242 ) -> *mut BNMediumLevelILFunction;
19243}
19244unsafe extern "C" {
19245 pub fn BNGetFlowGraphHighLevelILFunction(graph: *mut BNFlowGraph)
19246 -> *mut BNHighLevelILFunction;
19247}
19248unsafe extern "C" {
19249 pub fn BNSetFlowGraphLowLevelILFunction(
19250 graph: *mut BNFlowGraph,
19251 func: *mut BNLowLevelILFunction,
19252 );
19253}
19254unsafe extern "C" {
19255 pub fn BNSetFlowGraphMediumLevelILFunction(
19256 graph: *mut BNFlowGraph,
19257 func: *mut BNMediumLevelILFunction,
19258 );
19259}
19260unsafe extern "C" {
19261 pub fn BNSetFlowGraphHighLevelILFunction(
19262 graph: *mut BNFlowGraph,
19263 func: *mut BNHighLevelILFunction,
19264 );
19265}
19266unsafe extern "C" {
19267 pub fn BNGetFlowGraphNodes(
19268 graph: *mut BNFlowGraph,
19269 count: *mut usize,
19270 ) -> *mut *mut BNFlowGraphNode;
19271}
19272unsafe extern "C" {
19273 pub fn BNGetFlowGraphNode(graph: *mut BNFlowGraph, i: usize) -> *mut BNFlowGraphNode;
19274}
19275unsafe extern "C" {
19276 pub fn BNGetFlowGraphNodesInRegion(
19277 graph: *mut BNFlowGraph,
19278 left: ::std::os::raw::c_int,
19279 top: ::std::os::raw::c_int,
19280 right: ::std::os::raw::c_int,
19281 bottom: ::std::os::raw::c_int,
19282 count: *mut usize,
19283 ) -> *mut *mut BNFlowGraphNode;
19284}
19285unsafe extern "C" {
19286 pub fn BNFreeFlowGraphNodeList(nodes: *mut *mut BNFlowGraphNode, count: usize);
19287}
19288unsafe extern "C" {
19289 pub fn BNGetFlowGraphNodeCount(graph: *mut BNFlowGraph) -> usize;
19290}
19291unsafe extern "C" {
19292 pub fn BNFlowGraphHasNodes(graph: *mut BNFlowGraph) -> bool;
19293}
19294unsafe extern "C" {
19295 pub fn BNAddFlowGraphNode(graph: *mut BNFlowGraph, node: *mut BNFlowGraphNode) -> usize;
19296}
19297unsafe extern "C" {
19298 pub fn BNReplaceFlowGraphNode(graph: *mut BNFlowGraph, i: usize, newNode: *mut BNFlowGraphNode);
19299}
19300unsafe extern "C" {
19301 pub fn BNClearFlowGraphNodes(graph: *mut BNFlowGraph);
19302}
19303unsafe extern "C" {
19304 pub fn BNGetFlowGraphWidth(graph: *mut BNFlowGraph) -> ::std::os::raw::c_int;
19305}
19306unsafe extern "C" {
19307 pub fn BNGetFlowGraphHeight(graph: *mut BNFlowGraph) -> ::std::os::raw::c_int;
19308}
19309unsafe extern "C" {
19310 pub fn BNFlowGraphSetWidth(graph: *mut BNFlowGraph, width: ::std::os::raw::c_int);
19311}
19312unsafe extern "C" {
19313 pub fn BNFlowGraphSetHeight(graph: *mut BNFlowGraph, height: ::std::os::raw::c_int);
19314}
19315unsafe extern "C" {
19316 pub fn BNGetFlowGraphRenderLayers(
19317 graph: *mut BNFlowGraph,
19318 count: *mut usize,
19319 ) -> *mut *mut BNRenderLayer;
19320}
19321unsafe extern "C" {
19322 pub fn BNAddFlowGraphRenderLayer(graph: *mut BNFlowGraph, layer: *mut BNRenderLayer);
19323}
19324unsafe extern "C" {
19325 pub fn BNRemoveFlowGraphRenderLayer(graph: *mut BNFlowGraph, layer: *mut BNRenderLayer);
19326}
19327unsafe extern "C" {
19328 pub fn BNCreateFlowGraphNode(graph: *mut BNFlowGraph) -> *mut BNFlowGraphNode;
19329}
19330unsafe extern "C" {
19331 pub fn BNNewFlowGraphNodeReference(node: *mut BNFlowGraphNode) -> *mut BNFlowGraphNode;
19332}
19333unsafe extern "C" {
19334 pub fn BNFreeFlowGraphNode(node: *mut BNFlowGraphNode);
19335}
19336unsafe extern "C" {
19337 pub fn BNGetFlowGraphNodeOwner(node: *mut BNFlowGraphNode) -> *mut BNFlowGraph;
19338}
19339unsafe extern "C" {
19340 pub fn BNGetFlowGraphBasicBlock(node: *mut BNFlowGraphNode) -> *mut BNBasicBlock;
19341}
19342unsafe extern "C" {
19343 pub fn BNSetFlowGraphBasicBlock(node: *mut BNFlowGraphNode, block: *mut BNBasicBlock);
19344}
19345unsafe extern "C" {
19346 pub fn BNFlowGraphNodeSetX(node: *mut BNFlowGraphNode, x: ::std::os::raw::c_int);
19347}
19348unsafe extern "C" {
19349 pub fn BNFlowGraphNodeSetY(node: *mut BNFlowGraphNode, y: ::std::os::raw::c_int);
19350}
19351unsafe extern "C" {
19352 pub fn BNGetFlowGraphNodeX(node: *mut BNFlowGraphNode) -> ::std::os::raw::c_int;
19353}
19354unsafe extern "C" {
19355 pub fn BNGetFlowGraphNodeY(node: *mut BNFlowGraphNode) -> ::std::os::raw::c_int;
19356}
19357unsafe extern "C" {
19358 pub fn BNGetFlowGraphNodeWidth(node: *mut BNFlowGraphNode) -> ::std::os::raw::c_int;
19359}
19360unsafe extern "C" {
19361 pub fn BNGetFlowGraphNodeHeight(node: *mut BNFlowGraphNode) -> ::std::os::raw::c_int;
19362}
19363unsafe extern "C" {
19364 pub fn BNGetFlowGraphNodeLines(
19365 node: *mut BNFlowGraphNode,
19366 count: *mut usize,
19367 ) -> *mut BNDisassemblyTextLine;
19368}
19369unsafe extern "C" {
19370 pub fn BNSetFlowGraphNodeLines(
19371 node: *mut BNFlowGraphNode,
19372 lines: *mut BNDisassemblyTextLine,
19373 count: usize,
19374 );
19375}
19376unsafe extern "C" {
19377 pub fn BNGetFlowGraphNodeOutgoingEdges(
19378 node: *mut BNFlowGraphNode,
19379 count: *mut usize,
19380 ) -> *mut BNFlowGraphEdge;
19381}
19382unsafe extern "C" {
19383 pub fn BNGetFlowGraphNodeIncomingEdges(
19384 node: *mut BNFlowGraphNode,
19385 count: *mut usize,
19386 ) -> *mut BNFlowGraphEdge;
19387}
19388unsafe extern "C" {
19389 pub fn BNFreeFlowGraphNodeEdgeList(edges: *mut BNFlowGraphEdge, count: usize);
19390}
19391unsafe extern "C" {
19392 pub fn BNAddFlowGraphNodeOutgoingEdge(
19393 node: *mut BNFlowGraphNode,
19394 type_: BNBranchType,
19395 target: *mut BNFlowGraphNode,
19396 edgeStyle: BNEdgeStyle,
19397 );
19398}
19399unsafe extern "C" {
19400 pub fn BNGetFlowGraphNodeHighlight(node: *mut BNFlowGraphNode) -> BNHighlightColor;
19401}
19402unsafe extern "C" {
19403 pub fn BNSetFlowGraphNodeHighlight(node: *mut BNFlowGraphNode, color: BNHighlightColor);
19404}
19405unsafe extern "C" {
19406 pub fn BNFinishPrepareForLayout(graph: *mut BNFlowGraph);
19407}
19408unsafe extern "C" {
19409 pub fn BNFlowGraphUpdateQueryMode(graph: *mut BNFlowGraph) -> bool;
19410}
19411unsafe extern "C" {
19412 pub fn BNFlowGraphHasUpdates(graph: *mut BNFlowGraph) -> bool;
19413}
19414unsafe extern "C" {
19415 pub fn BNUpdateFlowGraph(graph: *mut BNFlowGraph) -> *mut BNFlowGraph;
19416}
19417unsafe extern "C" {
19418 pub fn BNSetFlowGraphOption(graph: *mut BNFlowGraph, option: BNFlowGraphOption, value: bool);
19419}
19420unsafe extern "C" {
19421 pub fn BNIsFlowGraphOptionSet(graph: *mut BNFlowGraph, option: BNFlowGraphOption) -> bool;
19422}
19423unsafe extern "C" {
19424 pub fn BNIsNodeValidForFlowGraph(graph: *mut BNFlowGraph, node: *mut BNFlowGraphNode) -> bool;
19425}
19426unsafe extern "C" {
19427 pub fn BNFlowGraphNodeSetVisibilityRegion(
19428 node: *mut BNFlowGraphNode,
19429 x: ::std::os::raw::c_int,
19430 y: ::std::os::raw::c_int,
19431 w: ::std::os::raw::c_int,
19432 h: ::std::os::raw::c_int,
19433 );
19434}
19435unsafe extern "C" {
19436 pub fn BNFlowGraphNodeSetOutgoingEdgePoints(
19437 node: *mut BNFlowGraphNode,
19438 edgeNum: usize,
19439 points: *mut BNPoint,
19440 pointCount: usize,
19441 );
19442}
19443unsafe extern "C" {
19444 pub fn BNGetFlowGraphLayouts(count: *mut usize) -> *mut *mut BNFlowGraphLayout;
19445}
19446unsafe extern "C" {
19447 pub fn BNFreeFlowGraphLayoutList(layouts: *mut *mut BNFlowGraphLayout);
19448}
19449unsafe extern "C" {
19450 pub fn BNRegisterFlowGraphLayout(
19451 name: *const ::std::os::raw::c_char,
19452 callbacks: *mut BNCustomFlowGraphLayout,
19453 ) -> *mut BNFlowGraphLayout;
19454}
19455unsafe extern "C" {
19456 pub fn BNGetFlowGraphLayoutByName(
19457 name: *const ::std::os::raw::c_char,
19458 ) -> *mut BNFlowGraphLayout;
19459}
19460unsafe extern "C" {
19461 pub fn BNGetFlowGraphLayoutName(layout: *mut BNFlowGraphLayout) -> *mut ::std::os::raw::c_char;
19462}
19463unsafe extern "C" {
19464 pub fn BNFlowGraphLayoutLayout(
19465 layout: *mut BNFlowGraphLayout,
19466 graph: *mut BNFlowGraph,
19467 nodes: *mut *mut BNFlowGraphNode,
19468 nodeCount: usize,
19469 ) -> bool;
19470}
19471unsafe extern "C" {
19472 #[doc = " Symbols"]
19473 pub fn BNCreateSymbol(
19474 type_: BNSymbolType,
19475 shortName: *const ::std::os::raw::c_char,
19476 fullName: *const ::std::os::raw::c_char,
19477 rawName: *const ::std::os::raw::c_char,
19478 addr: u64,
19479 binding: BNSymbolBinding,
19480 nameSpace: *const BNNameSpace,
19481 ordinal: u64,
19482 ) -> *mut BNSymbol;
19483}
19484unsafe extern "C" {
19485 pub fn BNNewSymbolReference(sym: *mut BNSymbol) -> *mut BNSymbol;
19486}
19487unsafe extern "C" {
19488 pub fn BNFreeSymbol(sym: *mut BNSymbol);
19489}
19490unsafe extern "C" {
19491 pub fn BNGetSymbolType(sym: *mut BNSymbol) -> BNSymbolType;
19492}
19493unsafe extern "C" {
19494 pub fn BNGetSymbolBinding(sym: *mut BNSymbol) -> BNSymbolBinding;
19495}
19496unsafe extern "C" {
19497 pub fn BNGetSymbolNameSpace(sym: *mut BNSymbol) -> BNNameSpace;
19498}
19499unsafe extern "C" {
19500 pub fn BNGetSymbolShortName(sym: *mut BNSymbol) -> *mut ::std::os::raw::c_char;
19501}
19502unsafe extern "C" {
19503 pub fn BNGetSymbolShortNameRef(sym: *mut BNSymbol) -> *mut BNStringRef;
19504}
19505unsafe extern "C" {
19506 pub fn BNGetSymbolFullName(sym: *mut BNSymbol) -> *mut ::std::os::raw::c_char;
19507}
19508unsafe extern "C" {
19509 pub fn BNGetSymbolFullNameRef(sym: *mut BNSymbol) -> *mut BNStringRef;
19510}
19511unsafe extern "C" {
19512 pub fn BNGetSymbolRawName(sym: *mut BNSymbol) -> *mut ::std::os::raw::c_char;
19513}
19514unsafe extern "C" {
19515 pub fn BNGetSymbolRawNameRef(sym: *mut BNSymbol) -> *mut BNStringRef;
19516}
19517unsafe extern "C" {
19518 pub fn BNGetSymbolRawBytes(
19519 sym: *mut BNSymbol,
19520 count: *mut usize,
19521 ) -> *mut ::std::os::raw::c_void;
19522}
19523unsafe extern "C" {
19524 pub fn BNFreeSymbolRawBytes(bytes: *mut ::std::os::raw::c_void);
19525}
19526unsafe extern "C" {
19527 pub fn BNGetSymbolAddress(sym: *mut BNSymbol) -> u64;
19528}
19529unsafe extern "C" {
19530 pub fn BNGetSymbolOrdinal(sym: *mut BNSymbol) -> u64;
19531}
19532unsafe extern "C" {
19533 pub fn BNIsSymbolAutoDefined(sym: *mut BNSymbol) -> bool;
19534}
19535unsafe extern "C" {
19536 pub fn BNGetSymbolByAddress(
19537 view: *mut BNBinaryView,
19538 addr: u64,
19539 nameSpace: *const BNNameSpace,
19540 ) -> *mut BNSymbol;
19541}
19542unsafe extern "C" {
19543 pub fn BNGetSymbolByRawName(
19544 view: *mut BNBinaryView,
19545 name: *const ::std::os::raw::c_char,
19546 nameSpace: *const BNNameSpace,
19547 ) -> *mut BNSymbol;
19548}
19549unsafe extern "C" {
19550 pub fn BNGetSymbolsByName(
19551 view: *mut BNBinaryView,
19552 name: *const ::std::os::raw::c_char,
19553 count: *mut usize,
19554 nameSpace: *const BNNameSpace,
19555 ) -> *mut *mut BNSymbol;
19556}
19557unsafe extern "C" {
19558 pub fn BNGetSymbolsByRawName(
19559 view: *mut BNBinaryView,
19560 name: *const ::std::os::raw::c_char,
19561 count: *mut usize,
19562 nameSpace: *const BNNameSpace,
19563 ) -> *mut *mut BNSymbol;
19564}
19565unsafe extern "C" {
19566 pub fn BNGetSymbols(
19567 view: *mut BNBinaryView,
19568 count: *mut usize,
19569 nameSpace: *const BNNameSpace,
19570 ) -> *mut *mut BNSymbol;
19571}
19572unsafe extern "C" {
19573 pub fn BNGetSymbolsInRange(
19574 view: *mut BNBinaryView,
19575 start: u64,
19576 len: u64,
19577 count: *mut usize,
19578 nameSpace: *const BNNameSpace,
19579 ) -> *mut *mut BNSymbol;
19580}
19581unsafe extern "C" {
19582 pub fn BNGetSymbolsOfType(
19583 view: *mut BNBinaryView,
19584 type_: BNSymbolType,
19585 count: *mut usize,
19586 nameSpace: *const BNNameSpace,
19587 ) -> *mut *mut BNSymbol;
19588}
19589unsafe extern "C" {
19590 pub fn BNGetSymbolsOfTypeInRange(
19591 view: *mut BNBinaryView,
19592 type_: BNSymbolType,
19593 start: u64,
19594 len: u64,
19595 count: *mut usize,
19596 nameSpace: *const BNNameSpace,
19597 ) -> *mut *mut BNSymbol;
19598}
19599unsafe extern "C" {
19600 pub fn BNFreeSymbolList(syms: *mut *mut BNSymbol, count: usize);
19601}
19602unsafe extern "C" {
19603 pub fn BNGetVisibleSymbols(
19604 view: *mut BNBinaryView,
19605 count: *mut usize,
19606 nameSpace: *const BNNameSpace,
19607 ) -> *mut *mut BNSymbol;
19608}
19609unsafe extern "C" {
19610 pub fn BNDefineAutoSymbol(view: *mut BNBinaryView, sym: *mut BNSymbol);
19611}
19612unsafe extern "C" {
19613 pub fn BNUndefineAutoSymbol(view: *mut BNBinaryView, sym: *mut BNSymbol);
19614}
19615unsafe extern "C" {
19616 pub fn BNDefineUserSymbol(view: *mut BNBinaryView, sym: *mut BNSymbol);
19617}
19618unsafe extern "C" {
19619 pub fn BNUndefineUserSymbol(view: *mut BNBinaryView, sym: *mut BNSymbol);
19620}
19621unsafe extern "C" {
19622 pub fn BNDefineImportedFunction(
19623 view: *mut BNBinaryView,
19624 importAddressSym: *mut BNSymbol,
19625 func: *mut BNFunction,
19626 type_: *mut BNType,
19627 );
19628}
19629unsafe extern "C" {
19630 pub fn BNDefineAutoSymbolAndVariableOrFunction(
19631 view: *mut BNBinaryView,
19632 platform: *mut BNPlatform,
19633 sym: *mut BNSymbol,
19634 type_: *mut BNTypeWithConfidence,
19635 ) -> *mut BNSymbol;
19636}
19637unsafe extern "C" {
19638 pub fn BNBeginBulkModifySymbols(view: *mut BNBinaryView);
19639}
19640unsafe extern "C" {
19641 pub fn BNEndBulkModifySymbols(view: *mut BNBinaryView);
19642}
19643unsafe extern "C" {
19644 pub fn BNGetDebugInfo(view: *mut BNBinaryView) -> *mut BNDebugInfo;
19645}
19646unsafe extern "C" {
19647 pub fn BNApplyDebugInfo(view: *mut BNBinaryView, newDebugInfo: *mut BNDebugInfo);
19648}
19649unsafe extern "C" {
19650 pub fn BNSetDebugInfo(view: *mut BNBinaryView, newDebugInfo: *mut BNDebugInfo);
19651}
19652unsafe extern "C" {
19653 pub fn BNIsApplyingDebugInfo(view: *mut BNBinaryView) -> bool;
19654}
19655unsafe extern "C" {
19656 pub fn BNImportedFunctionFromImportAddressSymbol(
19657 sym: *mut BNSymbol,
19658 addr: u64,
19659 ) -> *mut BNSymbol;
19660}
19661unsafe extern "C" {
19662 #[doc = " Low-level IL"]
19663 pub fn BNCreateLowLevelILFunction(
19664 arch: *mut BNArchitecture,
19665 func: *mut BNFunction,
19666 ) -> *mut BNLowLevelILFunction;
19667}
19668unsafe extern "C" {
19669 pub fn BNNewLowLevelILFunctionReference(
19670 func: *mut BNLowLevelILFunction,
19671 ) -> *mut BNLowLevelILFunction;
19672}
19673unsafe extern "C" {
19674 pub fn BNFreeLowLevelILFunction(func: *mut BNLowLevelILFunction);
19675}
19676unsafe extern "C" {
19677 pub fn BNGetLowLevelILOwnerFunction(func: *mut BNLowLevelILFunction) -> *mut BNFunction;
19678}
19679unsafe extern "C" {
19680 pub fn BNLowLevelILGetCurrentAddress(func: *mut BNLowLevelILFunction) -> u64;
19681}
19682unsafe extern "C" {
19683 pub fn BNLowLevelILSetCurrentAddress(
19684 func: *mut BNLowLevelILFunction,
19685 arch: *mut BNArchitecture,
19686 addr: u64,
19687 );
19688}
19689unsafe extern "C" {
19690 pub fn BNLowLevelILSetCurrentSourceBlock(
19691 func: *mut BNLowLevelILFunction,
19692 source: *mut BNBasicBlock,
19693 );
19694}
19695unsafe extern "C" {
19696 pub fn BNLowLevelILGetInstructionStart(
19697 func: *mut BNLowLevelILFunction,
19698 arch: *mut BNArchitecture,
19699 addr: u64,
19700 ) -> usize;
19701}
19702unsafe extern "C" {
19703 pub fn BNLowLevelILGetInstructionsAt(
19704 func: *mut BNLowLevelILFunction,
19705 arch: *mut BNArchitecture,
19706 addr: u64,
19707 count: *mut usize,
19708 ) -> *mut usize;
19709}
19710unsafe extern "C" {
19711 pub fn BNLowLevelILGetExitsForInstruction(
19712 func: *mut BNLowLevelILFunction,
19713 instr: usize,
19714 count: *mut usize,
19715 ) -> *mut usize;
19716}
19717unsafe extern "C" {
19718 pub fn BNLowLevelILClearIndirectBranches(func: *mut BNLowLevelILFunction);
19719}
19720unsafe extern "C" {
19721 pub fn BNLowLevelILSetIndirectBranches(
19722 func: *mut BNLowLevelILFunction,
19723 branches: *mut BNArchitectureAndAddress,
19724 count: usize,
19725 );
19726}
19727unsafe extern "C" {
19728 pub fn BNLowLevelILAddExpr(
19729 func: *mut BNLowLevelILFunction,
19730 operation: BNLowLevelILOperation,
19731 size: usize,
19732 flags: u32,
19733 a: u64,
19734 b: u64,
19735 c: u64,
19736 d: u64,
19737 ) -> usize;
19738}
19739unsafe extern "C" {
19740 pub fn BNLowLevelILAddExprWithLocation(
19741 func: *mut BNLowLevelILFunction,
19742 addr: u64,
19743 sourceOperand: u32,
19744 operation: BNLowLevelILOperation,
19745 size: usize,
19746 flags: u32,
19747 a: u64,
19748 b: u64,
19749 c: u64,
19750 d: u64,
19751 ) -> usize;
19752}
19753unsafe extern "C" {
19754 pub fn BNLowLevelILSetExprSourceOperand(
19755 func: *mut BNLowLevelILFunction,
19756 expr: usize,
19757 operand: u32,
19758 );
19759}
19760unsafe extern "C" {
19761 pub fn BNLowLevelILAddInstruction(func: *mut BNLowLevelILFunction, expr: usize) -> usize;
19762}
19763unsafe extern "C" {
19764 pub fn BNLowLevelILGoto(
19765 func: *mut BNLowLevelILFunction,
19766 label: *mut BNLowLevelILLabel,
19767 ) -> usize;
19768}
19769unsafe extern "C" {
19770 pub fn BNLowLevelILGotoWithLocation(
19771 func: *mut BNLowLevelILFunction,
19772 label: *mut BNLowLevelILLabel,
19773 addr: u64,
19774 sourceOperand: u32,
19775 ) -> usize;
19776}
19777unsafe extern "C" {
19778 pub fn BNLowLevelILIf(
19779 func: *mut BNLowLevelILFunction,
19780 op: u64,
19781 t: *mut BNLowLevelILLabel,
19782 f: *mut BNLowLevelILLabel,
19783 ) -> usize;
19784}
19785unsafe extern "C" {
19786 pub fn BNLowLevelILIfWithLocation(
19787 func: *mut BNLowLevelILFunction,
19788 op: u64,
19789 t: *mut BNLowLevelILLabel,
19790 f: *mut BNLowLevelILLabel,
19791 addr: u64,
19792 sourceOperand: u32,
19793 ) -> usize;
19794}
19795unsafe extern "C" {
19796 pub fn BNLowLevelILInitLabel(label: *mut BNLowLevelILLabel);
19797}
19798unsafe extern "C" {
19799 pub fn BNLowLevelILMarkLabel(func: *mut BNLowLevelILFunction, label: *mut BNLowLevelILLabel);
19800}
19801unsafe extern "C" {
19802 pub fn BNFinalizeLowLevelILFunction(func: *mut BNLowLevelILFunction);
19803}
19804unsafe extern "C" {
19805 pub fn BNGenerateLowLevelILSSAForm(func: *mut BNLowLevelILFunction);
19806}
19807unsafe extern "C" {
19808 pub fn BNLowLevelILFunctionHasIndirectBranches(func: *mut BNLowLevelILFunction) -> bool;
19809}
19810unsafe extern "C" {
19811 pub fn BNPrepareToCopyLowLevelILFunction(
19812 func: *mut BNLowLevelILFunction,
19813 src: *mut BNLowLevelILFunction,
19814 );
19815}
19816unsafe extern "C" {
19817 pub fn BNPrepareToCopyLowLevelILBasicBlock(
19818 func: *mut BNLowLevelILFunction,
19819 block: *mut BNBasicBlock,
19820 );
19821}
19822unsafe extern "C" {
19823 pub fn BNGetLabelForLowLevelILSourceInstruction(
19824 func: *mut BNLowLevelILFunction,
19825 instr: usize,
19826 ) -> *mut BNLowLevelILLabel;
19827}
19828unsafe extern "C" {
19829 pub fn BNPrepareToCopyForeignFunction(
19830 dst: *mut BNLowLevelILFunction,
19831 src: *mut BNLowLevelILFunction,
19832 count: *mut usize,
19833 ) -> *mut *mut BNBasicBlock;
19834}
19835unsafe extern "C" {
19836 pub fn BNLowLevelILAddLabelMap(
19837 func: *mut BNLowLevelILFunction,
19838 values: *mut u64,
19839 labels: *mut *mut BNLowLevelILLabel,
19840 count: usize,
19841 ) -> usize;
19842}
19843unsafe extern "C" {
19844 pub fn BNLowLevelILAddOperandList(
19845 func: *mut BNLowLevelILFunction,
19846 operands: *mut u64,
19847 count: usize,
19848 ) -> usize;
19849}
19850unsafe extern "C" {
19851 pub fn BNLowLevelILGetOperandList(
19852 func: *mut BNLowLevelILFunction,
19853 expr: usize,
19854 operand: usize,
19855 count: *mut usize,
19856 ) -> *mut u64;
19857}
19858unsafe extern "C" {
19859 pub fn BNLowLevelILFreeOperandList(operands: *mut u64);
19860}
19861unsafe extern "C" {
19862 pub fn BNLowLevelILGetOperand(func: *mut BNLowLevelILFunction, offset: usize) -> u64;
19863}
19864unsafe extern "C" {
19865 pub fn BNCacheLowLevelILPossibleValueSet(
19866 func: *mut BNLowLevelILFunction,
19867 pvs: *mut BNPossibleValueSet,
19868 ) -> usize;
19869}
19870unsafe extern "C" {
19871 pub fn BNGetCachedLowLevelILPossibleValueSet(
19872 func: *mut BNLowLevelILFunction,
19873 idx: usize,
19874 ) -> BNPossibleValueSet;
19875}
19876unsafe extern "C" {
19877 pub fn BNGetLowLevelILByIndex(
19878 func: *mut BNLowLevelILFunction,
19879 i: usize,
19880 ) -> BNLowLevelILInstruction;
19881}
19882unsafe extern "C" {
19883 pub fn BNGetLowLevelILIndexForInstruction(func: *mut BNLowLevelILFunction, i: usize) -> usize;
19884}
19885unsafe extern "C" {
19886 pub fn BNGetLowLevelILInstructionForExpr(func: *mut BNLowLevelILFunction, expr: usize)
19887 -> usize;
19888}
19889unsafe extern "C" {
19890 pub fn BNGetLowLevelILInstructionCount(func: *mut BNLowLevelILFunction) -> usize;
19891}
19892unsafe extern "C" {
19893 pub fn BNGetLowLevelILExprCount(func: *mut BNLowLevelILFunction) -> usize;
19894}
19895unsafe extern "C" {
19896 pub fn BNUpdateLowLevelILOperand(
19897 func: *mut BNLowLevelILFunction,
19898 instr: usize,
19899 operandIndex: usize,
19900 value: u64,
19901 );
19902}
19903unsafe extern "C" {
19904 pub fn BNReplaceLowLevelILExpr(func: *mut BNLowLevelILFunction, expr: usize, newExpr: usize);
19905}
19906unsafe extern "C" {
19907 pub fn BNSetLowLevelILExprAttributes(
19908 func: *mut BNLowLevelILFunction,
19909 expr: usize,
19910 attributes: u32,
19911 );
19912}
19913unsafe extern "C" {
19914 pub fn BNAddLowLevelILLabelForAddress(
19915 func: *mut BNLowLevelILFunction,
19916 arch: *mut BNArchitecture,
19917 addr: u64,
19918 );
19919}
19920unsafe extern "C" {
19921 pub fn BNGetLowLevelILLabelForAddress(
19922 func: *mut BNLowLevelILFunction,
19923 arch: *mut BNArchitecture,
19924 addr: u64,
19925 ) -> *mut BNLowLevelILLabel;
19926}
19927unsafe extern "C" {
19928 pub fn BNPrepareBlockTranslation(
19929 func: *mut BNLowLevelILFunction,
19930 arch: *mut BNArchitecture,
19931 addr: u64,
19932 );
19933}
19934unsafe extern "C" {
19935 pub fn BNGetLowLevelILExprText(
19936 func: *mut BNLowLevelILFunction,
19937 arch: *mut BNArchitecture,
19938 i: usize,
19939 settings: *mut BNDisassemblySettings,
19940 tokens: *mut *mut BNInstructionTextToken,
19941 count: *mut usize,
19942 ) -> bool;
19943}
19944unsafe extern "C" {
19945 pub fn BNGetLowLevelILInstructionText(
19946 il: *mut BNLowLevelILFunction,
19947 func: *mut BNFunction,
19948 arch: *mut BNArchitecture,
19949 i: usize,
19950 settings: *mut BNDisassemblySettings,
19951 tokens: *mut *mut BNInstructionTextToken,
19952 count: *mut usize,
19953 ) -> bool;
19954}
19955unsafe extern "C" {
19956 pub fn BNGetLowLevelILTemporaryRegisterCount(func: *mut BNLowLevelILFunction) -> u32;
19957}
19958unsafe extern "C" {
19959 pub fn BNGetLowLevelILTemporaryFlagCount(func: *mut BNLowLevelILFunction) -> u32;
19960}
19961unsafe extern "C" {
19962 pub fn BNGetLowLevelILBasicBlockList(
19963 func: *mut BNLowLevelILFunction,
19964 count: *mut usize,
19965 ) -> *mut *mut BNBasicBlock;
19966}
19967unsafe extern "C" {
19968 pub fn BNGetLowLevelILBasicBlockForInstruction(
19969 func: *mut BNLowLevelILFunction,
19970 i: usize,
19971 ) -> *mut BNBasicBlock;
19972}
19973unsafe extern "C" {
19974 pub fn BNGetLowLevelILSSAForm(func: *mut BNLowLevelILFunction) -> *mut BNLowLevelILFunction;
19975}
19976unsafe extern "C" {
19977 pub fn BNGetLowLevelILNonSSAForm(func: *mut BNLowLevelILFunction) -> *mut BNLowLevelILFunction;
19978}
19979unsafe extern "C" {
19980 pub fn BNGetLowLevelILSSAInstructionIndex(
19981 func: *mut BNLowLevelILFunction,
19982 instr: usize,
19983 ) -> usize;
19984}
19985unsafe extern "C" {
19986 pub fn BNGetLowLevelILNonSSAInstructionIndex(
19987 func: *mut BNLowLevelILFunction,
19988 instr: usize,
19989 ) -> usize;
19990}
19991unsafe extern "C" {
19992 pub fn BNGetLowLevelILSSAExprIndex(func: *mut BNLowLevelILFunction, expr: usize) -> usize;
19993}
19994unsafe extern "C" {
19995 pub fn BNGetLowLevelILNonSSAExprIndex(func: *mut BNLowLevelILFunction, expr: usize) -> usize;
19996}
19997unsafe extern "C" {
19998 pub fn BNGetLowLevelILSSARegisterDefinition(
19999 func: *mut BNLowLevelILFunction,
20000 reg: u32,
20001 version: usize,
20002 ) -> usize;
20003}
20004unsafe extern "C" {
20005 pub fn BNGetLowLevelILSSAFlagDefinition(
20006 func: *mut BNLowLevelILFunction,
20007 reg: u32,
20008 version: usize,
20009 ) -> usize;
20010}
20011unsafe extern "C" {
20012 pub fn BNGetLowLevelILSSAMemoryDefinition(
20013 func: *mut BNLowLevelILFunction,
20014 version: usize,
20015 ) -> usize;
20016}
20017unsafe extern "C" {
20018 pub fn BNGetLowLevelILSSARegisterUses(
20019 func: *mut BNLowLevelILFunction,
20020 reg: u32,
20021 version: usize,
20022 count: *mut usize,
20023 ) -> *mut usize;
20024}
20025unsafe extern "C" {
20026 pub fn BNGetLowLevelILSSAFlagUses(
20027 func: *mut BNLowLevelILFunction,
20028 reg: u32,
20029 version: usize,
20030 count: *mut usize,
20031 ) -> *mut usize;
20032}
20033unsafe extern "C" {
20034 pub fn BNGetLowLevelILSSAMemoryUses(
20035 func: *mut BNLowLevelILFunction,
20036 version: usize,
20037 count: *mut usize,
20038 ) -> *mut usize;
20039}
20040unsafe extern "C" {
20041 pub fn BNGetLowLevelILSSARegisterValue(
20042 func: *mut BNLowLevelILFunction,
20043 reg: u32,
20044 version: usize,
20045 ) -> BNRegisterValue;
20046}
20047unsafe extern "C" {
20048 pub fn BNGetLowLevelILSSAFlagValue(
20049 func: *mut BNLowLevelILFunction,
20050 flag: u32,
20051 version: usize,
20052 ) -> BNRegisterValue;
20053}
20054unsafe extern "C" {
20055 pub fn BNGetLowLevelILExprValue(
20056 func: *mut BNLowLevelILFunction,
20057 expr: usize,
20058 ) -> BNRegisterValue;
20059}
20060unsafe extern "C" {
20061 pub fn BNGetLowLevelILPossibleExprValues(
20062 func: *mut BNLowLevelILFunction,
20063 expr: usize,
20064 options: *mut BNDataFlowQueryOption,
20065 optionCount: usize,
20066 ) -> BNPossibleValueSet;
20067}
20068unsafe extern "C" {
20069 pub fn BNGetLowLevelILRegisterValueAtInstruction(
20070 func: *mut BNLowLevelILFunction,
20071 reg: u32,
20072 instr: usize,
20073 ) -> BNRegisterValue;
20074}
20075unsafe extern "C" {
20076 pub fn BNGetLowLevelILRegisterValueAfterInstruction(
20077 func: *mut BNLowLevelILFunction,
20078 reg: u32,
20079 instr: usize,
20080 ) -> BNRegisterValue;
20081}
20082unsafe extern "C" {
20083 pub fn BNGetLowLevelILPossibleRegisterValuesAtInstruction(
20084 func: *mut BNLowLevelILFunction,
20085 reg: u32,
20086 instr: usize,
20087 options: *mut BNDataFlowQueryOption,
20088 optionCount: usize,
20089 ) -> BNPossibleValueSet;
20090}
20091unsafe extern "C" {
20092 pub fn BNGetLowLevelILPossibleRegisterValuesAfterInstruction(
20093 func: *mut BNLowLevelILFunction,
20094 reg: u32,
20095 instr: usize,
20096 options: *mut BNDataFlowQueryOption,
20097 optionCount: usize,
20098 ) -> BNPossibleValueSet;
20099}
20100unsafe extern "C" {
20101 pub fn BNGetLowLevelILFlagValueAtInstruction(
20102 func: *mut BNLowLevelILFunction,
20103 flag: u32,
20104 instr: usize,
20105 ) -> BNRegisterValue;
20106}
20107unsafe extern "C" {
20108 pub fn BNGetLowLevelILFlagValueAfterInstruction(
20109 func: *mut BNLowLevelILFunction,
20110 flag: u32,
20111 instr: usize,
20112 ) -> BNRegisterValue;
20113}
20114unsafe extern "C" {
20115 pub fn BNGetLowLevelILPossibleFlagValuesAtInstruction(
20116 func: *mut BNLowLevelILFunction,
20117 flag: u32,
20118 instr: usize,
20119 options: *mut BNDataFlowQueryOption,
20120 optionCount: usize,
20121 ) -> BNPossibleValueSet;
20122}
20123unsafe extern "C" {
20124 pub fn BNGetLowLevelILPossibleFlagValuesAfterInstruction(
20125 func: *mut BNLowLevelILFunction,
20126 flag: u32,
20127 instr: usize,
20128 options: *mut BNDataFlowQueryOption,
20129 optionCount: usize,
20130 ) -> BNPossibleValueSet;
20131}
20132unsafe extern "C" {
20133 pub fn BNGetLowLevelILStackContentsAtInstruction(
20134 func: *mut BNLowLevelILFunction,
20135 offset: i64,
20136 len: usize,
20137 instr: usize,
20138 ) -> BNRegisterValue;
20139}
20140unsafe extern "C" {
20141 pub fn BNGetLowLevelILStackContentsAfterInstruction(
20142 func: *mut BNLowLevelILFunction,
20143 offset: i64,
20144 len: usize,
20145 instr: usize,
20146 ) -> BNRegisterValue;
20147}
20148unsafe extern "C" {
20149 pub fn BNGetLowLevelILPossibleStackContentsAtInstruction(
20150 func: *mut BNLowLevelILFunction,
20151 offset: i64,
20152 len: usize,
20153 instr: usize,
20154 options: *mut BNDataFlowQueryOption,
20155 optionCount: usize,
20156 ) -> BNPossibleValueSet;
20157}
20158unsafe extern "C" {
20159 pub fn BNGetLowLevelILPossibleStackContentsAfterInstruction(
20160 func: *mut BNLowLevelILFunction,
20161 offset: i64,
20162 len: usize,
20163 instr: usize,
20164 options: *mut BNDataFlowQueryOption,
20165 optionCount: usize,
20166 ) -> BNPossibleValueSet;
20167}
20168unsafe extern "C" {
20169 pub fn BNGetLowLevelRegisters(func: *mut BNLowLevelILFunction, count: *mut usize) -> *mut u32;
20170}
20171unsafe extern "C" {
20172 pub fn BNGetLowLevelRegisterStacks(
20173 func: *mut BNLowLevelILFunction,
20174 count: *mut usize,
20175 ) -> *mut u32;
20176}
20177unsafe extern "C" {
20178 pub fn BNGetLowLevelFlags(func: *mut BNLowLevelILFunction, count: *mut usize) -> *mut u32;
20179}
20180unsafe extern "C" {
20181 pub fn BNGetLowLevelSSARegistersWithoutVersions(
20182 func: *mut BNLowLevelILFunction,
20183 count: *mut usize,
20184 ) -> *mut u32;
20185}
20186unsafe extern "C" {
20187 pub fn BNGetLowLevelSSARegisterStacksWithoutVersions(
20188 func: *mut BNLowLevelILFunction,
20189 count: *mut usize,
20190 ) -> *mut u32;
20191}
20192unsafe extern "C" {
20193 pub fn BNGetLowLevelSSAFlagsWithoutVersions(
20194 func: *mut BNLowLevelILFunction,
20195 count: *mut usize,
20196 ) -> *mut u32;
20197}
20198unsafe extern "C" {
20199 pub fn BNGetLowLevelRegisterSSAVersions(
20200 func: *mut BNLowLevelILFunction,
20201 var: u32,
20202 count: *mut usize,
20203 ) -> *mut usize;
20204}
20205unsafe extern "C" {
20206 pub fn BNGetLowLevelRegisterStackSSAVersions(
20207 func: *mut BNLowLevelILFunction,
20208 var: u32,
20209 count: *mut usize,
20210 ) -> *mut usize;
20211}
20212unsafe extern "C" {
20213 pub fn BNGetLowLevelFlagSSAVersions(
20214 func: *mut BNLowLevelILFunction,
20215 var: u32,
20216 count: *mut usize,
20217 ) -> *mut usize;
20218}
20219unsafe extern "C" {
20220 pub fn BNGetLowLevelMemoryVersions(
20221 func: *mut BNLowLevelILFunction,
20222 count: *mut usize,
20223 ) -> *mut usize;
20224}
20225unsafe extern "C" {
20226 pub fn BNFreeLLILVariablesList(vars: *mut u32);
20227}
20228unsafe extern "C" {
20229 pub fn BNFreeLLILVariableVersionList(versions: *mut usize);
20230}
20231unsafe extern "C" {
20232 pub fn BNGetMediumLevelILForLowLevelIL(
20233 func: *mut BNLowLevelILFunction,
20234 ) -> *mut BNMediumLevelILFunction;
20235}
20236unsafe extern "C" {
20237 pub fn BNGetMappedMediumLevelIL(
20238 func: *mut BNLowLevelILFunction,
20239 ) -> *mut BNMediumLevelILFunction;
20240}
20241unsafe extern "C" {
20242 pub fn BNGetMediumLevelILInstructionIndex(
20243 func: *mut BNLowLevelILFunction,
20244 instr: usize,
20245 ) -> usize;
20246}
20247unsafe extern "C" {
20248 pub fn BNGetMediumLevelILExprIndex(func: *mut BNLowLevelILFunction, expr: usize) -> usize;
20249}
20250unsafe extern "C" {
20251 pub fn BNGetMediumLevelILExprIndexes(
20252 func: *mut BNLowLevelILFunction,
20253 expr: usize,
20254 count: *mut usize,
20255 ) -> *mut usize;
20256}
20257unsafe extern "C" {
20258 pub fn BNGetMappedMediumLevelILInstructionIndex(
20259 func: *mut BNLowLevelILFunction,
20260 instr: usize,
20261 ) -> usize;
20262}
20263unsafe extern "C" {
20264 pub fn BNGetMappedMediumLevelILExprIndex(func: *mut BNLowLevelILFunction, expr: usize)
20265 -> usize;
20266}
20267unsafe extern "C" {
20268 #[doc = " Medium-level IL"]
20269 pub fn BNCreateMediumLevelILFunction(
20270 arch: *mut BNArchitecture,
20271 func: *mut BNFunction,
20272 lowLevelIL: *mut BNLowLevelILFunction,
20273 ) -> *mut BNMediumLevelILFunction;
20274}
20275unsafe extern "C" {
20276 pub fn BNNewMediumLevelILFunctionReference(
20277 func: *mut BNMediumLevelILFunction,
20278 ) -> *mut BNMediumLevelILFunction;
20279}
20280unsafe extern "C" {
20281 pub fn BNFreeMediumLevelILFunction(func: *mut BNMediumLevelILFunction);
20282}
20283unsafe extern "C" {
20284 pub fn BNGetMediumLevelILOwnerFunction(func: *mut BNMediumLevelILFunction) -> *mut BNFunction;
20285}
20286unsafe extern "C" {
20287 pub fn BNMediumLevelILGetCurrentAddress(func: *mut BNMediumLevelILFunction) -> u64;
20288}
20289unsafe extern "C" {
20290 pub fn BNMediumLevelILSetCurrentAddress(
20291 func: *mut BNMediumLevelILFunction,
20292 arch: *mut BNArchitecture,
20293 addr: u64,
20294 );
20295}
20296unsafe extern "C" {
20297 pub fn BNMediumLevelILGetInstructionStart(
20298 func: *mut BNMediumLevelILFunction,
20299 arch: *mut BNArchitecture,
20300 addr: u64,
20301 ) -> usize;
20302}
20303unsafe extern "C" {
20304 pub fn BNMediumLevelILAddExpr(
20305 func: *mut BNMediumLevelILFunction,
20306 operation: BNMediumLevelILOperation,
20307 size: usize,
20308 a: u64,
20309 b: u64,
20310 c: u64,
20311 d: u64,
20312 e: u64,
20313 ) -> usize;
20314}
20315unsafe extern "C" {
20316 pub fn BNMediumLevelILAddExprWithLocation(
20317 func: *mut BNMediumLevelILFunction,
20318 operation: BNMediumLevelILOperation,
20319 addr: u64,
20320 sourceOperand: u32,
20321 size: usize,
20322 a: u64,
20323 b: u64,
20324 c: u64,
20325 d: u64,
20326 e: u64,
20327 ) -> usize;
20328}
20329unsafe extern "C" {
20330 pub fn BNMediumLevelILAddInstruction(func: *mut BNMediumLevelILFunction, expr: usize) -> usize;
20331}
20332unsafe extern "C" {
20333 pub fn BNMediumLevelILGoto(
20334 func: *mut BNMediumLevelILFunction,
20335 label: *mut BNMediumLevelILLabel,
20336 ) -> usize;
20337}
20338unsafe extern "C" {
20339 pub fn BNMediumLevelILGotoWithLocation(
20340 func: *mut BNMediumLevelILFunction,
20341 label: *mut BNMediumLevelILLabel,
20342 addr: u64,
20343 sourceOperand: u32,
20344 ) -> usize;
20345}
20346unsafe extern "C" {
20347 pub fn BNMediumLevelILIf(
20348 func: *mut BNMediumLevelILFunction,
20349 op: u64,
20350 t: *mut BNMediumLevelILLabel,
20351 f: *mut BNMediumLevelILLabel,
20352 ) -> usize;
20353}
20354unsafe extern "C" {
20355 pub fn BNMediumLevelILIfWithLocation(
20356 func: *mut BNMediumLevelILFunction,
20357 op: u64,
20358 t: *mut BNMediumLevelILLabel,
20359 f: *mut BNMediumLevelILLabel,
20360 addr: u64,
20361 sourceOperand: u32,
20362 ) -> usize;
20363}
20364unsafe extern "C" {
20365 pub fn BNMediumLevelILInitLabel(label: *mut BNMediumLevelILLabel);
20366}
20367unsafe extern "C" {
20368 pub fn BNMediumLevelILMarkLabel(
20369 func: *mut BNMediumLevelILFunction,
20370 label: *mut BNMediumLevelILLabel,
20371 );
20372}
20373unsafe extern "C" {
20374 pub fn BNFinalizeMediumLevelILFunction(func: *mut BNMediumLevelILFunction);
20375}
20376unsafe extern "C" {
20377 pub fn BNGenerateMediumLevelILSSAForm(
20378 func: *mut BNMediumLevelILFunction,
20379 analyzeConditionals: bool,
20380 handleAliases: bool,
20381 knownNotAliases: *mut BNVariable,
20382 knownNotAliasCount: usize,
20383 knownAliases: *mut BNVariable,
20384 knownAliasCount: usize,
20385 );
20386}
20387unsafe extern "C" {
20388 pub fn BNPrepareToCopyMediumLevelILFunction(
20389 func: *mut BNMediumLevelILFunction,
20390 src: *mut BNMediumLevelILFunction,
20391 );
20392}
20393unsafe extern "C" {
20394 pub fn BNPrepareToCopyMediumLevelILBasicBlock(
20395 func: *mut BNMediumLevelILFunction,
20396 block: *mut BNBasicBlock,
20397 );
20398}
20399unsafe extern "C" {
20400 pub fn BNGetLabelForMediumLevelILSourceInstruction(
20401 func: *mut BNMediumLevelILFunction,
20402 instr: usize,
20403 ) -> *mut BNMediumLevelILLabel;
20404}
20405unsafe extern "C" {
20406 pub fn BNMediumLevelILAddLabelMap(
20407 func: *mut BNMediumLevelILFunction,
20408 values: *mut u64,
20409 labels: *mut *mut BNMediumLevelILLabel,
20410 count: usize,
20411 ) -> usize;
20412}
20413unsafe extern "C" {
20414 pub fn BNMediumLevelILAddOperandList(
20415 func: *mut BNMediumLevelILFunction,
20416 operands: *mut u64,
20417 count: usize,
20418 ) -> usize;
20419}
20420unsafe extern "C" {
20421 pub fn BNMediumLevelILGetOperandList(
20422 func: *mut BNMediumLevelILFunction,
20423 expr: usize,
20424 operand: usize,
20425 count: *mut usize,
20426 ) -> *mut u64;
20427}
20428unsafe extern "C" {
20429 pub fn BNMediumLevelILFreeOperandList(operands: *mut u64);
20430}
20431unsafe extern "C" {
20432 pub fn BNMediumLevelILGetOperand(func: *mut BNMediumLevelILFunction, offset: usize) -> u64;
20433}
20434unsafe extern "C" {
20435 pub fn BNCacheMediumLevelILPossibleValueSet(
20436 func: *mut BNMediumLevelILFunction,
20437 pvs: *mut BNPossibleValueSet,
20438 ) -> usize;
20439}
20440unsafe extern "C" {
20441 pub fn BNGetCachedMediumLevelILPossibleValueSet(
20442 func: *mut BNMediumLevelILFunction,
20443 idx: usize,
20444 ) -> BNPossibleValueSet;
20445}
20446unsafe extern "C" {
20447 pub fn BNGetMediumLevelILByIndex(
20448 func: *mut BNMediumLevelILFunction,
20449 i: usize,
20450 ) -> BNMediumLevelILInstruction;
20451}
20452unsafe extern "C" {
20453 pub fn BNGetMediumLevelILIndexForInstruction(
20454 func: *mut BNMediumLevelILFunction,
20455 i: usize,
20456 ) -> usize;
20457}
20458unsafe extern "C" {
20459 pub fn BNGetMediumLevelILInstructionForExpr(
20460 func: *mut BNMediumLevelILFunction,
20461 expr: usize,
20462 ) -> usize;
20463}
20464unsafe extern "C" {
20465 pub fn BNGetMediumLevelILInstructionCount(func: *mut BNMediumLevelILFunction) -> usize;
20466}
20467unsafe extern "C" {
20468 pub fn BNGetMediumLevelILExprCount(func: *mut BNMediumLevelILFunction) -> usize;
20469}
20470unsafe extern "C" {
20471 pub fn BNUpdateMediumLevelILOperand(
20472 func: *mut BNMediumLevelILFunction,
20473 instr: usize,
20474 operandIndex: usize,
20475 value: u64,
20476 );
20477}
20478unsafe extern "C" {
20479 pub fn BNMarkMediumLevelILInstructionForRemoval(
20480 func: *mut BNMediumLevelILFunction,
20481 instr: usize,
20482 );
20483}
20484unsafe extern "C" {
20485 pub fn BNReplaceMediumLevelILInstruction(
20486 func: *mut BNMediumLevelILFunction,
20487 instr: usize,
20488 expr: usize,
20489 );
20490}
20491unsafe extern "C" {
20492 pub fn BNReplaceMediumLevelILExpr(
20493 func: *mut BNMediumLevelILFunction,
20494 expr: usize,
20495 newExpr: usize,
20496 );
20497}
20498unsafe extern "C" {
20499 pub fn BNSetMediumLevelILExprAttributes(
20500 func: *mut BNMediumLevelILFunction,
20501 expr: usize,
20502 attributes: u32,
20503 );
20504}
20505unsafe extern "C" {
20506 pub fn BNGetMediumLevelILExprText(
20507 func: *mut BNMediumLevelILFunction,
20508 arch: *mut BNArchitecture,
20509 i: usize,
20510 tokens: *mut *mut BNInstructionTextToken,
20511 count: *mut usize,
20512 settings: *mut BNDisassemblySettings,
20513 ) -> bool;
20514}
20515unsafe extern "C" {
20516 pub fn BNGetMediumLevelILInstructionText(
20517 il: *mut BNMediumLevelILFunction,
20518 func: *mut BNFunction,
20519 arch: *mut BNArchitecture,
20520 i: usize,
20521 tokens: *mut *mut BNInstructionTextToken,
20522 count: *mut usize,
20523 settings: *mut BNDisassemblySettings,
20524 ) -> bool;
20525}
20526unsafe extern "C" {
20527 pub fn BNGetMediumLevelILBasicBlockList(
20528 func: *mut BNMediumLevelILFunction,
20529 count: *mut usize,
20530 ) -> *mut *mut BNBasicBlock;
20531}
20532unsafe extern "C" {
20533 pub fn BNGetMediumLevelILBasicBlockForInstruction(
20534 func: *mut BNMediumLevelILFunction,
20535 i: usize,
20536 ) -> *mut BNBasicBlock;
20537}
20538unsafe extern "C" {
20539 pub fn BNGetMediumLevelILSSAForm(
20540 func: *mut BNMediumLevelILFunction,
20541 ) -> *mut BNMediumLevelILFunction;
20542}
20543unsafe extern "C" {
20544 pub fn BNGetMediumLevelILNonSSAForm(
20545 func: *mut BNMediumLevelILFunction,
20546 ) -> *mut BNMediumLevelILFunction;
20547}
20548unsafe extern "C" {
20549 pub fn BNGetMediumLevelILSSAInstructionIndex(
20550 func: *mut BNMediumLevelILFunction,
20551 instr: usize,
20552 ) -> usize;
20553}
20554unsafe extern "C" {
20555 pub fn BNGetMediumLevelILNonSSAInstructionIndex(
20556 func: *mut BNMediumLevelILFunction,
20557 instr: usize,
20558 ) -> usize;
20559}
20560unsafe extern "C" {
20561 pub fn BNGetMediumLevelILSSAExprIndex(func: *mut BNMediumLevelILFunction, expr: usize)
20562 -> usize;
20563}
20564unsafe extern "C" {
20565 pub fn BNGetMediumLevelILNonSSAExprIndex(
20566 func: *mut BNMediumLevelILFunction,
20567 expr: usize,
20568 ) -> usize;
20569}
20570unsafe extern "C" {
20571 pub fn BNGetMediumLevelILSSAVarDefinition(
20572 func: *mut BNMediumLevelILFunction,
20573 var: *const BNVariable,
20574 version: usize,
20575 ) -> usize;
20576}
20577unsafe extern "C" {
20578 pub fn BNGetMediumLevelILSSAMemoryDefinition(
20579 func: *mut BNMediumLevelILFunction,
20580 version: usize,
20581 ) -> usize;
20582}
20583unsafe extern "C" {
20584 pub fn BNGetMediumLevelILSSAVarUses(
20585 func: *mut BNMediumLevelILFunction,
20586 var: *const BNVariable,
20587 version: usize,
20588 count: *mut usize,
20589 ) -> *mut usize;
20590}
20591unsafe extern "C" {
20592 pub fn BNGetMediumLevelILSSAMemoryUses(
20593 func: *mut BNMediumLevelILFunction,
20594 version: usize,
20595 count: *mut usize,
20596 ) -> *mut usize;
20597}
20598unsafe extern "C" {
20599 pub fn BNIsMediumLevelILSSAVarLive(
20600 func: *mut BNMediumLevelILFunction,
20601 var: *const BNVariable,
20602 version: usize,
20603 ) -> bool;
20604}
20605unsafe extern "C" {
20606 pub fn BNIsMediumLevelILSSAVarLiveAt(
20607 func: *mut BNMediumLevelILFunction,
20608 var: *const BNVariable,
20609 version: usize,
20610 instr: usize,
20611 ) -> bool;
20612}
20613unsafe extern "C" {
20614 pub fn BNIsMediumLevelILVarLiveAt(
20615 func: *mut BNMediumLevelILFunction,
20616 var: *const BNVariable,
20617 instr: usize,
20618 ) -> bool;
20619}
20620unsafe extern "C" {
20621 pub fn BNGetMediumLevelILVariables(
20622 func: *mut BNMediumLevelILFunction,
20623 count: *mut usize,
20624 ) -> *mut BNVariable;
20625}
20626unsafe extern "C" {
20627 pub fn BNGetMediumLevelILAliasedVariables(
20628 func: *mut BNMediumLevelILFunction,
20629 count: *mut usize,
20630 ) -> *mut BNVariable;
20631}
20632unsafe extern "C" {
20633 pub fn BNGetMediumLevelILVariableSSAVersions(
20634 func: *mut BNMediumLevelILFunction,
20635 var: *const BNVariable,
20636 count: *mut usize,
20637 ) -> *mut usize;
20638}
20639unsafe extern "C" {
20640 pub fn BNGetMediumLevelILVariableDefinitions(
20641 func: *mut BNMediumLevelILFunction,
20642 var: *const BNVariable,
20643 count: *mut usize,
20644 ) -> *mut usize;
20645}
20646unsafe extern "C" {
20647 pub fn BNGetMediumLevelILVariableUses(
20648 func: *mut BNMediumLevelILFunction,
20649 var: *const BNVariable,
20650 count: *mut usize,
20651 ) -> *mut usize;
20652}
20653unsafe extern "C" {
20654 pub fn BNGetMediumLevelILLiveInstructionsForVariable(
20655 func: *mut BNMediumLevelILFunction,
20656 var: *const BNVariable,
20657 includeLastUse: bool,
20658 count: *mut usize,
20659 ) -> *mut usize;
20660}
20661unsafe extern "C" {
20662 pub fn BNGetDefaultIndexForMediumLevelILVariableDefinition(
20663 func: *mut BNMediumLevelILFunction,
20664 var: *const BNVariable,
20665 instrIndex: usize,
20666 ) -> u32;
20667}
20668unsafe extern "C" {
20669 pub fn BNGetMediumLevelILSSAVarValue(
20670 func: *mut BNMediumLevelILFunction,
20671 var: *const BNVariable,
20672 version: usize,
20673 ) -> BNRegisterValue;
20674}
20675unsafe extern "C" {
20676 pub fn BNGetMediumLevelILExprValue(
20677 func: *mut BNMediumLevelILFunction,
20678 expr: usize,
20679 ) -> BNRegisterValue;
20680}
20681unsafe extern "C" {
20682 pub fn BNGetMediumLevelILPossibleSSAVarValues(
20683 func: *mut BNMediumLevelILFunction,
20684 var: *const BNVariable,
20685 version: usize,
20686 instr: usize,
20687 options: *mut BNDataFlowQueryOption,
20688 optionCount: usize,
20689 ) -> BNPossibleValueSet;
20690}
20691unsafe extern "C" {
20692 pub fn BNGetMediumLevelILPossibleExprValues(
20693 func: *mut BNMediumLevelILFunction,
20694 expr: usize,
20695 options: *mut BNDataFlowQueryOption,
20696 optionCount: usize,
20697 ) -> BNPossibleValueSet;
20698}
20699unsafe extern "C" {
20700 pub fn BNGetMediumLevelILSSAVarVersionAtILInstruction(
20701 func: *mut BNMediumLevelILFunction,
20702 var: *const BNVariable,
20703 instr: usize,
20704 ) -> usize;
20705}
20706unsafe extern "C" {
20707 pub fn BNGetMediumLevelILSSAVarVersionAfterILInstruction(
20708 func: *mut BNMediumLevelILFunction,
20709 var: *const BNVariable,
20710 instr: usize,
20711 ) -> usize;
20712}
20713unsafe extern "C" {
20714 pub fn BNGetMediumLevelILSSAMemoryVersionAtILInstruction(
20715 func: *mut BNMediumLevelILFunction,
20716 instr: usize,
20717 ) -> usize;
20718}
20719unsafe extern "C" {
20720 pub fn BNGetMediumLevelILSSAMemoryVersionAfterILInstruction(
20721 func: *mut BNMediumLevelILFunction,
20722 instr: usize,
20723 ) -> usize;
20724}
20725unsafe extern "C" {
20726 pub fn BNGetMediumLevelILVariableForRegisterAtInstruction(
20727 func: *mut BNMediumLevelILFunction,
20728 reg: u32,
20729 instr: usize,
20730 ) -> BNVariable;
20731}
20732unsafe extern "C" {
20733 pub fn BNGetMediumLevelILVariableForRegisterAfterInstruction(
20734 func: *mut BNMediumLevelILFunction,
20735 reg: u32,
20736 instr: usize,
20737 ) -> BNVariable;
20738}
20739unsafe extern "C" {
20740 pub fn BNGetMediumLevelILVariableForFlagAtInstruction(
20741 func: *mut BNMediumLevelILFunction,
20742 flag: u32,
20743 instr: usize,
20744 ) -> BNVariable;
20745}
20746unsafe extern "C" {
20747 pub fn BNGetMediumLevelILVariableForFlagAfterInstruction(
20748 func: *mut BNMediumLevelILFunction,
20749 flag: u32,
20750 instr: usize,
20751 ) -> BNVariable;
20752}
20753unsafe extern "C" {
20754 pub fn BNGetMediumLevelILVariableForStackLocationAtInstruction(
20755 func: *mut BNMediumLevelILFunction,
20756 offset: i64,
20757 instr: usize,
20758 ) -> BNVariable;
20759}
20760unsafe extern "C" {
20761 pub fn BNGetMediumLevelILVariableForStackLocationAfterInstruction(
20762 func: *mut BNMediumLevelILFunction,
20763 offset: i64,
20764 instr: usize,
20765 ) -> BNVariable;
20766}
20767unsafe extern "C" {
20768 pub fn BNGetMediumLevelILRegisterValueAtInstruction(
20769 func: *mut BNMediumLevelILFunction,
20770 reg: u32,
20771 instr: usize,
20772 ) -> BNRegisterValue;
20773}
20774unsafe extern "C" {
20775 pub fn BNGetMediumLevelILRegisterValueAfterInstruction(
20776 func: *mut BNMediumLevelILFunction,
20777 reg: u32,
20778 instr: usize,
20779 ) -> BNRegisterValue;
20780}
20781unsafe extern "C" {
20782 pub fn BNGetMediumLevelILPossibleRegisterValuesAtInstruction(
20783 func: *mut BNMediumLevelILFunction,
20784 reg: u32,
20785 instr: usize,
20786 options: *mut BNDataFlowQueryOption,
20787 optionCount: usize,
20788 ) -> BNPossibleValueSet;
20789}
20790unsafe extern "C" {
20791 pub fn BNGetMediumLevelILPossibleRegisterValuesAfterInstruction(
20792 func: *mut BNMediumLevelILFunction,
20793 reg: u32,
20794 instr: usize,
20795 options: *mut BNDataFlowQueryOption,
20796 optionCount: usize,
20797 ) -> BNPossibleValueSet;
20798}
20799unsafe extern "C" {
20800 pub fn BNGetMediumLevelILFlagValueAtInstruction(
20801 func: *mut BNMediumLevelILFunction,
20802 flag: u32,
20803 instr: usize,
20804 ) -> BNRegisterValue;
20805}
20806unsafe extern "C" {
20807 pub fn BNGetMediumLevelILFlagValueAfterInstruction(
20808 func: *mut BNMediumLevelILFunction,
20809 flag: u32,
20810 instr: usize,
20811 ) -> BNRegisterValue;
20812}
20813unsafe extern "C" {
20814 pub fn BNGetMediumLevelILPossibleFlagValuesAtInstruction(
20815 func: *mut BNMediumLevelILFunction,
20816 flag: u32,
20817 instr: usize,
20818 options: *mut BNDataFlowQueryOption,
20819 optionCount: usize,
20820 ) -> BNPossibleValueSet;
20821}
20822unsafe extern "C" {
20823 pub fn BNGetMediumLevelILPossibleFlagValuesAfterInstruction(
20824 func: *mut BNMediumLevelILFunction,
20825 flag: u32,
20826 instr: usize,
20827 options: *mut BNDataFlowQueryOption,
20828 optionCount: usize,
20829 ) -> BNPossibleValueSet;
20830}
20831unsafe extern "C" {
20832 pub fn BNGetMediumLevelILStackContentsAtInstruction(
20833 func: *mut BNMediumLevelILFunction,
20834 offset: i64,
20835 len: usize,
20836 instr: usize,
20837 ) -> BNRegisterValue;
20838}
20839unsafe extern "C" {
20840 pub fn BNGetMediumLevelILStackContentsAfterInstruction(
20841 func: *mut BNMediumLevelILFunction,
20842 offset: i64,
20843 len: usize,
20844 instr: usize,
20845 ) -> BNRegisterValue;
20846}
20847unsafe extern "C" {
20848 pub fn BNGetMediumLevelILPossibleStackContentsAtInstruction(
20849 func: *mut BNMediumLevelILFunction,
20850 offset: i64,
20851 len: usize,
20852 instr: usize,
20853 options: *mut BNDataFlowQueryOption,
20854 optionCount: usize,
20855 ) -> BNPossibleValueSet;
20856}
20857unsafe extern "C" {
20858 pub fn BNGetMediumLevelILPossibleStackContentsAfterInstruction(
20859 func: *mut BNMediumLevelILFunction,
20860 offset: i64,
20861 len: usize,
20862 instr: usize,
20863 options: *mut BNDataFlowQueryOption,
20864 optionCount: usize,
20865 ) -> BNPossibleValueSet;
20866}
20867unsafe extern "C" {
20868 pub fn BNGetMediumLevelILBranchDependence(
20869 func: *mut BNMediumLevelILFunction,
20870 curInstr: usize,
20871 branchInstr: usize,
20872 ) -> BNILBranchDependence;
20873}
20874unsafe extern "C" {
20875 pub fn BNGetAllMediumLevelILBranchDependence(
20876 func: *mut BNMediumLevelILFunction,
20877 instr: usize,
20878 count: *mut usize,
20879 ) -> *mut BNILBranchInstructionAndDependence;
20880}
20881unsafe extern "C" {
20882 pub fn BNFreeILBranchDependenceList(branches: *mut BNILBranchInstructionAndDependence);
20883}
20884unsafe extern "C" {
20885 pub fn BNGetLowLevelILForMediumLevelIL(
20886 func: *mut BNMediumLevelILFunction,
20887 ) -> *mut BNLowLevelILFunction;
20888}
20889unsafe extern "C" {
20890 pub fn BNGetLowLevelILInstructionIndex(
20891 func: *mut BNMediumLevelILFunction,
20892 instr: usize,
20893 ) -> usize;
20894}
20895unsafe extern "C" {
20896 pub fn BNGetLowLevelILExprIndex(func: *mut BNMediumLevelILFunction, expr: usize) -> usize;
20897}
20898unsafe extern "C" {
20899 pub fn BNGetLowLevelILExprIndexes(
20900 func: *mut BNMediumLevelILFunction,
20901 expr: usize,
20902 count: *mut usize,
20903 ) -> *mut usize;
20904}
20905unsafe extern "C" {
20906 pub fn BNGetHighLevelILForMediumLevelIL(
20907 func: *mut BNMediumLevelILFunction,
20908 ) -> *mut BNHighLevelILFunction;
20909}
20910unsafe extern "C" {
20911 pub fn BNGetHighLevelILInstructionIndex(
20912 func: *mut BNMediumLevelILFunction,
20913 instr: usize,
20914 ) -> usize;
20915}
20916unsafe extern "C" {
20917 pub fn BNGetHighLevelILExprIndex(func: *mut BNMediumLevelILFunction, expr: usize) -> usize;
20918}
20919unsafe extern "C" {
20920 pub fn BNGetHighLevelILExprIndexes(
20921 func: *mut BNMediumLevelILFunction,
20922 expr: usize,
20923 count: *mut usize,
20924 ) -> *mut usize;
20925}
20926unsafe extern "C" {
20927 pub fn BNGetMediumLevelILExprType(
20928 func: *mut BNMediumLevelILFunction,
20929 expr: usize,
20930 ) -> BNTypeWithConfidence;
20931}
20932unsafe extern "C" {
20933 pub fn BNSetMediumLevelILExprType(
20934 func: *mut BNMediumLevelILFunction,
20935 expr: usize,
20936 type_: *mut BNTypeWithConfidence,
20937 );
20938}
20939unsafe extern "C" {
20940 #[doc = " High-level IL"]
20941 pub fn BNCreateHighLevelILFunction(
20942 arch: *mut BNArchitecture,
20943 func: *mut BNFunction,
20944 ) -> *mut BNHighLevelILFunction;
20945}
20946unsafe extern "C" {
20947 pub fn BNNewHighLevelILFunctionReference(
20948 func: *mut BNHighLevelILFunction,
20949 ) -> *mut BNHighLevelILFunction;
20950}
20951unsafe extern "C" {
20952 pub fn BNFreeHighLevelILFunction(func: *mut BNHighLevelILFunction);
20953}
20954unsafe extern "C" {
20955 pub fn BNGetHighLevelILOwnerFunction(func: *mut BNHighLevelILFunction) -> *mut BNFunction;
20956}
20957unsafe extern "C" {
20958 pub fn BNHighLevelILGetCurrentAddress(func: *mut BNHighLevelILFunction) -> u64;
20959}
20960unsafe extern "C" {
20961 pub fn BNHighLevelILSetCurrentAddress(
20962 func: *mut BNHighLevelILFunction,
20963 arch: *mut BNArchitecture,
20964 addr: u64,
20965 );
20966}
20967unsafe extern "C" {
20968 pub fn BNHighLevelILAddExpr(
20969 func: *mut BNHighLevelILFunction,
20970 operation: BNHighLevelILOperation,
20971 size: usize,
20972 a: u64,
20973 b: u64,
20974 c: u64,
20975 d: u64,
20976 e: u64,
20977 ) -> usize;
20978}
20979unsafe extern "C" {
20980 pub fn BNHighLevelILAddExprWithLocation(
20981 func: *mut BNHighLevelILFunction,
20982 operation: BNHighLevelILOperation,
20983 addr: u64,
20984 sourceOperand: u32,
20985 size: usize,
20986 a: u64,
20987 b: u64,
20988 c: u64,
20989 d: u64,
20990 e: u64,
20991 ) -> usize;
20992}
20993unsafe extern "C" {
20994 pub fn BNGetHighLevelILRootExpr(func: *mut BNHighLevelILFunction) -> usize;
20995}
20996unsafe extern "C" {
20997 pub fn BNSetHighLevelILRootExpr(func: *mut BNHighLevelILFunction, expr: usize);
20998}
20999unsafe extern "C" {
21000 pub fn BNFinalizeHighLevelILFunction(func: *mut BNHighLevelILFunction);
21001}
21002unsafe extern "C" {
21003 pub fn BNGenerateHighLevelILSSAForm(
21004 func: *mut BNHighLevelILFunction,
21005 aliases: *mut BNVariable,
21006 aliasCount: usize,
21007 );
21008}
21009unsafe extern "C" {
21010 pub fn BNHighLevelILAddOperandList(
21011 func: *mut BNHighLevelILFunction,
21012 operands: *mut u64,
21013 count: usize,
21014 ) -> usize;
21015}
21016unsafe extern "C" {
21017 pub fn BNHighLevelILGetOperandList(
21018 func: *mut BNHighLevelILFunction,
21019 expr: usize,
21020 operand: usize,
21021 count: *mut usize,
21022 ) -> *mut u64;
21023}
21024unsafe extern "C" {
21025 pub fn BNHighLevelILFreeOperandList(operands: *mut u64);
21026}
21027unsafe extern "C" {
21028 pub fn BNHighLevelILGetOperand(func: *mut BNHighLevelILFunction, offset: usize) -> u64;
21029}
21030unsafe extern "C" {
21031 pub fn BNCacheHighLevelILPossibleValueSet(
21032 func: *mut BNHighLevelILFunction,
21033 pvs: *mut BNPossibleValueSet,
21034 ) -> usize;
21035}
21036unsafe extern "C" {
21037 pub fn BNGetCachedHighLevelILPossibleValueSet(
21038 func: *mut BNHighLevelILFunction,
21039 idx: usize,
21040 ) -> BNPossibleValueSet;
21041}
21042unsafe extern "C" {
21043 pub fn BNGetHighLevelILByIndex(
21044 func: *mut BNHighLevelILFunction,
21045 i: usize,
21046 asFullAst: bool,
21047 ) -> BNHighLevelILInstruction;
21048}
21049unsafe extern "C" {
21050 pub fn BNGetHighLevelILIndexForInstruction(func: *mut BNHighLevelILFunction, i: usize)
21051 -> usize;
21052}
21053unsafe extern "C" {
21054 pub fn BNGetHighLevelILInstructionForExpr(
21055 func: *mut BNHighLevelILFunction,
21056 expr: usize,
21057 ) -> usize;
21058}
21059unsafe extern "C" {
21060 pub fn BNGetHighLevelILInstructionCount(func: *mut BNHighLevelILFunction) -> usize;
21061}
21062unsafe extern "C" {
21063 pub fn BNGetHighLevelILExprCount(func: *mut BNHighLevelILFunction) -> usize;
21064}
21065unsafe extern "C" {
21066 pub fn BNGetMediumLevelILForHighLevelILFunction(
21067 func: *mut BNHighLevelILFunction,
21068 ) -> *mut BNMediumLevelILFunction;
21069}
21070unsafe extern "C" {
21071 pub fn BNGetMediumLevelILExprIndexFromHighLevelIL(
21072 func: *mut BNHighLevelILFunction,
21073 expr: usize,
21074 ) -> usize;
21075}
21076unsafe extern "C" {
21077 pub fn BNGetMediumLevelILExprIndexesFromHighLevelIL(
21078 func: *mut BNHighLevelILFunction,
21079 expr: usize,
21080 count: *mut usize,
21081 ) -> *mut usize;
21082}
21083unsafe extern "C" {
21084 pub fn BNUpdateHighLevelILOperand(
21085 func: *mut BNHighLevelILFunction,
21086 instr: usize,
21087 operandIndex: usize,
21088 value: u64,
21089 );
21090}
21091unsafe extern "C" {
21092 pub fn BNReplaceHighLevelILExpr(func: *mut BNHighLevelILFunction, expr: usize, newExpr: usize);
21093}
21094unsafe extern "C" {
21095 pub fn BNSetHighLevelILExprAttributes(
21096 func: *mut BNHighLevelILFunction,
21097 expr: usize,
21098 attributes: u32,
21099 );
21100}
21101unsafe extern "C" {
21102 pub fn BNGetHighLevelILExprText(
21103 func: *mut BNHighLevelILFunction,
21104 expr: usize,
21105 asFullAst: bool,
21106 count: *mut usize,
21107 settings: *mut BNDisassemblySettings,
21108 ) -> *mut BNDisassemblyTextLine;
21109}
21110unsafe extern "C" {
21111 pub fn BNGetHighLevelILExprType(
21112 func: *mut BNHighLevelILFunction,
21113 expr: usize,
21114 ) -> BNTypeWithConfidence;
21115}
21116unsafe extern "C" {
21117 pub fn BNSetHighLevelILExprType(
21118 func: *mut BNHighLevelILFunction,
21119 expr: usize,
21120 type_: *mut BNTypeWithConfidence,
21121 );
21122}
21123unsafe extern "C" {
21124 pub fn BNGetHighLevelILBasicBlockList(
21125 func: *mut BNHighLevelILFunction,
21126 count: *mut usize,
21127 ) -> *mut *mut BNBasicBlock;
21128}
21129unsafe extern "C" {
21130 pub fn BNGetHighLevelILBasicBlockForInstruction(
21131 func: *mut BNHighLevelILFunction,
21132 i: usize,
21133 ) -> *mut BNBasicBlock;
21134}
21135unsafe extern "C" {
21136 pub fn BNGetHighLevelILSSAForm(func: *mut BNHighLevelILFunction) -> *mut BNHighLevelILFunction;
21137}
21138unsafe extern "C" {
21139 pub fn BNGetHighLevelILNonSSAForm(
21140 func: *mut BNHighLevelILFunction,
21141 ) -> *mut BNHighLevelILFunction;
21142}
21143unsafe extern "C" {
21144 pub fn BNGetHighLevelILSSAInstructionIndex(
21145 func: *mut BNHighLevelILFunction,
21146 instr: usize,
21147 ) -> usize;
21148}
21149unsafe extern "C" {
21150 pub fn BNGetHighLevelILNonSSAInstructionIndex(
21151 func: *mut BNHighLevelILFunction,
21152 instr: usize,
21153 ) -> usize;
21154}
21155unsafe extern "C" {
21156 pub fn BNGetHighLevelILSSAExprIndex(func: *mut BNHighLevelILFunction, expr: usize) -> usize;
21157}
21158unsafe extern "C" {
21159 pub fn BNGetHighLevelILNonSSAExprIndex(func: *mut BNHighLevelILFunction, expr: usize) -> usize;
21160}
21161unsafe extern "C" {
21162 pub fn BNGetHighLevelILSSAVarDefinition(
21163 func: *mut BNHighLevelILFunction,
21164 var: *const BNVariable,
21165 version: usize,
21166 ) -> usize;
21167}
21168unsafe extern "C" {
21169 pub fn BNGetHighLevelILSSAMemoryDefinition(
21170 func: *mut BNHighLevelILFunction,
21171 version: usize,
21172 ) -> usize;
21173}
21174unsafe extern "C" {
21175 pub fn BNGetHighLevelILSSAVarUses(
21176 func: *mut BNHighLevelILFunction,
21177 var: *const BNVariable,
21178 version: usize,
21179 count: *mut usize,
21180 ) -> *mut usize;
21181}
21182unsafe extern "C" {
21183 pub fn BNGetHighLevelILSSAMemoryUses(
21184 func: *mut BNHighLevelILFunction,
21185 version: usize,
21186 count: *mut usize,
21187 ) -> *mut usize;
21188}
21189unsafe extern "C" {
21190 pub fn BNIsHighLevelILSSAVarLive(
21191 func: *mut BNHighLevelILFunction,
21192 var: *const BNVariable,
21193 version: usize,
21194 ) -> bool;
21195}
21196unsafe extern "C" {
21197 pub fn BNIsHighLevelILSSAVarLiveAt(
21198 func: *mut BNHighLevelILFunction,
21199 var: *const BNVariable,
21200 version: usize,
21201 instr: usize,
21202 ) -> bool;
21203}
21204unsafe extern "C" {
21205 pub fn BNIsHighLevelILVarLiveAt(
21206 func: *mut BNHighLevelILFunction,
21207 var: *const BNVariable,
21208 instr: usize,
21209 ) -> bool;
21210}
21211unsafe extern "C" {
21212 pub fn BNHighLevelILHasSideEffects(func: *mut BNHighLevelILFunction, exprIndex: usize) -> bool;
21213}
21214unsafe extern "C" {
21215 pub fn BNGetHighLevelILExprScopeType(
21216 func: *mut BNHighLevelILFunction,
21217 exprIndex: usize,
21218 ) -> BNScopeType;
21219}
21220unsafe extern "C" {
21221 pub fn BNGetHighLevelILVariables(
21222 func: *mut BNHighLevelILFunction,
21223 count: *mut usize,
21224 ) -> *mut BNVariable;
21225}
21226unsafe extern "C" {
21227 pub fn BNGetHighLevelILAliasedVariables(
21228 func: *mut BNHighLevelILFunction,
21229 count: *mut usize,
21230 ) -> *mut BNVariable;
21231}
21232unsafe extern "C" {
21233 pub fn BNGetHighLevelILVariableSSAVersions(
21234 func: *mut BNHighLevelILFunction,
21235 var: *const BNVariable,
21236 count: *mut usize,
21237 ) -> *mut usize;
21238}
21239unsafe extern "C" {
21240 pub fn BNGetHighLevelILVariableDefinitions(
21241 func: *mut BNHighLevelILFunction,
21242 var: *const BNVariable,
21243 count: *mut usize,
21244 ) -> *mut usize;
21245}
21246unsafe extern "C" {
21247 pub fn BNGetHighLevelILVariableUses(
21248 func: *mut BNHighLevelILFunction,
21249 var: *const BNVariable,
21250 count: *mut usize,
21251 ) -> *mut usize;
21252}
21253unsafe extern "C" {
21254 pub fn BNGetHighLevelILSSAVarVersionAtILInstruction(
21255 func: *mut BNHighLevelILFunction,
21256 var: *const BNVariable,
21257 instr: usize,
21258 ) -> usize;
21259}
21260unsafe extern "C" {
21261 pub fn BNGetHighLevelILSSAMemoryVersionAtILInstruction(
21262 func: *mut BNHighLevelILFunction,
21263 instr: usize,
21264 ) -> usize;
21265}
21266unsafe extern "C" {
21267 pub fn BNGetHighLevelILExprIndexForLabel(func: *mut BNHighLevelILFunction, label: u64)
21268 -> usize;
21269}
21270unsafe extern "C" {
21271 pub fn BNGetHighLevelILUsesForLabel(
21272 func: *mut BNHighLevelILFunction,
21273 label: u64,
21274 count: *mut usize,
21275 ) -> *mut usize;
21276}
21277unsafe extern "C" {
21278 pub fn BNHighLevelILExprLessThan(
21279 leftFunc: *mut BNHighLevelILFunction,
21280 leftExpr: usize,
21281 rightFunc: *mut BNHighLevelILFunction,
21282 rightExpr: usize,
21283 ) -> bool;
21284}
21285unsafe extern "C" {
21286 pub fn BNHighLevelILExprEqual(
21287 leftFunc: *mut BNHighLevelILFunction,
21288 leftExpr: usize,
21289 rightFunc: *mut BNHighLevelILFunction,
21290 rightExpr: usize,
21291 ) -> bool;
21292}
21293unsafe extern "C" {
21294 pub fn BNSetHighLevelILDerivedStringReferenceForExpr(
21295 func: *mut BNHighLevelILFunction,
21296 expr: usize,
21297 str_: *mut BNDerivedString,
21298 );
21299}
21300unsafe extern "C" {
21301 pub fn BNRemoveHighLevelILDerivedStringReferenceForExpr(
21302 func: *mut BNHighLevelILFunction,
21303 expr: usize,
21304 );
21305}
21306unsafe extern "C" {
21307 pub fn BNGetHighLevelILDerivedStringReferenceForExpr(
21308 func: *mut BNHighLevelILFunction,
21309 expr: usize,
21310 out: *mut BNDerivedString,
21311 ) -> bool;
21312}
21313unsafe extern "C" {
21314 #[doc = " Type Libraries"]
21315 pub fn BNNewTypeLibrary(
21316 arch: *mut BNArchitecture,
21317 name: *const ::std::os::raw::c_char,
21318 ) -> *mut BNTypeLibrary;
21319}
21320unsafe extern "C" {
21321 pub fn BNNewTypeLibraryReference(lib: *mut BNTypeLibrary) -> *mut BNTypeLibrary;
21322}
21323unsafe extern "C" {
21324 pub fn BNDuplicateTypeLibrary(lib: *mut BNTypeLibrary) -> *mut BNTypeLibrary;
21325}
21326unsafe extern "C" {
21327 pub fn BNLoadTypeLibraryFromFile(path: *const ::std::os::raw::c_char) -> *mut BNTypeLibrary;
21328}
21329unsafe extern "C" {
21330 pub fn BNTypeLibraryDecompressToFile(
21331 lib: *mut BNTypeLibrary,
21332 output: *const ::std::os::raw::c_char,
21333 ) -> bool;
21334}
21335unsafe extern "C" {
21336 pub fn BNFreeTypeLibrary(lib: *mut BNTypeLibrary);
21337}
21338unsafe extern "C" {
21339 pub fn BNLookupTypeLibraryByName(
21340 arch: *mut BNArchitecture,
21341 name: *const ::std::os::raw::c_char,
21342 ) -> *mut BNTypeLibrary;
21343}
21344unsafe extern "C" {
21345 pub fn BNLookupTypeLibraryByGuid(
21346 arch: *mut BNArchitecture,
21347 guid: *const ::std::os::raw::c_char,
21348 ) -> *mut BNTypeLibrary;
21349}
21350unsafe extern "C" {
21351 pub fn BNGetArchitectureTypeLibraries(
21352 arch: *mut BNArchitecture,
21353 count: *mut usize,
21354 ) -> *mut *mut BNTypeLibrary;
21355}
21356unsafe extern "C" {
21357 pub fn BNFreeTypeLibraryList(lib: *mut *mut BNTypeLibrary, count: usize);
21358}
21359unsafe extern "C" {
21360 pub fn BNFinalizeTypeLibrary(lib: *mut BNTypeLibrary) -> bool;
21361}
21362unsafe extern "C" {
21363 pub fn BNRegisterTypeLibrary(lib: *mut BNTypeLibrary);
21364}
21365unsafe extern "C" {
21366 pub fn BNGetTypeLibraryArchitecture(lib: *mut BNTypeLibrary) -> *mut BNArchitecture;
21367}
21368unsafe extern "C" {
21369 pub fn BNSetTypeLibraryName(lib: *mut BNTypeLibrary, name: *const ::std::os::raw::c_char);
21370}
21371unsafe extern "C" {
21372 pub fn BNGetTypeLibraryName(lib: *mut BNTypeLibrary) -> *mut ::std::os::raw::c_char;
21373}
21374unsafe extern "C" {
21375 pub fn BNAddTypeLibraryAlternateName(
21376 lib: *mut BNTypeLibrary,
21377 name: *const ::std::os::raw::c_char,
21378 );
21379}
21380unsafe extern "C" {
21381 pub fn BNGetTypeLibraryAlternateNames(
21382 lib: *mut BNTypeLibrary,
21383 count: *mut usize,
21384 ) -> *mut *mut ::std::os::raw::c_char;
21385}
21386unsafe extern "C" {
21387 pub fn BNSetTypeLibraryDependencyName(
21388 lib: *mut BNTypeLibrary,
21389 name: *const ::std::os::raw::c_char,
21390 );
21391}
21392unsafe extern "C" {
21393 pub fn BNGetTypeLibraryDependencyName(lib: *mut BNTypeLibrary) -> *mut ::std::os::raw::c_char;
21394}
21395unsafe extern "C" {
21396 pub fn BNSetTypeLibraryGuid(lib: *mut BNTypeLibrary, name: *const ::std::os::raw::c_char);
21397}
21398unsafe extern "C" {
21399 pub fn BNGetTypeLibraryGuid(lib: *mut BNTypeLibrary) -> *mut ::std::os::raw::c_char;
21400}
21401unsafe extern "C" {
21402 pub fn BNClearTypeLibraryPlatforms(lib: *mut BNTypeLibrary);
21403}
21404unsafe extern "C" {
21405 pub fn BNAddTypeLibraryPlatform(lib: *mut BNTypeLibrary, platform: *mut BNPlatform);
21406}
21407unsafe extern "C" {
21408 pub fn BNGetTypeLibraryPlatforms(
21409 lib: *mut BNTypeLibrary,
21410 count: *mut usize,
21411 ) -> *mut *mut ::std::os::raw::c_char;
21412}
21413unsafe extern "C" {
21414 pub fn BNTypeLibraryStoreMetadata(
21415 lib: *mut BNTypeLibrary,
21416 key: *const ::std::os::raw::c_char,
21417 value: *mut BNMetadata,
21418 );
21419}
21420unsafe extern "C" {
21421 pub fn BNTypeLibraryQueryMetadata(
21422 lib: *mut BNTypeLibrary,
21423 key: *const ::std::os::raw::c_char,
21424 ) -> *mut BNMetadata;
21425}
21426unsafe extern "C" {
21427 pub fn BNTypeLibraryGetMetadata(lib: *mut BNTypeLibrary) -> *mut BNMetadata;
21428}
21429unsafe extern "C" {
21430 pub fn BNTypeLibraryRemoveMetadata(lib: *mut BNTypeLibrary, key: *const ::std::os::raw::c_char);
21431}
21432unsafe extern "C" {
21433 pub fn BNGetTypeLibraryTypeContainer(lib: *mut BNTypeLibrary) -> *mut BNTypeContainer;
21434}
21435unsafe extern "C" {
21436 pub fn BNAddTypeLibraryNamedObject(
21437 lib: *mut BNTypeLibrary,
21438 name: *mut BNQualifiedName,
21439 type_: *mut BNType,
21440 );
21441}
21442unsafe extern "C" {
21443 pub fn BNRemoveTypeLibraryNamedObject(lib: *mut BNTypeLibrary, name: *mut BNQualifiedName);
21444}
21445unsafe extern "C" {
21446 pub fn BNAddTypeLibraryNamedType(
21447 lib: *mut BNTypeLibrary,
21448 name: *mut BNQualifiedName,
21449 type_: *mut BNType,
21450 );
21451}
21452unsafe extern "C" {
21453 pub fn BNRemoveTypeLibraryNamedType(lib: *mut BNTypeLibrary, name: *mut BNQualifiedName);
21454}
21455unsafe extern "C" {
21456 pub fn BNAddTypeLibraryNamedTypeSource(
21457 lib: *mut BNTypeLibrary,
21458 name: *mut BNQualifiedName,
21459 source: *const ::std::os::raw::c_char,
21460 );
21461}
21462unsafe extern "C" {
21463 pub fn BNGetTypeLibraryNamedObject(
21464 lib: *mut BNTypeLibrary,
21465 name: *mut BNQualifiedName,
21466 ) -> *mut BNType;
21467}
21468unsafe extern "C" {
21469 pub fn BNGetTypeLibraryNamedType(
21470 lib: *mut BNTypeLibrary,
21471 name: *mut BNQualifiedName,
21472 ) -> *mut BNType;
21473}
21474unsafe extern "C" {
21475 pub fn BNGetTypeLibraryNamedTypeSource(
21476 lib: *mut BNTypeLibrary,
21477 name: *mut BNQualifiedName,
21478 ) -> *mut ::std::os::raw::c_char;
21479}
21480unsafe extern "C" {
21481 pub fn BNGetTypeLibraryNamedObjects(
21482 lib: *mut BNTypeLibrary,
21483 count: *mut usize,
21484 ) -> *mut BNQualifiedNameAndType;
21485}
21486unsafe extern "C" {
21487 pub fn BNGetTypeLibraryNamedTypes(
21488 lib: *mut BNTypeLibrary,
21489 count: *mut usize,
21490 ) -> *mut BNQualifiedNameAndType;
21491}
21492unsafe extern "C" {
21493 pub fn BNWriteTypeLibraryToFile(
21494 lib: *mut BNTypeLibrary,
21495 path: *const ::std::os::raw::c_char,
21496 ) -> bool;
21497}
21498unsafe extern "C" {
21499 pub fn BNAddBinaryViewTypeLibrary(view: *mut BNBinaryView, lib: *mut BNTypeLibrary);
21500}
21501unsafe extern "C" {
21502 pub fn BNGetBinaryViewTypeLibrary(
21503 view: *mut BNBinaryView,
21504 name: *const ::std::os::raw::c_char,
21505 ) -> *mut BNTypeLibrary;
21506}
21507unsafe extern "C" {
21508 pub fn BNGetBinaryViewTypeLibraries(
21509 view: *mut BNBinaryView,
21510 count: *mut usize,
21511 ) -> *mut *mut BNTypeLibrary;
21512}
21513unsafe extern "C" {
21514 pub fn BNBinaryViewImportTypeLibraryType(
21515 view: *mut BNBinaryView,
21516 lib: *mut *mut BNTypeLibrary,
21517 name: *mut BNQualifiedName,
21518 ) -> *mut BNType;
21519}
21520unsafe extern "C" {
21521 pub fn BNBinaryViewImportTypeLibraryObject(
21522 view: *mut BNBinaryView,
21523 lib: *mut *mut BNTypeLibrary,
21524 name: *mut BNQualifiedName,
21525 ) -> *mut BNType;
21526}
21527unsafe extern "C" {
21528 pub fn BNBinaryViewImportTypeLibraryTypeByGuid(
21529 view: *mut BNBinaryView,
21530 guid: *const ::std::os::raw::c_char,
21531 ) -> *mut BNType;
21532}
21533unsafe extern "C" {
21534 pub fn BNBinaryViewGetTypeNameByGuid(
21535 view: *mut BNBinaryView,
21536 guid: *const ::std::os::raw::c_char,
21537 ) -> BNQualifiedName;
21538}
21539unsafe extern "C" {
21540 pub fn BNBinaryViewExportTypeToTypeLibrary(
21541 view: *mut BNBinaryView,
21542 lib: *mut BNTypeLibrary,
21543 name: *mut BNQualifiedName,
21544 type_: *mut BNType,
21545 );
21546}
21547unsafe extern "C" {
21548 pub fn BNBinaryViewExportObjectToTypeLibrary(
21549 view: *mut BNBinaryView,
21550 lib: *mut BNTypeLibrary,
21551 name: *mut BNQualifiedName,
21552 type_: *mut BNType,
21553 );
21554}
21555unsafe extern "C" {
21556 pub fn BNBinaryViewSetManualDependencies(
21557 view: *mut BNBinaryView,
21558 viewTypeNames: *mut BNQualifiedName,
21559 libTypeNames: *mut BNQualifiedName,
21560 libNames: *mut *mut ::std::os::raw::c_char,
21561 count: usize,
21562 );
21563}
21564unsafe extern "C" {
21565 pub fn BNBinaryViewRecordImportedObjectLibrary(
21566 view: *mut BNBinaryView,
21567 tgtPlatform: *mut BNPlatform,
21568 tgtAddr: u64,
21569 lib: *mut BNTypeLibrary,
21570 name: *mut BNQualifiedName,
21571 );
21572}
21573unsafe extern "C" {
21574 pub fn BNBinaryViewLookupImportedObjectLibrary(
21575 view: *mut BNBinaryView,
21576 tgtPlatform: *mut BNPlatform,
21577 tgtAddr: u64,
21578 lib: *mut *mut BNTypeLibrary,
21579 name: *mut BNQualifiedName,
21580 ) -> bool;
21581}
21582unsafe extern "C" {
21583 pub fn BNBinaryViewLookupImportedTypeLibrary(
21584 view: *mut BNBinaryView,
21585 typeName: *const BNQualifiedName,
21586 lib: *mut *mut BNTypeLibrary,
21587 resultName: *mut BNQualifiedName,
21588 ) -> bool;
21589}
21590unsafe extern "C" {
21591 #[doc = " Language Representation"]
21592 pub fn BNRegisterLanguageRepresentationFunctionType(
21593 name: *const ::std::os::raw::c_char,
21594 type_: *mut BNCustomLanguageRepresentationFunctionType,
21595 ) -> *mut BNLanguageRepresentationFunctionType;
21596}
21597unsafe extern "C" {
21598 pub fn BNGetLanguageRepresentationFunctionTypeByName(
21599 name: *const ::std::os::raw::c_char,
21600 ) -> *mut BNLanguageRepresentationFunctionType;
21601}
21602unsafe extern "C" {
21603 pub fn BNGetLanguageRepresentationFunctionTypeList(
21604 count: *mut usize,
21605 ) -> *mut *mut BNLanguageRepresentationFunctionType;
21606}
21607unsafe extern "C" {
21608 pub fn BNFreeLanguageRepresentationFunctionTypeList(
21609 types: *mut *mut BNLanguageRepresentationFunctionType,
21610 );
21611}
21612unsafe extern "C" {
21613 pub fn BNGetLanguageRepresentationFunctionTypeName(
21614 type_: *mut BNLanguageRepresentationFunctionType,
21615 ) -> *mut ::std::os::raw::c_char;
21616}
21617unsafe extern "C" {
21618 pub fn BNCreateLanguageRepresentationFunction(
21619 type_: *mut BNLanguageRepresentationFunctionType,
21620 arch: *mut BNArchitecture,
21621 func: *mut BNFunction,
21622 highLevelIL: *mut BNHighLevelILFunction,
21623 ) -> *mut BNLanguageRepresentationFunction;
21624}
21625unsafe extern "C" {
21626 pub fn BNIsLanguageRepresentationFunctionTypeValid(
21627 type_: *mut BNLanguageRepresentationFunctionType,
21628 view: *mut BNBinaryView,
21629 ) -> bool;
21630}
21631unsafe extern "C" {
21632 pub fn BNGetLanguageRepresentationFunctionTypePrinter(
21633 type_: *mut BNLanguageRepresentationFunctionType,
21634 ) -> *mut BNTypePrinter;
21635}
21636unsafe extern "C" {
21637 pub fn BNGetLanguageRepresentationFunctionTypeParser(
21638 type_: *mut BNLanguageRepresentationFunctionType,
21639 ) -> *mut BNTypeParser;
21640}
21641unsafe extern "C" {
21642 pub fn BNGetLanguageRepresentationFunctionTypeLineFormatter(
21643 type_: *mut BNLanguageRepresentationFunctionType,
21644 ) -> *mut BNLineFormatter;
21645}
21646unsafe extern "C" {
21647 pub fn BNGetLanguageRepresentationFunctionTypeFunctionTypeTokens(
21648 type_: *mut BNLanguageRepresentationFunctionType,
21649 func: *mut BNFunction,
21650 settings: *mut BNDisassemblySettings,
21651 count: *mut usize,
21652 ) -> *mut BNDisassemblyTextLine;
21653}
21654unsafe extern "C" {
21655 pub fn BNCreateCustomLanguageRepresentationFunction(
21656 type_: *mut BNLanguageRepresentationFunctionType,
21657 arch: *mut BNArchitecture,
21658 func: *mut BNFunction,
21659 highLevelIL: *mut BNHighLevelILFunction,
21660 callbacks: *mut BNCustomLanguageRepresentationFunction,
21661 ) -> *mut BNLanguageRepresentationFunction;
21662}
21663unsafe extern "C" {
21664 pub fn BNNewLanguageRepresentationFunctionReference(
21665 func: *mut BNLanguageRepresentationFunction,
21666 ) -> *mut BNLanguageRepresentationFunction;
21667}
21668unsafe extern "C" {
21669 pub fn BNFreeLanguageRepresentationFunction(func: *mut BNLanguageRepresentationFunction);
21670}
21671unsafe extern "C" {
21672 pub fn BNGetLanguageRepresentationType(
21673 func: *mut BNLanguageRepresentationFunction,
21674 ) -> *mut BNLanguageRepresentationFunctionType;
21675}
21676unsafe extern "C" {
21677 pub fn BNGetLanguageRepresentationArchitecture(
21678 func: *mut BNLanguageRepresentationFunction,
21679 ) -> *mut BNArchitecture;
21680}
21681unsafe extern "C" {
21682 pub fn BNGetLanguageRepresentationOwnerFunction(
21683 func: *mut BNLanguageRepresentationFunction,
21684 ) -> *mut BNFunction;
21685}
21686unsafe extern "C" {
21687 pub fn BNGetLanguageRepresentationILFunction(
21688 func: *mut BNLanguageRepresentationFunction,
21689 ) -> *mut BNHighLevelILFunction;
21690}
21691unsafe extern "C" {
21692 pub fn BNGetLanguageRepresentationFunctionExprText(
21693 func: *mut BNLanguageRepresentationFunction,
21694 il: *mut BNHighLevelILFunction,
21695 exprIndex: usize,
21696 settings: *mut BNDisassemblySettings,
21697 asFullAst: bool,
21698 precedence: BNOperatorPrecedence,
21699 statement: bool,
21700 count: *mut usize,
21701 ) -> *mut BNDisassemblyTextLine;
21702}
21703unsafe extern "C" {
21704 pub fn BNGetLanguageRepresentationFunctionLinearLines(
21705 func: *mut BNLanguageRepresentationFunction,
21706 il: *mut BNHighLevelILFunction,
21707 exprIndex: usize,
21708 settings: *mut BNDisassemblySettings,
21709 asFullAst: bool,
21710 count: *mut usize,
21711 ) -> *mut BNDisassemblyTextLine;
21712}
21713unsafe extern "C" {
21714 pub fn BNGetLanguageRepresentationFunctionBlockLines(
21715 func: *mut BNLanguageRepresentationFunction,
21716 block: *mut BNBasicBlock,
21717 settings: *mut BNDisassemblySettings,
21718 count: *mut usize,
21719 ) -> *mut BNDisassemblyTextLine;
21720}
21721unsafe extern "C" {
21722 pub fn BNGetLanguageRepresentationFunctionHighlight(
21723 func: *mut BNLanguageRepresentationFunction,
21724 block: *mut BNBasicBlock,
21725 ) -> BNHighlightColor;
21726}
21727unsafe extern "C" {
21728 pub fn BNGetLanguageRepresentationFunctionCommentStartString(
21729 func: *mut BNLanguageRepresentationFunction,
21730 ) -> *mut ::std::os::raw::c_char;
21731}
21732unsafe extern "C" {
21733 pub fn BNGetLanguageRepresentationFunctionCommentEndString(
21734 func: *mut BNLanguageRepresentationFunction,
21735 ) -> *mut ::std::os::raw::c_char;
21736}
21737unsafe extern "C" {
21738 pub fn BNGetLanguageRepresentationFunctionAnnotationStartString(
21739 func: *mut BNLanguageRepresentationFunction,
21740 ) -> *mut ::std::os::raw::c_char;
21741}
21742unsafe extern "C" {
21743 pub fn BNGetLanguageRepresentationFunctionAnnotationEndString(
21744 func: *mut BNLanguageRepresentationFunction,
21745 ) -> *mut ::std::os::raw::c_char;
21746}
21747unsafe extern "C" {
21748 pub fn BNNewFieldResolutionInfoReference(
21749 info: *mut BNFieldResolutionInfo,
21750 ) -> *mut BNFieldResolutionInfo;
21751}
21752unsafe extern "C" {
21753 pub fn BNFreeFieldResolutionInfo(info: *mut BNFieldResolutionInfo);
21754}
21755unsafe extern "C" {
21756 #[doc = " Types"]
21757 pub fn BNTypesEqual(a: *mut BNType, b: *mut BNType) -> bool;
21758}
21759unsafe extern "C" {
21760 pub fn BNTypesNotEqual(a: *mut BNType, b: *mut BNType) -> bool;
21761}
21762unsafe extern "C" {
21763 pub fn BNCreateVoidType() -> *mut BNType;
21764}
21765unsafe extern "C" {
21766 pub fn BNCreateBoolType() -> *mut BNType;
21767}
21768unsafe extern "C" {
21769 pub fn BNCreateIntegerType(
21770 width: usize,
21771 sign: *mut BNBoolWithConfidence,
21772 altName: *const ::std::os::raw::c_char,
21773 ) -> *mut BNType;
21774}
21775unsafe extern "C" {
21776 pub fn BNCreateFloatType(width: usize, altName: *const ::std::os::raw::c_char) -> *mut BNType;
21777}
21778unsafe extern "C" {
21779 pub fn BNCreateWideCharType(
21780 width: usize,
21781 altName: *const ::std::os::raw::c_char,
21782 ) -> *mut BNType;
21783}
21784unsafe extern "C" {
21785 pub fn BNCreateStructureType(s: *mut BNStructure) -> *mut BNType;
21786}
21787unsafe extern "C" {
21788 pub fn BNCreateEnumerationType(
21789 arch: *mut BNArchitecture,
21790 e: *mut BNEnumeration,
21791 width: usize,
21792 isSigned: *mut BNBoolWithConfidence,
21793 ) -> *mut BNType;
21794}
21795unsafe extern "C" {
21796 pub fn BNCreateEnumerationTypeOfWidth(
21797 e: *mut BNEnumeration,
21798 width: usize,
21799 isSigned: *mut BNBoolWithConfidence,
21800 ) -> *mut BNType;
21801}
21802unsafe extern "C" {
21803 pub fn BNCreatePointerType(
21804 arch: *mut BNArchitecture,
21805 type_: *const BNTypeWithConfidence,
21806 cnst: *mut BNBoolWithConfidence,
21807 vltl: *mut BNBoolWithConfidence,
21808 refType: BNReferenceType,
21809 ) -> *mut BNType;
21810}
21811unsafe extern "C" {
21812 pub fn BNCreatePointerTypeOfWidth(
21813 width: usize,
21814 type_: *const BNTypeWithConfidence,
21815 cnst: *mut BNBoolWithConfidence,
21816 vltl: *mut BNBoolWithConfidence,
21817 refType: BNReferenceType,
21818 ) -> *mut BNType;
21819}
21820unsafe extern "C" {
21821 pub fn BNCreateFragmentType(
21822 width: usize,
21823 type_: *const BNTypeWithConfidence,
21824 offset: u64,
21825 endianness: BNEndianness,
21826 ) -> *mut BNType;
21827}
21828unsafe extern "C" {
21829 pub fn BNCreateFragmentTypeBits(
21830 width: usize,
21831 type_: *const BNTypeWithConfidence,
21832 originalFragmentOffsetBytes: u64,
21833 originalFragmentWidthBytes: usize,
21834 endianness: BNEndianness,
21835 fragmentStartBit: usize,
21836 fragmentWidthBits: usize,
21837 fragmentTruncatedStartBits: usize,
21838 wrapBit: usize,
21839 ) -> *mut BNType;
21840}
21841unsafe extern "C" {
21842 pub fn BNCreateArrayType(type_: *const BNTypeWithConfidence, elem: u64) -> *mut BNType;
21843}
21844unsafe extern "C" {
21845 pub fn BNCreateFunctionType(
21846 returnValue: *mut BNReturnValue,
21847 callingConvention: *mut BNCallingConventionWithConfidence,
21848 params: *mut BNFunctionParameter,
21849 paramCount: usize,
21850 varArg: *mut BNBoolWithConfidence,
21851 canReturn: *mut BNBoolWithConfidence,
21852 stackAdjust: *mut BNOffsetWithConfidence,
21853 regStackAdjustRegs: *mut u32,
21854 regStackAdjustValues: *mut BNOffsetWithConfidence,
21855 regStackAdjustCount: usize,
21856 ft: BNNameType,
21857 pure_: *mut BNBoolWithConfidence,
21858 ) -> *mut BNType;
21859}
21860unsafe extern "C" {
21861 pub fn BNCreateVarArgsType() -> *mut BNType;
21862}
21863unsafe extern "C" {
21864 pub fn BNCreateValueType(value: *const ::std::os::raw::c_char) -> *mut BNType;
21865}
21866unsafe extern "C" {
21867 pub fn BNGetNameTypeString(classFunctionType: BNNameType) -> *mut ::std::os::raw::c_char;
21868}
21869unsafe extern "C" {
21870 pub fn BNNewTypeReference(type_: *mut BNType) -> *mut BNType;
21871}
21872unsafe extern "C" {
21873 pub fn BNDuplicateType(type_: *mut BNType) -> *mut BNType;
21874}
21875unsafe extern "C" {
21876 pub fn BNGetTypeAndName(
21877 type_: *mut BNType,
21878 name: *mut BNQualifiedName,
21879 escaping: BNTokenEscapingType,
21880 ) -> *mut ::std::os::raw::c_char;
21881}
21882unsafe extern "C" {
21883 pub fn BNFreeType(type_: *mut BNType);
21884}
21885unsafe extern "C" {
21886 pub fn BNFreeTypeList(types: *mut *mut BNType, count: usize);
21887}
21888unsafe extern "C" {
21889 pub fn BNTypeSetIgnored(type_: *mut BNType, ignored: bool) -> *mut BNType;
21890}
21891unsafe extern "C" {
21892 pub fn BNCreateTypeBuilderFromType(type_: *mut BNType) -> *mut BNTypeBuilder;
21893}
21894unsafe extern "C" {
21895 pub fn BNCreateVoidTypeBuilder() -> *mut BNTypeBuilder;
21896}
21897unsafe extern "C" {
21898 pub fn BNCreateBoolTypeBuilder() -> *mut BNTypeBuilder;
21899}
21900unsafe extern "C" {
21901 pub fn BNCreateIntegerTypeBuilder(
21902 width: usize,
21903 sign: *mut BNBoolWithConfidence,
21904 altName: *const ::std::os::raw::c_char,
21905 ) -> *mut BNTypeBuilder;
21906}
21907unsafe extern "C" {
21908 pub fn BNCreateFloatTypeBuilder(
21909 width: usize,
21910 altName: *const ::std::os::raw::c_char,
21911 ) -> *mut BNTypeBuilder;
21912}
21913unsafe extern "C" {
21914 pub fn BNCreateWideCharTypeBuilder(
21915 width: usize,
21916 altName: *const ::std::os::raw::c_char,
21917 ) -> *mut BNTypeBuilder;
21918}
21919unsafe extern "C" {
21920 pub fn BNCreateStructureTypeBuilder(s: *mut BNStructure) -> *mut BNTypeBuilder;
21921}
21922unsafe extern "C" {
21923 pub fn BNCreateStructureTypeBuilderWithBuilder(
21924 s: *mut BNStructureBuilder,
21925 ) -> *mut BNTypeBuilder;
21926}
21927unsafe extern "C" {
21928 pub fn BNCreateEnumerationTypeBuilder(
21929 arch: *mut BNArchitecture,
21930 e: *mut BNEnumeration,
21931 width: usize,
21932 isSigned: *mut BNBoolWithConfidence,
21933 ) -> *mut BNTypeBuilder;
21934}
21935unsafe extern "C" {
21936 pub fn BNCreateEnumerationTypeBuilderWithBuilder(
21937 arch: *mut BNArchitecture,
21938 e: *mut BNEnumerationBuilder,
21939 width: usize,
21940 isSigned: *mut BNBoolWithConfidence,
21941 ) -> *mut BNTypeBuilder;
21942}
21943unsafe extern "C" {
21944 pub fn BNCreatePointerTypeBuilder(
21945 arch: *mut BNArchitecture,
21946 type_: *const BNTypeWithConfidence,
21947 cnst: *mut BNBoolWithConfidence,
21948 vltl: *mut BNBoolWithConfidence,
21949 refType: BNReferenceType,
21950 ) -> *mut BNTypeBuilder;
21951}
21952unsafe extern "C" {
21953 pub fn BNCreatePointerTypeBuilderOfWidth(
21954 width: usize,
21955 type_: *const BNTypeWithConfidence,
21956 cnst: *mut BNBoolWithConfidence,
21957 vltl: *mut BNBoolWithConfidence,
21958 refType: BNReferenceType,
21959 ) -> *mut BNTypeBuilder;
21960}
21961unsafe extern "C" {
21962 pub fn BNCreateFragmentTypeBuilder(
21963 width: usize,
21964 type_: *const BNTypeWithConfidence,
21965 offset: u64,
21966 endianness: BNEndianness,
21967 ) -> *mut BNTypeBuilder;
21968}
21969unsafe extern "C" {
21970 pub fn BNCreateFragmentTypeBuilderBits(
21971 width: usize,
21972 type_: *const BNTypeWithConfidence,
21973 originalFragmentOffsetBytes: u64,
21974 originalFragmentWidthBytes: usize,
21975 endianness: BNEndianness,
21976 fragmentStartBit: usize,
21977 fragmentWidthBits: usize,
21978 fragmentTruncatedStartBits: usize,
21979 wrapBit: usize,
21980 ) -> *mut BNTypeBuilder;
21981}
21982unsafe extern "C" {
21983 pub fn BNCreateArrayTypeBuilder(
21984 type_: *const BNTypeWithConfidence,
21985 elem: u64,
21986 ) -> *mut BNTypeBuilder;
21987}
21988unsafe extern "C" {
21989 pub fn BNCreateFunctionTypeBuilder(
21990 returnValue: *mut BNReturnValue,
21991 callingConvention: *mut BNCallingConventionWithConfidence,
21992 params: *mut BNFunctionParameter,
21993 paramCount: usize,
21994 varArg: *mut BNBoolWithConfidence,
21995 canReturn: *mut BNBoolWithConfidence,
21996 stackAdjust: *mut BNOffsetWithConfidence,
21997 regStackAdjustRegs: *mut u32,
21998 regStackAdjustValues: *mut BNOffsetWithConfidence,
21999 regStackAdjustCount: usize,
22000 ft: BNNameType,
22001 pure_: *mut BNBoolWithConfidence,
22002 ) -> *mut BNTypeBuilder;
22003}
22004unsafe extern "C" {
22005 pub fn BNCreateVarArgsTypeBuilder() -> *mut BNTypeBuilder;
22006}
22007unsafe extern "C" {
22008 pub fn BNCreateValueTypeBuilder(value: *const ::std::os::raw::c_char) -> *mut BNTypeBuilder;
22009}
22010unsafe extern "C" {
22011 pub fn BNFinalizeTypeBuilder(type_: *mut BNTypeBuilder) -> *mut BNType;
22012}
22013unsafe extern "C" {
22014 pub fn BNDuplicateTypeBuilder(type_: *mut BNTypeBuilder) -> *mut BNTypeBuilder;
22015}
22016unsafe extern "C" {
22017 pub fn BNGetTypeBuilderTypeAndName(
22018 type_: *mut BNTypeBuilder,
22019 name: *mut BNQualifiedName,
22020 ) -> *mut ::std::os::raw::c_char;
22021}
22022unsafe extern "C" {
22023 pub fn BNFreeTypeBuilder(type_: *mut BNTypeBuilder);
22024}
22025unsafe extern "C" {
22026 pub fn BNTypeGetTypeName(nt: *mut BNType) -> BNQualifiedName;
22027}
22028unsafe extern "C" {
22029 pub fn BNGetTypeClass(type_: *mut BNType) -> BNTypeClass;
22030}
22031unsafe extern "C" {
22032 pub fn BNGetTypeWidth(type_: *mut BNType) -> u64;
22033}
22034unsafe extern "C" {
22035 pub fn BNGetTypeAlignment(type_: *mut BNType) -> usize;
22036}
22037unsafe extern "C" {
22038 pub fn BNGetIntegerTypeDisplayType(type_: *mut BNType) -> BNIntegerDisplayType;
22039}
22040unsafe extern "C" {
22041 pub fn BNSetIntegerTypeDisplayType(
22042 type_: *mut BNTypeBuilder,
22043 displayType: BNIntegerDisplayType,
22044 );
22045}
22046unsafe extern "C" {
22047 pub fn BNIsTypeSigned(type_: *mut BNType) -> BNBoolWithConfidence;
22048}
22049unsafe extern "C" {
22050 pub fn BNIsTypeConst(type_: *mut BNType) -> BNBoolWithConfidence;
22051}
22052unsafe extern "C" {
22053 pub fn BNIsTypeVolatile(type_: *mut BNType) -> BNBoolWithConfidence;
22054}
22055unsafe extern "C" {
22056 pub fn BNIsTypeFloatingPoint(type_: *mut BNType) -> bool;
22057}
22058unsafe extern "C" {
22059 pub fn BNGetChildType(type_: *mut BNType) -> BNTypeWithConfidence;
22060}
22061unsafe extern "C" {
22062 pub fn BNGetTypeReturnValue(type_: *mut BNType) -> BNReturnValue;
22063}
22064unsafe extern "C" {
22065 pub fn BNIsTypeReturnValueDefaultLocation(type_: *mut BNType) -> bool;
22066}
22067unsafe extern "C" {
22068 pub fn BNGetTypeReturnValueLocation(type_: *mut BNType) -> BNValueLocationWithConfidence;
22069}
22070unsafe extern "C" {
22071 pub fn BNParseValueLocation(
22072 str_: *const ::std::os::raw::c_char,
22073 arch: *mut BNArchitecture,
22074 location: *mut BNValueLocation,
22075 error: *mut *mut ::std::os::raw::c_char,
22076 ) -> bool;
22077}
22078unsafe extern "C" {
22079 pub fn BNValueLocationToString(
22080 location: *mut BNValueLocation,
22081 arch: *mut BNArchitecture,
22082 ) -> *mut ::std::os::raw::c_char;
22083}
22084unsafe extern "C" {
22085 pub fn BNValueLocationComponentToString(
22086 component: *mut BNValueLocationComponent,
22087 arch: *mut BNArchitecture,
22088 ) -> *mut ::std::os::raw::c_char;
22089}
22090unsafe extern "C" {
22091 pub fn BNFreeValueLocation(location: *mut BNValueLocation);
22092}
22093unsafe extern "C" {
22094 pub fn BNGetTypeCallingConvention(type_: *mut BNType) -> BNCallingConventionWithConfidence;
22095}
22096unsafe extern "C" {
22097 pub fn BNGetTypeCallingConventionName(type_: *mut BNType) -> BNCallingConventionName;
22098}
22099unsafe extern "C" {
22100 pub fn BNGetTypeParameters(type_: *mut BNType, count: *mut usize) -> *mut BNFunctionParameter;
22101}
22102unsafe extern "C" {
22103 pub fn BNFreeTypeParameterList(types: *mut BNFunctionParameter, count: usize);
22104}
22105unsafe extern "C" {
22106 pub fn BNTypeHasVariableArguments(type_: *mut BNType) -> BNBoolWithConfidence;
22107}
22108unsafe extern "C" {
22109 pub fn BNTypeHasTemplateArguments(type_: *mut BNType) -> bool;
22110}
22111unsafe extern "C" {
22112 pub fn BNFunctionTypeCanReturn(type_: *mut BNType) -> BNBoolWithConfidence;
22113}
22114unsafe extern "C" {
22115 pub fn BNIsTypePure(type_: *mut BNType) -> BNBoolWithConfidence;
22116}
22117unsafe extern "C" {
22118 pub fn BNGetTypeStructure(type_: *mut BNType) -> *mut BNStructure;
22119}
22120unsafe extern "C" {
22121 pub fn BNGetTypeEnumeration(type_: *mut BNType) -> *mut BNEnumeration;
22122}
22123unsafe extern "C" {
22124 pub fn BNGetTypeNamedTypeReference(type_: *mut BNType) -> *mut BNNamedTypeReference;
22125}
22126unsafe extern "C" {
22127 pub fn BNGetTypeElementCount(type_: *mut BNType) -> u64;
22128}
22129unsafe extern "C" {
22130 pub fn BNGetTypeOffset(type_: *mut BNType) -> u64;
22131}
22132unsafe extern "C" {
22133 pub fn BNGetTypeFragmentOriginalOffsetBytes(type_: *mut BNType) -> u64;
22134}
22135unsafe extern "C" {
22136 pub fn BNGetTypeFragmentOriginalWidthBytes(type_: *mut BNType) -> usize;
22137}
22138unsafe extern "C" {
22139 pub fn BNGetTypeFragmentStartBit(type_: *mut BNType) -> usize;
22140}
22141unsafe extern "C" {
22142 pub fn BNGetTypeFragmentWidthBits(type_: *mut BNType) -> usize;
22143}
22144unsafe extern "C" {
22145 pub fn BNGetTypeFragmentTruncatedStartBits(type_: *mut BNType) -> usize;
22146}
22147unsafe extern "C" {
22148 pub fn BNGetTypeFragmentWrapBit(type_: *mut BNType) -> usize;
22149}
22150unsafe extern "C" {
22151 pub fn BNGetTypeFragmentEndianness(type_: *mut BNType) -> BNEndianness;
22152}
22153unsafe extern "C" {
22154 pub fn BNGetTypeStackAdjustment(type_: *mut BNType) -> BNOffsetWithConfidence;
22155}
22156unsafe extern "C" {
22157 pub fn BNTypeGetStructureName(type_: *mut BNType) -> BNQualifiedName;
22158}
22159unsafe extern "C" {
22160 pub fn BNGetRegisteredTypeName(type_: *mut BNType) -> *mut BNNamedTypeReference;
22161}
22162unsafe extern "C" {
22163 pub fn BNTypeGetReferenceType(type_: *mut BNType) -> BNReferenceType;
22164}
22165unsafe extern "C" {
22166 pub fn BNTypeGetPointerBaseType(type_: *mut BNType) -> BNPointerBaseType;
22167}
22168unsafe extern "C" {
22169 pub fn BNTypeGetPointerBaseOffset(type_: *mut BNType) -> i64;
22170}
22171unsafe extern "C" {
22172 pub fn BNTypeGetNameType(type_: *mut BNType) -> BNNameType;
22173}
22174unsafe extern "C" {
22175 pub fn BNGetTypeAlternateName(type_: *mut BNType) -> *mut ::std::os::raw::c_char;
22176}
22177unsafe extern "C" {
22178 pub fn BNTypeGetSystemCallNumber(type_: *mut BNType) -> u32;
22179}
22180unsafe extern "C" {
22181 pub fn BNTypeIsSystemCall(type_: *mut BNType) -> bool;
22182}
22183unsafe extern "C" {
22184 pub fn BNGetTypePointerSuffix(type_: *mut BNType, count: *mut usize) -> *mut BNPointerSuffix;
22185}
22186unsafe extern "C" {
22187 pub fn BNGetTypePointerSuffixString(type_: *mut BNType) -> *mut ::std::os::raw::c_char;
22188}
22189unsafe extern "C" {
22190 pub fn BNGetTypePointerSuffixTokens(
22191 type_: *mut BNType,
22192 baseConfidence: u8,
22193 count: *mut usize,
22194 ) -> *mut BNInstructionTextToken;
22195}
22196unsafe extern "C" {
22197 pub fn BNFreePointerSuffixList(suffix: *mut BNPointerSuffix, count: usize);
22198}
22199unsafe extern "C" {
22200 pub fn BNTypeShouldDisplayReturnType(type_: *mut BNType) -> bool;
22201}
22202unsafe extern "C" {
22203 pub fn BNGetTypeAttributes(type_: *mut BNType, count: *mut usize) -> *mut BNTypeAttribute;
22204}
22205unsafe extern "C" {
22206 pub fn BNGetTypeAttributeByName(
22207 type_: *mut BNType,
22208 name: *const ::std::os::raw::c_char,
22209 ) -> *mut ::std::os::raw::c_char;
22210}
22211unsafe extern "C" {
22212 pub fn BNFreeTypeAttributeList(attr: *mut BNTypeAttribute, count: usize);
22213}
22214unsafe extern "C" {
22215 pub fn BNDerefNamedTypeReference(view: *mut BNBinaryView, type_: *mut BNType) -> *mut BNType;
22216}
22217unsafe extern "C" {
22218 pub fn BNGetTypeString(
22219 type_: *mut BNType,
22220 platform: *mut BNPlatform,
22221 escaping: BNTokenEscapingType,
22222 ) -> *mut ::std::os::raw::c_char;
22223}
22224unsafe extern "C" {
22225 pub fn BNGetTypeStringBeforeName(
22226 type_: *mut BNType,
22227 platform: *mut BNPlatform,
22228 escaping: BNTokenEscapingType,
22229 ) -> *mut ::std::os::raw::c_char;
22230}
22231unsafe extern "C" {
22232 pub fn BNGetTypeStringAfterName(
22233 type_: *mut BNType,
22234 platform: *mut BNPlatform,
22235 escaping: BNTokenEscapingType,
22236 ) -> *mut ::std::os::raw::c_char;
22237}
22238unsafe extern "C" {
22239 pub fn BNGetTypeTokens(
22240 type_: *mut BNType,
22241 platform: *mut BNPlatform,
22242 baseConfidence: u8,
22243 escaping: BNTokenEscapingType,
22244 count: *mut usize,
22245 ) -> *mut BNInstructionTextToken;
22246}
22247unsafe extern "C" {
22248 pub fn BNGetTypeTokensBeforeName(
22249 type_: *mut BNType,
22250 platform: *mut BNPlatform,
22251 baseConfidence: u8,
22252 escaping: BNTokenEscapingType,
22253 count: *mut usize,
22254 ) -> *mut BNInstructionTextToken;
22255}
22256unsafe extern "C" {
22257 pub fn BNGetTypeTokensAfterName(
22258 type_: *mut BNType,
22259 platform: *mut BNPlatform,
22260 baseConfidence: u8,
22261 escaping: BNTokenEscapingType,
22262 count: *mut usize,
22263 ) -> *mut BNInstructionTextToken;
22264}
22265unsafe extern "C" {
22266 pub fn BNTypeWithReplacedStructure(
22267 type_: *mut BNType,
22268 from: *mut BNStructure,
22269 to: *mut BNStructure,
22270 ) -> *mut BNType;
22271}
22272unsafe extern "C" {
22273 pub fn BNTypeWithReplacedEnumeration(
22274 type_: *mut BNType,
22275 from: *mut BNEnumeration,
22276 to: *mut BNEnumeration,
22277 ) -> *mut BNType;
22278}
22279unsafe extern "C" {
22280 pub fn BNTypeWithReplacedNamedTypeReference(
22281 type_: *mut BNType,
22282 from: *mut BNNamedTypeReference,
22283 to: *mut BNNamedTypeReference,
22284 ) -> *mut BNType;
22285}
22286unsafe extern "C" {
22287 pub fn BNAddTypeMemberTokens(
22288 type_: *mut BNType,
22289 data: *mut BNBinaryView,
22290 tokens: *mut *mut BNInstructionTextToken,
22291 tokenCount: *mut usize,
22292 offset: i64,
22293 nameList: *mut *mut *mut ::std::os::raw::c_char,
22294 nameCount: *mut usize,
22295 size: usize,
22296 indirect: bool,
22297 info: *mut BNFieldResolutionInfo,
22298 ) -> bool;
22299}
22300unsafe extern "C" {
22301 pub fn BNGetTypeLines(
22302 type_: *mut BNType,
22303 types: *mut BNTypeContainer,
22304 name: *const ::std::os::raw::c_char,
22305 paddingCols: ::std::os::raw::c_int,
22306 collapsed: bool,
22307 escaping: BNTokenEscapingType,
22308 count: *mut usize,
22309 ) -> *mut BNTypeDefinitionLine;
22310}
22311unsafe extern "C" {
22312 pub fn BNFreeTypeDefinitionLineList(list: *mut BNTypeDefinitionLine, count: usize);
22313}
22314unsafe extern "C" {
22315 pub fn BNEnumerateTypesForAccess(
22316 type_: *mut BNType,
22317 data: *mut BNBinaryView,
22318 offset: u64,
22319 size: usize,
22320 baseConfidence: u8,
22321 terminal: ::std::option::Option<
22322 unsafe extern "C" fn(
22323 arg1: *mut ::std::os::raw::c_void,
22324 arg2: *mut BNTypeWithConfidence,
22325 arg3: *mut BNFieldResolutionInfo,
22326 ),
22327 >,
22328 ctxt: *mut ::std::os::raw::c_void,
22329 ) -> bool;
22330}
22331unsafe extern "C" {
22332 pub fn BNTypeBuilderGetTypeName(nt: *mut BNTypeBuilder) -> BNQualifiedName;
22333}
22334unsafe extern "C" {
22335 pub fn BNTypeBuilderSetTypeName(type_: *mut BNTypeBuilder, name: *mut BNQualifiedName);
22336}
22337unsafe extern "C" {
22338 pub fn BNTypeBuilderSetAlternateName(
22339 type_: *mut BNTypeBuilder,
22340 name: *const ::std::os::raw::c_char,
22341 );
22342}
22343unsafe extern "C" {
22344 pub fn BNGetTypeBuilderClass(type_: *mut BNTypeBuilder) -> BNTypeClass;
22345}
22346unsafe extern "C" {
22347 pub fn BNTypeBuilderSetSystemCallNumber(type_: *mut BNTypeBuilder, v: bool, n: u32);
22348}
22349unsafe extern "C" {
22350 pub fn BNGetTypeBuilderWidth(type_: *mut BNTypeBuilder) -> u64;
22351}
22352unsafe extern "C" {
22353 pub fn BNGetTypeBuilderAlignment(type_: *mut BNTypeBuilder) -> usize;
22354}
22355unsafe extern "C" {
22356 pub fn BNIsTypeBuilderSigned(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
22357}
22358unsafe extern "C" {
22359 pub fn BNIsTypeBuilderConst(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
22360}
22361unsafe extern "C" {
22362 pub fn BNIsTypeBuilderVolatile(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
22363}
22364unsafe extern "C" {
22365 pub fn BNIsTypeBuilderFloatingPoint(type_: *mut BNTypeBuilder) -> bool;
22366}
22367unsafe extern "C" {
22368 pub fn BNGetTypeBuilderChildType(type_: *mut BNTypeBuilder) -> BNTypeWithConfidence;
22369}
22370unsafe extern "C" {
22371 pub fn BNGetTypeBuilderReturnValue(type_: *mut BNTypeBuilder) -> BNReturnValue;
22372}
22373unsafe extern "C" {
22374 pub fn BNIsTypeBuilderReturnValueDefaultLocation(type_: *mut BNTypeBuilder) -> bool;
22375}
22376unsafe extern "C" {
22377 pub fn BNGetTypeBuilderReturnValueLocation(
22378 type_: *mut BNTypeBuilder,
22379 ) -> BNValueLocationWithConfidence;
22380}
22381unsafe extern "C" {
22382 pub fn BNGetTypeBuilderCallingConvention(
22383 type_: *mut BNTypeBuilder,
22384 ) -> BNCallingConventionWithConfidence;
22385}
22386unsafe extern "C" {
22387 pub fn BNGetTypeBuilderCallingConventionName(
22388 type_: *mut BNTypeBuilder,
22389 ) -> BNCallingConventionName;
22390}
22391unsafe extern "C" {
22392 pub fn BNGetTypeBuilderParameters(
22393 type_: *mut BNTypeBuilder,
22394 count: *mut usize,
22395 ) -> *mut BNFunctionParameter;
22396}
22397unsafe extern "C" {
22398 pub fn BNTypeBuilderHasVariableArguments(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
22399}
22400unsafe extern "C" {
22401 pub fn BNFunctionTypeBuilderCanReturn(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
22402}
22403unsafe extern "C" {
22404 pub fn BNIsTypeBuilderPure(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
22405}
22406unsafe extern "C" {
22407 pub fn BNGetTypeBuilderStructure(type_: *mut BNTypeBuilder) -> *mut BNStructure;
22408}
22409unsafe extern "C" {
22410 pub fn BNGetTypeBuilderEnumeration(type_: *mut BNTypeBuilder) -> *mut BNEnumeration;
22411}
22412unsafe extern "C" {
22413 pub fn BNGetTypeBuilderNamedTypeReference(
22414 type_: *mut BNTypeBuilder,
22415 ) -> *mut BNNamedTypeReference;
22416}
22417unsafe extern "C" {
22418 pub fn BNSetTypeBuilderNamedTypeReference(
22419 type_: *mut BNTypeBuilder,
22420 ntr: *mut BNNamedTypeReference,
22421 );
22422}
22423unsafe extern "C" {
22424 pub fn BNGetTypeBuilderElementCount(type_: *mut BNTypeBuilder) -> u64;
22425}
22426unsafe extern "C" {
22427 pub fn BNGetTypeBuilderOffset(type_: *mut BNTypeBuilder) -> u64;
22428}
22429unsafe extern "C" {
22430 pub fn BNGetTypeBuilderFragmentOriginalOffsetBytes(type_: *mut BNTypeBuilder) -> u64;
22431}
22432unsafe extern "C" {
22433 pub fn BNGetTypeBuilderFragmentOriginalWidthBytes(type_: *mut BNTypeBuilder) -> usize;
22434}
22435unsafe extern "C" {
22436 pub fn BNGetTypeBuilderFragmentStartBit(type_: *mut BNTypeBuilder) -> usize;
22437}
22438unsafe extern "C" {
22439 pub fn BNGetTypeBuilderFragmentWidthBits(type_: *mut BNTypeBuilder) -> usize;
22440}
22441unsafe extern "C" {
22442 pub fn BNGetTypeBuilderFragmentTruncatedStartBits(type_: *mut BNTypeBuilder) -> usize;
22443}
22444unsafe extern "C" {
22445 pub fn BNGetTypeBuilderFragmentWrapBit(type_: *mut BNTypeBuilder) -> usize;
22446}
22447unsafe extern "C" {
22448 pub fn BNGetTypeBuilderFragmentEndianness(type_: *mut BNTypeBuilder) -> BNEndianness;
22449}
22450unsafe extern "C" {
22451 pub fn BNSetTypeBuilderOffset(type_: *mut BNTypeBuilder, offset: u64);
22452}
22453unsafe extern "C" {
22454 pub fn BNSetTypeBuilderPointerBase(
22455 type_: *mut BNTypeBuilder,
22456 baseType: BNPointerBaseType,
22457 baseOffset: i64,
22458 );
22459}
22460unsafe extern "C" {
22461 pub fn BNSetTypeBuilderFragmentOriginalOffsetBytes(type_: *mut BNTypeBuilder, offset: u64);
22462}
22463unsafe extern "C" {
22464 pub fn BNSetTypeBuilderFragmentOriginalWidthBytes(type_: *mut BNTypeBuilder, size: usize);
22465}
22466unsafe extern "C" {
22467 pub fn BNSetTypeBuilderFragmentStartBit(type_: *mut BNTypeBuilder, startBit: usize);
22468}
22469unsafe extern "C" {
22470 pub fn BNSetTypeBuilderFragmentWidthBits(type_: *mut BNTypeBuilder, widthBits: usize);
22471}
22472unsafe extern "C" {
22473 pub fn BNSetTypeBuilderFragmentTruncatedStartBits(
22474 type_: *mut BNTypeBuilder,
22475 truncatedBits: usize,
22476 );
22477}
22478unsafe extern "C" {
22479 pub fn BNSetTypeBuilderFragmentWrapBit(type_: *mut BNTypeBuilder, wrapBit: usize);
22480}
22481unsafe extern "C" {
22482 pub fn BNSetTypeBuilderFragmentEndianness(type_: *mut BNTypeBuilder, endianness: BNEndianness);
22483}
22484unsafe extern "C" {
22485 pub fn BNSetFunctionTypeBuilderCanReturn(
22486 type_: *mut BNTypeBuilder,
22487 canReturn: *mut BNBoolWithConfidence,
22488 );
22489}
22490unsafe extern "C" {
22491 pub fn BNSetTypeBuilderPure(type_: *mut BNTypeBuilder, pure_: *mut BNBoolWithConfidence);
22492}
22493unsafe extern "C" {
22494 pub fn BNSetFunctionTypeBuilderParameters(
22495 type_: *mut BNTypeBuilder,
22496 params: *mut BNFunctionParameter,
22497 paramCount: usize,
22498 );
22499}
22500unsafe extern "C" {
22501 pub fn BNTypeBuilderSetWidth(type_: *mut BNTypeBuilder, width: usize);
22502}
22503unsafe extern "C" {
22504 pub fn BNTypeBuilderSetAlignment(type_: *mut BNTypeBuilder, alignment: usize);
22505}
22506unsafe extern "C" {
22507 pub fn BNTypeBuilderSetConst(type_: *mut BNTypeBuilder, cnst: *mut BNBoolWithConfidence);
22508}
22509unsafe extern "C" {
22510 pub fn BNTypeBuilderSetVolatile(type_: *mut BNTypeBuilder, vltl: *mut BNBoolWithConfidence);
22511}
22512unsafe extern "C" {
22513 pub fn BNTypeBuilderSetSigned(type_: *mut BNTypeBuilder, sign: *mut BNBoolWithConfidence);
22514}
22515unsafe extern "C" {
22516 pub fn BNTypeBuilderSetChildType(type_: *mut BNTypeBuilder, child: *mut BNTypeWithConfidence);
22517}
22518unsafe extern "C" {
22519 pub fn BNTypeBuilderSetReturnValue(type_: *mut BNTypeBuilder, rv: *mut BNReturnValue);
22520}
22521unsafe extern "C" {
22522 pub fn BNTypeBuilderSetIsReturnValueDefaultLocation(
22523 type_: *mut BNTypeBuilder,
22524 defaultLocation: bool,
22525 );
22526}
22527unsafe extern "C" {
22528 pub fn BNTypeBuilderSetReturnValueLocation(
22529 type_: *mut BNTypeBuilder,
22530 location: *mut BNValueLocationWithConfidence,
22531 );
22532}
22533unsafe extern "C" {
22534 pub fn BNTypeBuilderSetCallingConvention(
22535 type_: *mut BNTypeBuilder,
22536 cc: *mut BNCallingConventionWithConfidence,
22537 );
22538}
22539unsafe extern "C" {
22540 pub fn BNTypeBuilderSetCallingConventionName(
22541 type_: *mut BNTypeBuilder,
22542 cc: BNCallingConventionName,
22543 );
22544}
22545unsafe extern "C" {
22546 pub fn BNGetTypeBuilderStackAdjustment(type_: *mut BNTypeBuilder) -> BNOffsetWithConfidence;
22547}
22548unsafe extern "C" {
22549 pub fn BNTypeBuilderGetStructureName(type_: *mut BNTypeBuilder) -> BNQualifiedName;
22550}
22551unsafe extern "C" {
22552 pub fn BNTypeBuilderGetReferenceType(type_: *mut BNTypeBuilder) -> BNReferenceType;
22553}
22554unsafe extern "C" {
22555 pub fn BNTypeBuilderGetPointerBaseType(type_: *mut BNTypeBuilder) -> BNPointerBaseType;
22556}
22557unsafe extern "C" {
22558 pub fn BNTypeBuilderGetPointerBaseOffset(type_: *mut BNTypeBuilder) -> i64;
22559}
22560unsafe extern "C" {
22561 pub fn BNGetTypeBuilderAlternateName(type_: *mut BNTypeBuilder) -> *mut ::std::os::raw::c_char;
22562}
22563unsafe extern "C" {
22564 pub fn BNTypeBuilderIsSystemCall(type_: *mut BNTypeBuilder) -> bool;
22565}
22566unsafe extern "C" {
22567 pub fn BNTypeBuilderGetSystemCallNumber(type_: *mut BNTypeBuilder) -> u32;
22568}
22569unsafe extern "C" {
22570 pub fn BNTypeBuilderSetStackAdjustment(
22571 type_: *mut BNTypeBuilder,
22572 adjust: *mut BNOffsetWithConfidence,
22573 );
22574}
22575unsafe extern "C" {
22576 pub fn BNGetTypeBuilderPointerSuffix(
22577 type_: *mut BNTypeBuilder,
22578 count: *mut usize,
22579 ) -> *mut BNPointerSuffix;
22580}
22581unsafe extern "C" {
22582 pub fn BNGetTypeBuilderPointerSuffixString(
22583 type_: *mut BNTypeBuilder,
22584 ) -> *mut ::std::os::raw::c_char;
22585}
22586unsafe extern "C" {
22587 pub fn BNGetTypeBuilderPointerSuffixTokens(
22588 type_: *mut BNTypeBuilder,
22589 baseConfidence: u8,
22590 count: *mut usize,
22591 ) -> *mut BNInstructionTextToken;
22592}
22593unsafe extern "C" {
22594 pub fn BNAddTypeBuilderPointerSuffix(type_: *mut BNTypeBuilder, ps: BNPointerSuffix);
22595}
22596unsafe extern "C" {
22597 pub fn BNSetTypeBuilderPointerSuffix(
22598 type_: *mut BNTypeBuilder,
22599 suffix: *mut BNPointerSuffix,
22600 count: usize,
22601 );
22602}
22603unsafe extern "C" {
22604 pub fn BNGetTypeBuilderNameType(type_: *mut BNTypeBuilder) -> BNNameType;
22605}
22606unsafe extern "C" {
22607 pub fn BNTypeBuilderHasTemplateArguments(type_: *mut BNTypeBuilder) -> bool;
22608}
22609unsafe extern "C" {
22610 pub fn BNSetTypeBuilderNameType(type_: *mut BNTypeBuilder, nameType: BNNameType);
22611}
22612unsafe extern "C" {
22613 pub fn BNSetTypeBuilderHasTemplateArguments(
22614 type_: *mut BNTypeBuilder,
22615 hasTemplateArguments: bool,
22616 );
22617}
22618unsafe extern "C" {
22619 pub fn BNSetTypeBuilderAttribute(
22620 type_: *mut BNTypeBuilder,
22621 name: *const ::std::os::raw::c_char,
22622 value: *const ::std::os::raw::c_char,
22623 );
22624}
22625unsafe extern "C" {
22626 pub fn BNSetTypeBuilderAttributeList(
22627 type_: *mut BNTypeBuilder,
22628 attrs: *mut BNTypeAttribute,
22629 count: usize,
22630 );
22631}
22632unsafe extern "C" {
22633 pub fn BNRemoveTypeBuilderAttribute(
22634 type_: *mut BNTypeBuilder,
22635 name: *const ::std::os::raw::c_char,
22636 );
22637}
22638unsafe extern "C" {
22639 pub fn BNGetTypeBuilderAttributes(
22640 type_: *mut BNTypeBuilder,
22641 count: *mut usize,
22642 ) -> *mut BNTypeAttribute;
22643}
22644unsafe extern "C" {
22645 pub fn BNGetTypeBuilderAttributeByName(
22646 type_: *mut BNTypeBuilder,
22647 name: *const ::std::os::raw::c_char,
22648 ) -> *mut ::std::os::raw::c_char;
22649}
22650unsafe extern "C" {
22651 pub fn BNGetTypeBuilderString(
22652 type_: *mut BNTypeBuilder,
22653 platform: *mut BNPlatform,
22654 ) -> *mut ::std::os::raw::c_char;
22655}
22656unsafe extern "C" {
22657 pub fn BNGetTypeBuilderStringBeforeName(
22658 type_: *mut BNTypeBuilder,
22659 platform: *mut BNPlatform,
22660 ) -> *mut ::std::os::raw::c_char;
22661}
22662unsafe extern "C" {
22663 pub fn BNGetTypeBuilderStringAfterName(
22664 type_: *mut BNTypeBuilder,
22665 platform: *mut BNPlatform,
22666 ) -> *mut ::std::os::raw::c_char;
22667}
22668unsafe extern "C" {
22669 pub fn BNGetTypeBuilderTokens(
22670 type_: *mut BNTypeBuilder,
22671 platform: *mut BNPlatform,
22672 baseConfidence: u8,
22673 count: *mut usize,
22674 ) -> *mut BNInstructionTextToken;
22675}
22676unsafe extern "C" {
22677 pub fn BNGetTypeBuilderTokensBeforeName(
22678 type_: *mut BNTypeBuilder,
22679 platform: *mut BNPlatform,
22680 baseConfidence: u8,
22681 count: *mut usize,
22682 ) -> *mut BNInstructionTextToken;
22683}
22684unsafe extern "C" {
22685 pub fn BNGetTypeBuilderTokensAfterName(
22686 type_: *mut BNTypeBuilder,
22687 platform: *mut BNPlatform,
22688 baseConfidence: u8,
22689 count: *mut usize,
22690 ) -> *mut BNInstructionTextToken;
22691}
22692unsafe extern "C" {
22693 pub fn BNCreateNamedTypeReference(
22694 nt: *mut BNNamedTypeReference,
22695 width: usize,
22696 align: usize,
22697 cnst: *mut BNBoolWithConfidence,
22698 vltl: *mut BNBoolWithConfidence,
22699 ) -> *mut BNType;
22700}
22701unsafe extern "C" {
22702 pub fn BNCreateNamedTypeReferenceFromTypeAndId(
22703 id: *const ::std::os::raw::c_char,
22704 name: *mut BNQualifiedName,
22705 type_: *mut BNType,
22706 ) -> *mut BNType;
22707}
22708unsafe extern "C" {
22709 pub fn BNCreateNamedTypeReferenceFromType(
22710 view: *mut BNBinaryView,
22711 name: *mut BNQualifiedName,
22712 ) -> *mut BNType;
22713}
22714unsafe extern "C" {
22715 pub fn BNCreateNamedTypeReferenceBuilder(
22716 nt: *mut BNNamedTypeReference,
22717 width: usize,
22718 align: usize,
22719 cnst: *mut BNBoolWithConfidence,
22720 vltl: *mut BNBoolWithConfidence,
22721 ) -> *mut BNTypeBuilder;
22722}
22723unsafe extern "C" {
22724 pub fn BNCreateNamedTypeReferenceBuilderWithBuilder(
22725 nt: *mut BNNamedTypeReferenceBuilder,
22726 width: usize,
22727 align: usize,
22728 cnst: *mut BNBoolWithConfidence,
22729 vltl: *mut BNBoolWithConfidence,
22730 ) -> *mut BNTypeBuilder;
22731}
22732unsafe extern "C" {
22733 pub fn BNCreateNamedTypeReferenceBuilderFromTypeAndId(
22734 id: *const ::std::os::raw::c_char,
22735 name: *mut BNQualifiedName,
22736 type_: *mut BNType,
22737 ) -> *mut BNTypeBuilder;
22738}
22739unsafe extern "C" {
22740 pub fn BNCreateNamedTypeReferenceBuilderFromType(
22741 view: *mut BNBinaryView,
22742 name: *mut BNQualifiedName,
22743 ) -> *mut BNTypeBuilder;
22744}
22745unsafe extern "C" {
22746 pub fn BNCreateNamedType(
22747 cls: BNNamedTypeReferenceClass,
22748 id: *const ::std::os::raw::c_char,
22749 name: *mut BNQualifiedName,
22750 ) -> *mut BNNamedTypeReference;
22751}
22752unsafe extern "C" {
22753 pub fn BNGetTypeReferenceClass(nt: *mut BNNamedTypeReference) -> BNNamedTypeReferenceClass;
22754}
22755unsafe extern "C" {
22756 pub fn BNGetTypeReferenceId(nt: *mut BNNamedTypeReference) -> *mut ::std::os::raw::c_char;
22757}
22758unsafe extern "C" {
22759 pub fn BNGetTypeReferenceName(nt: *mut BNNamedTypeReference) -> BNQualifiedName;
22760}
22761unsafe extern "C" {
22762 pub fn BNFreeQualifiedName(name: *mut BNQualifiedName);
22763}
22764unsafe extern "C" {
22765 pub fn BNFreeQualifiedNameArray(names: *mut BNQualifiedName, count: usize);
22766}
22767unsafe extern "C" {
22768 pub fn BNFreeNamedTypeReference(nt: *mut BNNamedTypeReference);
22769}
22770unsafe extern "C" {
22771 pub fn BNNewNamedTypeReference(nt: *mut BNNamedTypeReference) -> *mut BNNamedTypeReference;
22772}
22773unsafe extern "C" {
22774 pub fn BNCreateNamedTypeBuilder(
22775 cls: BNNamedTypeReferenceClass,
22776 id: *const ::std::os::raw::c_char,
22777 name: *mut BNQualifiedName,
22778 ) -> *mut BNNamedTypeReferenceBuilder;
22779}
22780unsafe extern "C" {
22781 pub fn BNFreeNamedTypeReferenceBuilder(s: *mut BNNamedTypeReferenceBuilder);
22782}
22783unsafe extern "C" {
22784 pub fn BNSetNamedTypeReferenceBuilderTypeClass(
22785 s: *mut BNNamedTypeReferenceBuilder,
22786 type_: BNNamedTypeReferenceClass,
22787 );
22788}
22789unsafe extern "C" {
22790 pub fn BNSetNamedTypeReferenceBuilderTypeId(
22791 s: *mut BNNamedTypeReferenceBuilder,
22792 id: *const ::std::os::raw::c_char,
22793 );
22794}
22795unsafe extern "C" {
22796 pub fn BNSetNamedTypeReferenceBuilderName(
22797 s: *mut BNNamedTypeReferenceBuilder,
22798 name: *mut BNQualifiedName,
22799 );
22800}
22801unsafe extern "C" {
22802 pub fn BNFinalizeNamedTypeReferenceBuilder(
22803 s: *mut BNNamedTypeReferenceBuilder,
22804 ) -> *mut BNNamedTypeReference;
22805}
22806unsafe extern "C" {
22807 pub fn BNGetTypeReferenceBuilderClass(
22808 nt: *mut BNNamedTypeReferenceBuilder,
22809 ) -> BNNamedTypeReferenceClass;
22810}
22811unsafe extern "C" {
22812 pub fn BNGetTypeReferenceBuilderId(
22813 nt: *mut BNNamedTypeReferenceBuilder,
22814 ) -> *mut ::std::os::raw::c_char;
22815}
22816unsafe extern "C" {
22817 pub fn BNGetTypeReferenceBuilderName(nt: *mut BNNamedTypeReferenceBuilder) -> BNQualifiedName;
22818}
22819unsafe extern "C" {
22820 pub fn BNSetNamedTypeReferenceBuilder(
22821 type_: *mut BNTypeBuilder,
22822 nt: *mut BNNamedTypeReferenceBuilder,
22823 );
22824}
22825unsafe extern "C" {
22826 pub fn BNCreateStructureBuilder() -> *mut BNStructureBuilder;
22827}
22828unsafe extern "C" {
22829 pub fn BNCreateStructureBuilderWithOptions(
22830 type_: BNStructureVariant,
22831 packed: bool,
22832 ) -> *mut BNStructureBuilder;
22833}
22834unsafe extern "C" {
22835 pub fn BNCreateStructureBuilderFromStructure(s: *mut BNStructure) -> *mut BNStructureBuilder;
22836}
22837unsafe extern "C" {
22838 pub fn BNDuplicateStructureBuilder(s: *mut BNStructureBuilder) -> *mut BNStructureBuilder;
22839}
22840unsafe extern "C" {
22841 pub fn BNFinalizeStructureBuilder(s: *mut BNStructureBuilder) -> *mut BNStructure;
22842}
22843unsafe extern "C" {
22844 pub fn BNNewStructureReference(s: *mut BNStructure) -> *mut BNStructure;
22845}
22846unsafe extern "C" {
22847 pub fn BNFreeStructure(s: *mut BNStructure);
22848}
22849unsafe extern "C" {
22850 pub fn BNFreeStructureBuilder(s: *mut BNStructureBuilder);
22851}
22852unsafe extern "C" {
22853 pub fn BNSetStructureBuilder(type_: *mut BNTypeBuilder, s: *mut BNStructureBuilder);
22854}
22855unsafe extern "C" {
22856 pub fn BNGetStructureMemberByName(
22857 s: *mut BNStructure,
22858 name: *const ::std::os::raw::c_char,
22859 ) -> *mut BNStructureMember;
22860}
22861unsafe extern "C" {
22862 pub fn BNGetStructureMemberAtOffset(
22863 s: *mut BNStructure,
22864 offset: i64,
22865 idx: *mut usize,
22866 ) -> *mut BNStructureMember;
22867}
22868unsafe extern "C" {
22869 pub fn BNFreeStructureMember(s: *mut BNStructureMember);
22870}
22871unsafe extern "C" {
22872 pub fn BNGetStructureMembers(s: *mut BNStructure, count: *mut usize) -> *mut BNStructureMember;
22873}
22874unsafe extern "C" {
22875 pub fn BNFreeStructureMemberList(members: *mut BNStructureMember, count: usize);
22876}
22877unsafe extern "C" {
22878 pub fn BNGetStructureMembersIncludingInherited(
22879 s: *mut BNStructure,
22880 types: *mut BNTypeContainer,
22881 count: *mut usize,
22882 ) -> *mut BNInheritedStructureMember;
22883}
22884unsafe extern "C" {
22885 pub fn BNFreeInheritedStructureMemberList(
22886 members: *mut BNInheritedStructureMember,
22887 count: usize,
22888 );
22889}
22890unsafe extern "C" {
22891 pub fn BNGetMemberIncludingInheritedAtOffset(
22892 s: *mut BNStructure,
22893 view: *mut BNBinaryView,
22894 offset: i64,
22895 ) -> *mut BNInheritedStructureMember;
22896}
22897unsafe extern "C" {
22898 pub fn BNFreeInheritedStructureMember(members: *mut BNInheritedStructureMember);
22899}
22900unsafe extern "C" {
22901 pub fn BNGetStructureWidth(s: *mut BNStructure) -> u64;
22902}
22903unsafe extern "C" {
22904 pub fn BNGetStructurePointerOffset(s: *mut BNStructure) -> i64;
22905}
22906unsafe extern "C" {
22907 pub fn BNGetStructureAlignment(s: *mut BNStructure) -> usize;
22908}
22909unsafe extern "C" {
22910 pub fn BNIsStructurePacked(s: *mut BNStructure) -> bool;
22911}
22912unsafe extern "C" {
22913 pub fn BNIsStructureUnion(s: *mut BNStructure) -> bool;
22914}
22915unsafe extern "C" {
22916 pub fn BNStructurePropagatesDataVariableReferences(s: *mut BNStructure) -> bool;
22917}
22918unsafe extern "C" {
22919 pub fn BNGetStructureType(s: *mut BNStructure) -> BNStructureVariant;
22920}
22921unsafe extern "C" {
22922 pub fn BNGetBaseStructuresForStructure(
22923 s: *mut BNStructure,
22924 count: *mut usize,
22925 ) -> *mut BNBaseStructure;
22926}
22927unsafe extern "C" {
22928 pub fn BNFreeBaseStructureList(bases: *mut BNBaseStructure, count: usize);
22929}
22930unsafe extern "C" {
22931 pub fn BNResolveStructureMemberOrBaseMember(
22932 s: *mut BNStructure,
22933 data: *mut BNBinaryView,
22934 offset: u64,
22935 size: usize,
22936 callbackContext: *mut ::std::os::raw::c_void,
22937 resolveFunc: ::std::option::Option<
22938 unsafe extern "C" fn(
22939 ctxt: *mut ::std::os::raw::c_void,
22940 baseName: *mut BNNamedTypeReference,
22941 resolvedStruct: *mut BNStructure,
22942 memberIndex: usize,
22943 structOffset: u64,
22944 adjustedOffset: u64,
22945 member: BNStructureMember,
22946 ),
22947 >,
22948 memberIndexHintValid: bool,
22949 memberIndexHint: usize,
22950 ) -> bool;
22951}
22952unsafe extern "C" {
22953 pub fn BNStructureWithReplacedStructure(
22954 s: *mut BNStructure,
22955 from: *mut BNStructure,
22956 to: *mut BNStructure,
22957 ) -> *mut BNStructure;
22958}
22959unsafe extern "C" {
22960 pub fn BNStructureWithReplacedEnumeration(
22961 s: *mut BNStructure,
22962 from: *mut BNEnumeration,
22963 to: *mut BNEnumeration,
22964 ) -> *mut BNStructure;
22965}
22966unsafe extern "C" {
22967 pub fn BNStructureWithReplacedNamedTypeReference(
22968 s: *mut BNStructure,
22969 from: *mut BNNamedTypeReference,
22970 to: *mut BNNamedTypeReference,
22971 ) -> *mut BNStructure;
22972}
22973unsafe extern "C" {
22974 pub fn BNGetStructureBuilderMemberByName(
22975 s: *mut BNStructureBuilder,
22976 name: *const ::std::os::raw::c_char,
22977 ) -> *mut BNStructureMember;
22978}
22979unsafe extern "C" {
22980 pub fn BNGetStructureBuilderMemberAtOffset(
22981 s: *mut BNStructureBuilder,
22982 offset: i64,
22983 idx: *mut usize,
22984 ) -> *mut BNStructureMember;
22985}
22986unsafe extern "C" {
22987 pub fn BNGetStructureBuilderMembers(
22988 s: *mut BNStructureBuilder,
22989 count: *mut usize,
22990 ) -> *mut BNStructureMember;
22991}
22992unsafe extern "C" {
22993 pub fn BNGetStructureBuilderWidth(s: *mut BNStructureBuilder) -> u64;
22994}
22995unsafe extern "C" {
22996 pub fn BNSetStructureBuilderWidth(s: *mut BNStructureBuilder, width: u64);
22997}
22998unsafe extern "C" {
22999 pub fn BNGetStructureBuilderPointerOffset(s: *mut BNStructureBuilder) -> i64;
23000}
23001unsafe extern "C" {
23002 pub fn BNSetStructureBuilderPointerOffset(s: *mut BNStructureBuilder, offset: i64);
23003}
23004unsafe extern "C" {
23005 pub fn BNGetStructureBuilderAlignment(s: *mut BNStructureBuilder) -> usize;
23006}
23007unsafe extern "C" {
23008 pub fn BNSetStructureBuilderAlignment(s: *mut BNStructureBuilder, align: usize);
23009}
23010unsafe extern "C" {
23011 pub fn BNIsStructureBuilderPacked(s: *mut BNStructureBuilder) -> bool;
23012}
23013unsafe extern "C" {
23014 pub fn BNSetStructureBuilderPacked(s: *mut BNStructureBuilder, packed: bool);
23015}
23016unsafe extern "C" {
23017 pub fn BNIsStructureBuilderUnion(s: *mut BNStructureBuilder) -> bool;
23018}
23019unsafe extern "C" {
23020 pub fn BNSetStructureBuilderType(s: *mut BNStructureBuilder, type_: BNStructureVariant);
23021}
23022unsafe extern "C" {
23023 pub fn BNStructureBuilderPropagatesDataVariableReferences(s: *mut BNStructureBuilder) -> bool;
23024}
23025unsafe extern "C" {
23026 pub fn BNSetStructureBuilderPropagatesDataVariableReferences(
23027 s: *mut BNStructureBuilder,
23028 value: bool,
23029 );
23030}
23031unsafe extern "C" {
23032 pub fn BNGetStructureBuilderType(s: *mut BNStructureBuilder) -> BNStructureVariant;
23033}
23034unsafe extern "C" {
23035 pub fn BNGetBaseStructuresForStructureBuilder(
23036 s: *mut BNStructureBuilder,
23037 count: *mut usize,
23038 ) -> *mut BNBaseStructure;
23039}
23040unsafe extern "C" {
23041 pub fn BNSetBaseStructuresForStructureBuilder(
23042 s: *mut BNStructureBuilder,
23043 bases: *mut BNBaseStructure,
23044 count: usize,
23045 );
23046}
23047unsafe extern "C" {
23048 pub fn BNAddStructureBuilderMember(
23049 s: *mut BNStructureBuilder,
23050 type_: *const BNTypeWithConfidence,
23051 name: *const ::std::os::raw::c_char,
23052 access: BNMemberAccess,
23053 scope: BNMemberScope,
23054 );
23055}
23056unsafe extern "C" {
23057 pub fn BNAddStructureBuilderMemberAtOffset(
23058 s: *mut BNStructureBuilder,
23059 type_: *const BNTypeWithConfidence,
23060 name: *const ::std::os::raw::c_char,
23061 offset: u64,
23062 overwriteExisting: bool,
23063 access: BNMemberAccess,
23064 scope: BNMemberScope,
23065 bitPosition: u8,
23066 bitWidth: u8,
23067 );
23068}
23069unsafe extern "C" {
23070 pub fn BNRemoveStructureBuilderMember(s: *mut BNStructureBuilder, idx: usize);
23071}
23072unsafe extern "C" {
23073 pub fn BNReplaceStructureBuilderMember(
23074 s: *mut BNStructureBuilder,
23075 idx: usize,
23076 type_: *const BNTypeWithConfidence,
23077 name: *const ::std::os::raw::c_char,
23078 overwriteExisting: bool,
23079 );
23080}
23081unsafe extern "C" {
23082 pub fn BNCreateEnumerationBuilder() -> *mut BNEnumerationBuilder;
23083}
23084unsafe extern "C" {
23085 pub fn BNCreateEnumerationBuilderFromEnumeration(
23086 e: *mut BNEnumeration,
23087 ) -> *mut BNEnumerationBuilder;
23088}
23089unsafe extern "C" {
23090 pub fn BNDuplicateEnumerationBuilder(e: *mut BNEnumerationBuilder)
23091 -> *mut BNEnumerationBuilder;
23092}
23093unsafe extern "C" {
23094 pub fn BNFinalizeEnumerationBuilder(e: *mut BNEnumerationBuilder) -> *mut BNEnumeration;
23095}
23096unsafe extern "C" {
23097 pub fn BNNewEnumerationReference(e: *mut BNEnumeration) -> *mut BNEnumeration;
23098}
23099unsafe extern "C" {
23100 pub fn BNFreeEnumeration(e: *mut BNEnumeration);
23101}
23102unsafe extern "C" {
23103 pub fn BNFreeEnumerationBuilder(e: *mut BNEnumerationBuilder);
23104}
23105unsafe extern "C" {
23106 pub fn BNSetEnumerationBuilder(type_: *mut BNTypeBuilder, e: *mut BNEnumerationBuilder);
23107}
23108unsafe extern "C" {
23109 pub fn BNGetEnumerationMembers(
23110 e: *mut BNEnumeration,
23111 count: *mut usize,
23112 ) -> *mut BNEnumerationMember;
23113}
23114unsafe extern "C" {
23115 pub fn BNGetEnumerationTokensForValue(
23116 e: *mut BNEnumeration,
23117 value: u64,
23118 width: u64,
23119 count: *mut usize,
23120 type_: *mut BNType,
23121 ) -> *mut BNInstructionTextToken;
23122}
23123unsafe extern "C" {
23124 pub fn BNFreeEnumerationMemberList(members: *mut BNEnumerationMember, count: usize);
23125}
23126unsafe extern "C" {
23127 pub fn BNGetEnumerationBuilderMembers(
23128 e: *mut BNEnumerationBuilder,
23129 count: *mut usize,
23130 ) -> *mut BNEnumerationMember;
23131}
23132unsafe extern "C" {
23133 pub fn BNAddEnumerationBuilderMember(
23134 e: *mut BNEnumerationBuilder,
23135 name: *const ::std::os::raw::c_char,
23136 );
23137}
23138unsafe extern "C" {
23139 pub fn BNAddEnumerationBuilderMemberWithValue(
23140 e: *mut BNEnumerationBuilder,
23141 name: *const ::std::os::raw::c_char,
23142 value: u64,
23143 );
23144}
23145unsafe extern "C" {
23146 pub fn BNRemoveEnumerationBuilderMember(e: *mut BNEnumerationBuilder, idx: usize);
23147}
23148unsafe extern "C" {
23149 pub fn BNReplaceEnumerationBuilderMember(
23150 e: *mut BNEnumerationBuilder,
23151 idx: usize,
23152 name: *const ::std::os::raw::c_char,
23153 value: u64,
23154 );
23155}
23156unsafe extern "C" {
23157 pub fn BNCreateStructureFromOffsetAccess(
23158 view: *mut BNBinaryView,
23159 name: *mut BNQualifiedName,
23160 newMember: *mut bool,
23161 ) -> *mut BNStructure;
23162}
23163unsafe extern "C" {
23164 pub fn BNCreateStructureMemberFromAccess(
23165 view: *mut BNBinaryView,
23166 name: *mut BNQualifiedName,
23167 offset: u64,
23168 ) -> BNTypeWithConfidence;
23169}
23170unsafe extern "C" {
23171 pub fn BNAddExpressionParserMagicValue(
23172 view: *mut BNBinaryView,
23173 name: *const ::std::os::raw::c_char,
23174 value: u64,
23175 );
23176}
23177unsafe extern "C" {
23178 pub fn BNRemoveExpressionParserMagicValue(
23179 view: *mut BNBinaryView,
23180 name: *const ::std::os::raw::c_char,
23181 );
23182}
23183unsafe extern "C" {
23184 pub fn BNAddExpressionParserMagicValues(
23185 view: *mut BNBinaryView,
23186 names: *mut *const ::std::os::raw::c_char,
23187 values: *mut u64,
23188 count: usize,
23189 );
23190}
23191unsafe extern "C" {
23192 pub fn BNRemoveExpressionParserMagicValues(
23193 view: *mut BNBinaryView,
23194 names: *mut *const ::std::os::raw::c_char,
23195 count: usize,
23196 );
23197}
23198unsafe extern "C" {
23199 pub fn BNGetExpressionParserMagicValue(
23200 view: *mut BNBinaryView,
23201 name: *const ::std::os::raw::c_char,
23202 value: *mut u64,
23203 ) -> bool;
23204}
23205unsafe extern "C" {
23206 pub fn BNGetFunctionParentComponents(
23207 view: *mut BNBinaryView,
23208 func: *mut BNFunction,
23209 count: *mut usize,
23210 ) -> *mut *mut BNComponent;
23211}
23212unsafe extern "C" {
23213 pub fn BNGetDataVariableParentComponents(
23214 view: *mut BNBinaryView,
23215 dataVariable: u64,
23216 count: *mut usize,
23217 ) -> *mut *mut BNComponent;
23218}
23219unsafe extern "C" {
23220 pub fn BNCheckForStringAnnotationType(
23221 view: *mut BNBinaryView,
23222 addr: u64,
23223 value: *mut *mut ::std::os::raw::c_char,
23224 strType: *mut BNStringType,
23225 allowShortStrings: bool,
23226 allowLargeStrings: bool,
23227 childWidth: usize,
23228 ) -> bool;
23229}
23230unsafe extern "C" {
23231 pub fn BNLoadFilename(
23232 filename: *const ::std::os::raw::c_char,
23233 updateAnalysis: bool,
23234 options: *const ::std::os::raw::c_char,
23235 progress: BNProgressFunction,
23236 progressContext: *mut ::std::os::raw::c_void,
23237 ) -> *mut BNBinaryView;
23238}
23239unsafe extern "C" {
23240 pub fn BNLoadProjectFile(
23241 projectFile: *mut BNProjectFile,
23242 updateAnalysis: bool,
23243 options: *const ::std::os::raw::c_char,
23244 progress: BNProgressFunction,
23245 progressContext: *mut ::std::os::raw::c_void,
23246 ) -> *mut BNBinaryView;
23247}
23248unsafe extern "C" {
23249 pub fn BNLoadBinaryView(
23250 view: *mut BNBinaryView,
23251 updateAnalysis: bool,
23252 options: *const ::std::os::raw::c_char,
23253 progress: BNProgressFunction,
23254 progressContext: *mut ::std::os::raw::c_void,
23255 ) -> *mut BNBinaryView;
23256}
23257unsafe extern "C" {
23258 pub fn BNParseTextFormat(filename: *const ::std::os::raw::c_char) -> *mut BNBinaryView;
23259}
23260unsafe extern "C" {
23261 pub fn BNBinaryViewAddExternalLibrary(
23262 view: *mut BNBinaryView,
23263 name: *const ::std::os::raw::c_char,
23264 backingFile: *mut BNProjectFile,
23265 isAuto: bool,
23266 ) -> *mut BNExternalLibrary;
23267}
23268unsafe extern "C" {
23269 pub fn BNBinaryViewRemoveExternalLibrary(
23270 view: *mut BNBinaryView,
23271 name: *const ::std::os::raw::c_char,
23272 );
23273}
23274unsafe extern "C" {
23275 pub fn BNBinaryViewGetExternalLibrary(
23276 view: *mut BNBinaryView,
23277 name: *const ::std::os::raw::c_char,
23278 ) -> *mut BNExternalLibrary;
23279}
23280unsafe extern "C" {
23281 pub fn BNBinaryViewGetExternalLibraries(
23282 view: *mut BNBinaryView,
23283 count: *mut usize,
23284 ) -> *mut *mut BNExternalLibrary;
23285}
23286unsafe extern "C" {
23287 pub fn BNBinaryViewAddExternalLocation(
23288 view: *mut BNBinaryView,
23289 sourceSymbol: *mut BNSymbol,
23290 library: *mut BNExternalLibrary,
23291 targetSymbol: *const ::std::os::raw::c_char,
23292 targetAddress: *mut u64,
23293 isAuto: bool,
23294 ) -> *mut BNExternalLocation;
23295}
23296unsafe extern "C" {
23297 pub fn BNBinaryViewRemoveExternalLocation(view: *mut BNBinaryView, sourceSymbol: *mut BNSymbol);
23298}
23299unsafe extern "C" {
23300 pub fn BNBinaryViewGetExternalLocation(
23301 view: *mut BNBinaryView,
23302 sourceSymbol: *mut BNSymbol,
23303 ) -> *mut BNExternalLocation;
23304}
23305unsafe extern "C" {
23306 pub fn BNBinaryViewGetExternalLocations(
23307 view: *mut BNBinaryView,
23308 count: *mut usize,
23309 ) -> *mut *mut BNExternalLocation;
23310}
23311unsafe extern "C" {
23312 #[doc = " Source code processing"]
23313 pub fn BNPreprocessSource(
23314 source: *const ::std::os::raw::c_char,
23315 fileName: *const ::std::os::raw::c_char,
23316 output: *mut *mut ::std::os::raw::c_char,
23317 errors: *mut *mut ::std::os::raw::c_char,
23318 includeDirs: *mut *const ::std::os::raw::c_char,
23319 includeDirCount: usize,
23320 ) -> bool;
23321}
23322unsafe extern "C" {
23323 pub fn BNParseTypesFromSource(
23324 platform: *mut BNPlatform,
23325 source: *const ::std::os::raw::c_char,
23326 fileName: *const ::std::os::raw::c_char,
23327 result: *mut BNTypeParserResult,
23328 errors: *mut *mut ::std::os::raw::c_char,
23329 includeDirs: *mut *const ::std::os::raw::c_char,
23330 includeDirCount: usize,
23331 autoTypeSource: *const ::std::os::raw::c_char,
23332 ) -> bool;
23333}
23334unsafe extern "C" {
23335 pub fn BNParseTypesFromSourceFile(
23336 platform: *mut BNPlatform,
23337 fileName: *const ::std::os::raw::c_char,
23338 result: *mut BNTypeParserResult,
23339 errors: *mut *mut ::std::os::raw::c_char,
23340 includeDirs: *mut *const ::std::os::raw::c_char,
23341 includeDirCount: usize,
23342 autoTypeSource: *const ::std::os::raw::c_char,
23343 ) -> bool;
23344}
23345unsafe extern "C" {
23346 pub fn BNRegisterTypeParser(
23347 name: *const ::std::os::raw::c_char,
23348 callbacks: *mut BNTypeParserCallbacks,
23349 ) -> *mut BNTypeParser;
23350}
23351unsafe extern "C" {
23352 pub fn BNGetTypeParserList(count: *mut usize) -> *mut *mut BNTypeParser;
23353}
23354unsafe extern "C" {
23355 pub fn BNFreeTypeParserList(parsers: *mut *mut BNTypeParser);
23356}
23357unsafe extern "C" {
23358 pub fn BNGetTypeParserByName(name: *const ::std::os::raw::c_char) -> *mut BNTypeParser;
23359}
23360unsafe extern "C" {
23361 pub fn BNGetDefaultTypeParser() -> *mut BNTypeParser;
23362}
23363unsafe extern "C" {
23364 pub fn BNGetTypeParserName(parser: *mut BNTypeParser) -> *mut ::std::os::raw::c_char;
23365}
23366unsafe extern "C" {
23367 pub fn BNGetTypeParserOptionText(
23368 parser: *mut BNTypeParser,
23369 option: BNTypeParserOption,
23370 value: *const ::std::os::raw::c_char,
23371 result: *mut *mut ::std::os::raw::c_char,
23372 ) -> bool;
23373}
23374unsafe extern "C" {
23375 pub fn BNTypeParserPreprocessSource(
23376 parser: *mut BNTypeParser,
23377 source: *const ::std::os::raw::c_char,
23378 fileName: *const ::std::os::raw::c_char,
23379 platform: *mut BNPlatform,
23380 existingTypes: *mut BNTypeContainer,
23381 options: *const *const ::std::os::raw::c_char,
23382 optionCount: usize,
23383 includeDirs: *const *const ::std::os::raw::c_char,
23384 includeDirCount: usize,
23385 output: *mut *mut ::std::os::raw::c_char,
23386 errors: *mut *mut BNTypeParserError,
23387 errorCount: *mut usize,
23388 ) -> bool;
23389}
23390unsafe extern "C" {
23391 pub fn BNTypeParserParseTypesFromSource(
23392 parser: *mut BNTypeParser,
23393 source: *const ::std::os::raw::c_char,
23394 fileName: *const ::std::os::raw::c_char,
23395 platform: *mut BNPlatform,
23396 existingTypes: *mut BNTypeContainer,
23397 options: *const *const ::std::os::raw::c_char,
23398 optionCount: usize,
23399 includeDirs: *const *const ::std::os::raw::c_char,
23400 includeDirCount: usize,
23401 autoTypeSource: *const ::std::os::raw::c_char,
23402 result: *mut BNTypeParserResult,
23403 errors: *mut *mut BNTypeParserError,
23404 errorCount: *mut usize,
23405 ) -> bool;
23406}
23407unsafe extern "C" {
23408 pub fn BNTypeParserParseTypeString(
23409 parser: *mut BNTypeParser,
23410 source: *const ::std::os::raw::c_char,
23411 platform: *mut BNPlatform,
23412 existingTypes: *mut BNTypeContainer,
23413 result: *mut BNQualifiedNameAndType,
23414 errors: *mut *mut BNTypeParserError,
23415 errorCount: *mut usize,
23416 ) -> bool;
23417}
23418unsafe extern "C" {
23419 pub fn BNParseTypeParserOptionsText(
23420 optionsText: *const ::std::os::raw::c_char,
23421 count: *mut usize,
23422 ) -> *mut *mut ::std::os::raw::c_char;
23423}
23424unsafe extern "C" {
23425 pub fn BNFormatTypeParserParseErrors(
23426 errors: *mut BNTypeParserError,
23427 count: usize,
23428 ) -> *mut ::std::os::raw::c_char;
23429}
23430unsafe extern "C" {
23431 pub fn BNRegisterTypePrinter(
23432 name: *const ::std::os::raw::c_char,
23433 callbacks: *mut BNTypePrinterCallbacks,
23434 ) -> *mut BNTypePrinter;
23435}
23436unsafe extern "C" {
23437 pub fn BNGetTypePrinterList(count: *mut usize) -> *mut *mut BNTypePrinter;
23438}
23439unsafe extern "C" {
23440 pub fn BNFreeTypePrinterList(printers: *mut *mut BNTypePrinter);
23441}
23442unsafe extern "C" {
23443 pub fn BNGetTypePrinterByName(name: *const ::std::os::raw::c_char) -> *mut BNTypePrinter;
23444}
23445unsafe extern "C" {
23446 pub fn BNGetTypePrinterName(printer: *mut BNTypePrinter) -> *mut ::std::os::raw::c_char;
23447}
23448unsafe extern "C" {
23449 pub fn BNGetTypePrinterTypeTokens(
23450 printer: *mut BNTypePrinter,
23451 type_: *mut BNType,
23452 platform: *mut BNPlatform,
23453 name: *mut BNQualifiedName,
23454 baseConfidence: u8,
23455 escaping: BNTokenEscapingType,
23456 result: *mut *mut BNInstructionTextToken,
23457 resultCount: *mut usize,
23458 ) -> bool;
23459}
23460unsafe extern "C" {
23461 pub fn BNGetTypePrinterTypeTokensBeforeName(
23462 printer: *mut BNTypePrinter,
23463 type_: *mut BNType,
23464 platform: *mut BNPlatform,
23465 baseConfidence: u8,
23466 parentType: *mut BNType,
23467 escaping: BNTokenEscapingType,
23468 result: *mut *mut BNInstructionTextToken,
23469 resultCount: *mut usize,
23470 ) -> bool;
23471}
23472unsafe extern "C" {
23473 pub fn BNGetTypePrinterTypeTokensAfterName(
23474 printer: *mut BNTypePrinter,
23475 type_: *mut BNType,
23476 platform: *mut BNPlatform,
23477 baseConfidence: u8,
23478 parentType: *mut BNType,
23479 escaping: BNTokenEscapingType,
23480 result: *mut *mut BNInstructionTextToken,
23481 resultCount: *mut usize,
23482 ) -> bool;
23483}
23484unsafe extern "C" {
23485 pub fn BNGetTypePrinterTypeString(
23486 printer: *mut BNTypePrinter,
23487 type_: *mut BNType,
23488 platform: *mut BNPlatform,
23489 name: *mut BNQualifiedName,
23490 escaping: BNTokenEscapingType,
23491 result: *mut *mut ::std::os::raw::c_char,
23492 ) -> bool;
23493}
23494unsafe extern "C" {
23495 pub fn BNGetTypePrinterTypeStringBeforeName(
23496 printer: *mut BNTypePrinter,
23497 type_: *mut BNType,
23498 platform: *mut BNPlatform,
23499 escaping: BNTokenEscapingType,
23500 result: *mut *mut ::std::os::raw::c_char,
23501 ) -> bool;
23502}
23503unsafe extern "C" {
23504 pub fn BNGetTypePrinterTypeStringAfterName(
23505 printer: *mut BNTypePrinter,
23506 type_: *mut BNType,
23507 platform: *mut BNPlatform,
23508 escaping: BNTokenEscapingType,
23509 result: *mut *mut ::std::os::raw::c_char,
23510 ) -> bool;
23511}
23512unsafe extern "C" {
23513 pub fn BNGetTypePrinterTypeLines(
23514 printer: *mut BNTypePrinter,
23515 type_: *mut BNType,
23516 types: *mut BNTypeContainer,
23517 name: *mut BNQualifiedName,
23518 paddingCols: ::std::os::raw::c_int,
23519 collapsed: bool,
23520 escaping: BNTokenEscapingType,
23521 result: *mut *mut BNTypeDefinitionLine,
23522 resultCount: *mut usize,
23523 ) -> bool;
23524}
23525unsafe extern "C" {
23526 pub fn BNTypePrinterPrintAllTypes(
23527 printer: *mut BNTypePrinter,
23528 names: *mut BNQualifiedName,
23529 types: *mut *mut BNType,
23530 typeCount: usize,
23531 data: *mut BNBinaryView,
23532 paddingCols: ::std::os::raw::c_int,
23533 escaping: BNTokenEscapingType,
23534 result: *mut *mut ::std::os::raw::c_char,
23535 ) -> bool;
23536}
23537unsafe extern "C" {
23538 pub fn BNTypePrinterDefaultPrintAllTypes(
23539 printer: *mut BNTypePrinter,
23540 names: *mut BNQualifiedName,
23541 types: *mut *mut BNType,
23542 typeCount: usize,
23543 data: *mut BNBinaryView,
23544 paddingCols: ::std::os::raw::c_int,
23545 escaping: BNTokenEscapingType,
23546 result: *mut *mut ::std::os::raw::c_char,
23547 ) -> bool;
23548}
23549unsafe extern "C" {
23550 pub fn BNFreeTypeParserResult(result: *mut BNTypeParserResult);
23551}
23552unsafe extern "C" {
23553 pub fn BNFreeTypeParserErrors(errors: *mut BNTypeParserError, count: usize);
23554}
23555unsafe extern "C" {
23556 #[doc = " Updates"]
23557 pub fn BNGetUpdateChannels(
23558 count: *mut usize,
23559 errors: *mut *mut ::std::os::raw::c_char,
23560 ) -> *mut BNUpdateChannel;
23561}
23562unsafe extern "C" {
23563 pub fn BNFreeUpdateChannelList(list: *mut BNUpdateChannel, count: usize);
23564}
23565unsafe extern "C" {
23566 pub fn BNGetUpdateChannelVersions(
23567 channel: *const ::std::os::raw::c_char,
23568 count: *mut usize,
23569 errors: *mut *mut ::std::os::raw::c_char,
23570 ) -> *mut BNUpdateVersion;
23571}
23572unsafe extern "C" {
23573 pub fn BNFreeUpdateChannelVersionList(list: *mut BNUpdateVersion, count: usize);
23574}
23575unsafe extern "C" {
23576 pub fn BNGetFullInfoUpdateChannels(
23577 count: *mut usize,
23578 errors: *mut *mut ::std::os::raw::c_char,
23579 ) -> *mut BNUpdateChannelFullInfo;
23580}
23581unsafe extern "C" {
23582 pub fn BNFreeFullInfoUpdateChannels(list: *mut BNUpdateChannelFullInfo, count: usize);
23583}
23584unsafe extern "C" {
23585 pub fn BNAreUpdatesAvailable(
23586 channel: *const ::std::os::raw::c_char,
23587 expireTime: *mut u64,
23588 serverTime: *mut u64,
23589 errors: *mut *mut ::std::os::raw::c_char,
23590 ) -> bool;
23591}
23592unsafe extern "C" {
23593 pub fn BNUpdateToVersion(
23594 channel: *const ::std::os::raw::c_char,
23595 version: *const ::std::os::raw::c_char,
23596 errors: *mut *mut ::std::os::raw::c_char,
23597 progress: BNProgressFunction,
23598 context: *mut ::std::os::raw::c_void,
23599 ) -> BNUpdateResult;
23600}
23601unsafe extern "C" {
23602 pub fn BNUpdateToLatestVersion(
23603 channel: *const ::std::os::raw::c_char,
23604 errors: *mut *mut ::std::os::raw::c_char,
23605 progress: BNProgressFunction,
23606 context: *mut ::std::os::raw::c_void,
23607 ) -> BNUpdateResult;
23608}
23609unsafe extern "C" {
23610 pub fn BNAreAutoUpdatesEnabled() -> bool;
23611}
23612unsafe extern "C" {
23613 pub fn BNSetAutoUpdatesEnabled(enabled: bool);
23614}
23615unsafe extern "C" {
23616 pub fn BNGetTimeSinceLastUpdateCheck() -> u64;
23617}
23618unsafe extern "C" {
23619 pub fn BNUpdatesChecked();
23620}
23621unsafe extern "C" {
23622 pub fn BNGetActiveUpdateChannel() -> *mut ::std::os::raw::c_char;
23623}
23624unsafe extern "C" {
23625 pub fn BNSetActiveUpdateChannel(channel: *const ::std::os::raw::c_char);
23626}
23627unsafe extern "C" {
23628 pub fn BNIsUpdateInstallationPending() -> bool;
23629}
23630unsafe extern "C" {
23631 pub fn BNInstallPendingUpdate(errors: *mut *mut ::std::os::raw::c_char);
23632}
23633unsafe extern "C" {
23634 #[doc = " Plugin commands"]
23635 pub fn BNRegisterPluginCommandGlobal(
23636 name: *const ::std::os::raw::c_char,
23637 description: *const ::std::os::raw::c_char,
23638 action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
23639 isValid: ::std::option::Option<
23640 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool,
23641 >,
23642 context: *mut ::std::os::raw::c_void,
23643 );
23644}
23645unsafe extern "C" {
23646 pub fn BNRegisterPluginCommand(
23647 name: *const ::std::os::raw::c_char,
23648 description: *const ::std::os::raw::c_char,
23649 action: ::std::option::Option<
23650 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
23651 >,
23652 isValid: ::std::option::Option<
23653 unsafe extern "C" fn(
23654 ctxt: *mut ::std::os::raw::c_void,
23655 view: *mut BNBinaryView,
23656 ) -> bool,
23657 >,
23658 context: *mut ::std::os::raw::c_void,
23659 );
23660}
23661unsafe extern "C" {
23662 pub fn BNRegisterPluginCommandForAddress(
23663 name: *const ::std::os::raw::c_char,
23664 description: *const ::std::os::raw::c_char,
23665 action: ::std::option::Option<
23666 unsafe extern "C" fn(
23667 ctxt: *mut ::std::os::raw::c_void,
23668 view: *mut BNBinaryView,
23669 addr: u64,
23670 ),
23671 >,
23672 isValid: ::std::option::Option<
23673 unsafe extern "C" fn(
23674 ctxt: *mut ::std::os::raw::c_void,
23675 view: *mut BNBinaryView,
23676 addr: u64,
23677 ) -> bool,
23678 >,
23679 context: *mut ::std::os::raw::c_void,
23680 );
23681}
23682unsafe extern "C" {
23683 pub fn BNRegisterPluginCommandForRange(
23684 name: *const ::std::os::raw::c_char,
23685 description: *const ::std::os::raw::c_char,
23686 action: ::std::option::Option<
23687 unsafe extern "C" fn(
23688 ctxt: *mut ::std::os::raw::c_void,
23689 view: *mut BNBinaryView,
23690 addr: u64,
23691 len: u64,
23692 ),
23693 >,
23694 isValid: ::std::option::Option<
23695 unsafe extern "C" fn(
23696 ctxt: *mut ::std::os::raw::c_void,
23697 view: *mut BNBinaryView,
23698 addr: u64,
23699 len: u64,
23700 ) -> bool,
23701 >,
23702 context: *mut ::std::os::raw::c_void,
23703 );
23704}
23705unsafe extern "C" {
23706 pub fn BNRegisterPluginCommandForFunction(
23707 name: *const ::std::os::raw::c_char,
23708 description: *const ::std::os::raw::c_char,
23709 action: ::std::option::Option<
23710 unsafe extern "C" fn(
23711 ctxt: *mut ::std::os::raw::c_void,
23712 view: *mut BNBinaryView,
23713 func: *mut BNFunction,
23714 ),
23715 >,
23716 isValid: ::std::option::Option<
23717 unsafe extern "C" fn(
23718 ctxt: *mut ::std::os::raw::c_void,
23719 view: *mut BNBinaryView,
23720 func: *mut BNFunction,
23721 ) -> bool,
23722 >,
23723 context: *mut ::std::os::raw::c_void,
23724 );
23725}
23726unsafe extern "C" {
23727 pub fn BNRegisterPluginCommandForLowLevelILFunction(
23728 name: *const ::std::os::raw::c_char,
23729 description: *const ::std::os::raw::c_char,
23730 action: ::std::option::Option<
23731 unsafe extern "C" fn(
23732 ctxt: *mut ::std::os::raw::c_void,
23733 view: *mut BNBinaryView,
23734 func: *mut BNLowLevelILFunction,
23735 ),
23736 >,
23737 isValid: ::std::option::Option<
23738 unsafe extern "C" fn(
23739 ctxt: *mut ::std::os::raw::c_void,
23740 view: *mut BNBinaryView,
23741 func: *mut BNLowLevelILFunction,
23742 ) -> bool,
23743 >,
23744 context: *mut ::std::os::raw::c_void,
23745 );
23746}
23747unsafe extern "C" {
23748 pub fn BNRegisterPluginCommandForLowLevelILInstruction(
23749 name: *const ::std::os::raw::c_char,
23750 description: *const ::std::os::raw::c_char,
23751 action: ::std::option::Option<
23752 unsafe extern "C" fn(
23753 ctxt: *mut ::std::os::raw::c_void,
23754 view: *mut BNBinaryView,
23755 func: *mut BNLowLevelILFunction,
23756 instr: usize,
23757 ),
23758 >,
23759 isValid: ::std::option::Option<
23760 unsafe extern "C" fn(
23761 ctxt: *mut ::std::os::raw::c_void,
23762 view: *mut BNBinaryView,
23763 func: *mut BNLowLevelILFunction,
23764 instr: usize,
23765 ) -> bool,
23766 >,
23767 context: *mut ::std::os::raw::c_void,
23768 );
23769}
23770unsafe extern "C" {
23771 pub fn BNRegisterPluginCommandForMediumLevelILFunction(
23772 name: *const ::std::os::raw::c_char,
23773 description: *const ::std::os::raw::c_char,
23774 action: ::std::option::Option<
23775 unsafe extern "C" fn(
23776 ctxt: *mut ::std::os::raw::c_void,
23777 view: *mut BNBinaryView,
23778 func: *mut BNMediumLevelILFunction,
23779 ),
23780 >,
23781 isValid: ::std::option::Option<
23782 unsafe extern "C" fn(
23783 ctxt: *mut ::std::os::raw::c_void,
23784 view: *mut BNBinaryView,
23785 func: *mut BNMediumLevelILFunction,
23786 ) -> bool,
23787 >,
23788 context: *mut ::std::os::raw::c_void,
23789 );
23790}
23791unsafe extern "C" {
23792 pub fn BNRegisterPluginCommandForMediumLevelILInstruction(
23793 name: *const ::std::os::raw::c_char,
23794 description: *const ::std::os::raw::c_char,
23795 action: ::std::option::Option<
23796 unsafe extern "C" fn(
23797 ctxt: *mut ::std::os::raw::c_void,
23798 view: *mut BNBinaryView,
23799 func: *mut BNMediumLevelILFunction,
23800 instr: usize,
23801 ),
23802 >,
23803 isValid: ::std::option::Option<
23804 unsafe extern "C" fn(
23805 ctxt: *mut ::std::os::raw::c_void,
23806 view: *mut BNBinaryView,
23807 func: *mut BNMediumLevelILFunction,
23808 instr: usize,
23809 ) -> bool,
23810 >,
23811 context: *mut ::std::os::raw::c_void,
23812 );
23813}
23814unsafe extern "C" {
23815 pub fn BNRegisterPluginCommandForHighLevelILFunction(
23816 name: *const ::std::os::raw::c_char,
23817 description: *const ::std::os::raw::c_char,
23818 action: ::std::option::Option<
23819 unsafe extern "C" fn(
23820 ctxt: *mut ::std::os::raw::c_void,
23821 view: *mut BNBinaryView,
23822 func: *mut BNHighLevelILFunction,
23823 ),
23824 >,
23825 isValid: ::std::option::Option<
23826 unsafe extern "C" fn(
23827 ctxt: *mut ::std::os::raw::c_void,
23828 view: *mut BNBinaryView,
23829 func: *mut BNHighLevelILFunction,
23830 ) -> bool,
23831 >,
23832 context: *mut ::std::os::raw::c_void,
23833 );
23834}
23835unsafe extern "C" {
23836 pub fn BNRegisterPluginCommandForHighLevelILInstruction(
23837 name: *const ::std::os::raw::c_char,
23838 description: *const ::std::os::raw::c_char,
23839 action: ::std::option::Option<
23840 unsafe extern "C" fn(
23841 ctxt: *mut ::std::os::raw::c_void,
23842 view: *mut BNBinaryView,
23843 func: *mut BNHighLevelILFunction,
23844 instr: usize,
23845 ),
23846 >,
23847 isValid: ::std::option::Option<
23848 unsafe extern "C" fn(
23849 ctxt: *mut ::std::os::raw::c_void,
23850 view: *mut BNBinaryView,
23851 func: *mut BNHighLevelILFunction,
23852 instr: usize,
23853 ) -> bool,
23854 >,
23855 context: *mut ::std::os::raw::c_void,
23856 );
23857}
23858unsafe extern "C" {
23859 pub fn BNRegisterPluginCommandForProject(
23860 name: *const ::std::os::raw::c_char,
23861 description: *const ::std::os::raw::c_char,
23862 action: ::std::option::Option<
23863 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, project: *mut BNProject),
23864 >,
23865 isValid: ::std::option::Option<
23866 unsafe extern "C" fn(
23867 ctxt: *mut ::std::os::raw::c_void,
23868 project: *mut BNProject,
23869 ) -> bool,
23870 >,
23871 context: *mut ::std::os::raw::c_void,
23872 );
23873}
23874unsafe extern "C" {
23875 pub fn BNGetAllPluginCommands(count: *mut usize) -> *mut BNPluginCommand;
23876}
23877unsafe extern "C" {
23878 pub fn BNGetValidPluginCommandsGlobal(count: *mut usize) -> *mut BNPluginCommand;
23879}
23880unsafe extern "C" {
23881 pub fn BNGetValidPluginCommands(
23882 view: *mut BNBinaryView,
23883 count: *mut usize,
23884 ) -> *mut BNPluginCommand;
23885}
23886unsafe extern "C" {
23887 pub fn BNGetValidPluginCommandsForAddress(
23888 view: *mut BNBinaryView,
23889 addr: u64,
23890 count: *mut usize,
23891 ) -> *mut BNPluginCommand;
23892}
23893unsafe extern "C" {
23894 pub fn BNGetValidPluginCommandsForRange(
23895 view: *mut BNBinaryView,
23896 addr: u64,
23897 len: u64,
23898 count: *mut usize,
23899 ) -> *mut BNPluginCommand;
23900}
23901unsafe extern "C" {
23902 pub fn BNGetValidPluginCommandsForFunction(
23903 view: *mut BNBinaryView,
23904 func: *mut BNFunction,
23905 count: *mut usize,
23906 ) -> *mut BNPluginCommand;
23907}
23908unsafe extern "C" {
23909 pub fn BNGetValidPluginCommandsForLowLevelILFunction(
23910 view: *mut BNBinaryView,
23911 func: *mut BNLowLevelILFunction,
23912 count: *mut usize,
23913 ) -> *mut BNPluginCommand;
23914}
23915unsafe extern "C" {
23916 pub fn BNGetValidPluginCommandsForLowLevelILInstruction(
23917 view: *mut BNBinaryView,
23918 func: *mut BNLowLevelILFunction,
23919 instr: usize,
23920 count: *mut usize,
23921 ) -> *mut BNPluginCommand;
23922}
23923unsafe extern "C" {
23924 pub fn BNGetValidPluginCommandsForMediumLevelILFunction(
23925 view: *mut BNBinaryView,
23926 func: *mut BNMediumLevelILFunction,
23927 count: *mut usize,
23928 ) -> *mut BNPluginCommand;
23929}
23930unsafe extern "C" {
23931 pub fn BNGetValidPluginCommandsForMediumLevelILInstruction(
23932 view: *mut BNBinaryView,
23933 func: *mut BNMediumLevelILFunction,
23934 instr: usize,
23935 count: *mut usize,
23936 ) -> *mut BNPluginCommand;
23937}
23938unsafe extern "C" {
23939 pub fn BNGetValidPluginCommandsForHighLevelILFunction(
23940 view: *mut BNBinaryView,
23941 func: *mut BNHighLevelILFunction,
23942 count: *mut usize,
23943 ) -> *mut BNPluginCommand;
23944}
23945unsafe extern "C" {
23946 pub fn BNGetValidPluginCommandsForHighLevelILInstruction(
23947 view: *mut BNBinaryView,
23948 func: *mut BNHighLevelILFunction,
23949 instr: usize,
23950 count: *mut usize,
23951 ) -> *mut BNPluginCommand;
23952}
23953unsafe extern "C" {
23954 pub fn BNGetValidPluginCommandsForProject(
23955 project: *mut BNProject,
23956 count: *mut usize,
23957 ) -> *mut BNPluginCommand;
23958}
23959unsafe extern "C" {
23960 pub fn BNFreePluginCommandList(commands: *mut BNPluginCommand);
23961}
23962unsafe extern "C" {
23963 #[doc = " Calling conventions"]
23964 pub fn BNCreateCallingConvention(
23965 arch: *mut BNArchitecture,
23966 name: *const ::std::os::raw::c_char,
23967 cc: *mut BNCustomCallingConvention,
23968 ) -> *mut BNCallingConvention;
23969}
23970unsafe extern "C" {
23971 pub fn BNRegisterCallingConvention(arch: *mut BNArchitecture, cc: *mut BNCallingConvention);
23972}
23973unsafe extern "C" {
23974 pub fn BNNewCallingConventionReference(
23975 cc: *mut BNCallingConvention,
23976 ) -> *mut BNCallingConvention;
23977}
23978unsafe extern "C" {
23979 pub fn BNFreeCallingConvention(cc: *mut BNCallingConvention);
23980}
23981unsafe extern "C" {
23982 pub fn BNGetArchitectureCallingConventions(
23983 arch: *mut BNArchitecture,
23984 count: *mut usize,
23985 ) -> *mut *mut BNCallingConvention;
23986}
23987unsafe extern "C" {
23988 pub fn BNFreeCallingConventionList(list: *mut *mut BNCallingConvention, count: usize);
23989}
23990unsafe extern "C" {
23991 pub fn BNGetArchitectureCallingConventionByName(
23992 arch: *mut BNArchitecture,
23993 name: *const ::std::os::raw::c_char,
23994 ) -> *mut BNCallingConvention;
23995}
23996unsafe extern "C" {
23997 pub fn BNGetCallingConventionArchitecture(cc: *mut BNCallingConvention) -> *mut BNArchitecture;
23998}
23999unsafe extern "C" {
24000 pub fn BNGetCallingConventionName(cc: *mut BNCallingConvention) -> *mut ::std::os::raw::c_char;
24001}
24002unsafe extern "C" {
24003 pub fn BNGetCallerSavedRegisters(cc: *mut BNCallingConvention, count: *mut usize) -> *mut u32;
24004}
24005unsafe extern "C" {
24006 pub fn BNGetCalleeSavedRegisters(cc: *mut BNCallingConvention, count: *mut usize) -> *mut u32;
24007}
24008unsafe extern "C" {
24009 pub fn BNGetIntegerArgumentRegisters(
24010 cc: *mut BNCallingConvention,
24011 count: *mut usize,
24012 ) -> *mut u32;
24013}
24014unsafe extern "C" {
24015 pub fn BNGetFloatArgumentRegisters(cc: *mut BNCallingConvention, count: *mut usize)
24016 -> *mut u32;
24017}
24018unsafe extern "C" {
24019 pub fn BNGetRequiredArgumentRegisters(
24020 cc: *mut BNCallingConvention,
24021 count: *mut usize,
24022 ) -> *mut u32;
24023}
24024unsafe extern "C" {
24025 pub fn BNGetRequiredClobberedRegisters(
24026 cc: *mut BNCallingConvention,
24027 count: *mut usize,
24028 ) -> *mut u32;
24029}
24030unsafe extern "C" {
24031 pub fn BNAreArgumentRegistersSharedIndex(cc: *mut BNCallingConvention) -> bool;
24032}
24033unsafe extern "C" {
24034 pub fn BNAreArgumentRegistersUsedForVarArgs(cc: *mut BNCallingConvention) -> bool;
24035}
24036unsafe extern "C" {
24037 pub fn BNIsStackReservedForArgumentRegisters(cc: *mut BNCallingConvention) -> bool;
24038}
24039unsafe extern "C" {
24040 pub fn BNIsStackAdjustedOnReturn(cc: *mut BNCallingConvention) -> bool;
24041}
24042unsafe extern "C" {
24043 pub fn BNIsEligibleForHeuristics(cc: *mut BNCallingConvention) -> bool;
24044}
24045unsafe extern "C" {
24046 pub fn BNGetIntegerReturnValueRegister(cc: *mut BNCallingConvention) -> u32;
24047}
24048unsafe extern "C" {
24049 pub fn BNGetHighIntegerReturnValueRegister(cc: *mut BNCallingConvention) -> u32;
24050}
24051unsafe extern "C" {
24052 pub fn BNGetFloatReturnValueRegister(cc: *mut BNCallingConvention) -> u32;
24053}
24054unsafe extern "C" {
24055 pub fn BNGetGlobalPointerRegisters(cc: *mut BNCallingConvention, count: *mut usize)
24056 -> *mut u32;
24057}
24058unsafe extern "C" {
24059 pub fn BNGetImplicitlyDefinedRegisters(
24060 cc: *mut BNCallingConvention,
24061 count: *mut usize,
24062 ) -> *mut u32;
24063}
24064unsafe extern "C" {
24065 pub fn BNGetIncomingRegisterValue(
24066 cc: *mut BNCallingConvention,
24067 reg: u32,
24068 func: *mut BNFunction,
24069 ) -> BNRegisterValue;
24070}
24071unsafe extern "C" {
24072 pub fn BNGetIncomingFlagValue(
24073 cc: *mut BNCallingConvention,
24074 reg: u32,
24075 func: *mut BNFunction,
24076 ) -> BNRegisterValue;
24077}
24078unsafe extern "C" {
24079 pub fn BNGetCallLayout(
24080 cc: *mut BNCallingConvention,
24081 view: *mut BNBinaryView,
24082 returnValue: *const BNReturnValue,
24083 params: *const BNFunctionParameter,
24084 paramCount: usize,
24085 permittedRegs: *const u32,
24086 permittedRegCount: usize,
24087 ) -> BNCallLayout;
24088}
24089unsafe extern "C" {
24090 pub fn BNGetCallLayoutDefaultPermittedArgs(
24091 cc: *mut BNCallingConvention,
24092 view: *mut BNBinaryView,
24093 returnValue: *const BNReturnValue,
24094 params: *const BNFunctionParameter,
24095 paramCount: usize,
24096 ) -> BNCallLayout;
24097}
24098unsafe extern "C" {
24099 pub fn BNGetDefaultCallLayout(
24100 cc: *mut BNCallingConvention,
24101 view: *mut BNBinaryView,
24102 returnValue: *const BNReturnValue,
24103 params: *const BNFunctionParameter,
24104 paramCount: usize,
24105 permittedRegs: *const u32,
24106 permittedRegCount: usize,
24107 ) -> BNCallLayout;
24108}
24109unsafe extern "C" {
24110 pub fn BNGetDefaultCallLayoutDefaultPermittedArgs(
24111 cc: *mut BNCallingConvention,
24112 view: *mut BNBinaryView,
24113 returnValue: *const BNReturnValue,
24114 params: *const BNFunctionParameter,
24115 paramCount: usize,
24116 ) -> BNCallLayout;
24117}
24118unsafe extern "C" {
24119 pub fn BNFreeCallLayout(layout: *mut BNCallLayout);
24120}
24121unsafe extern "C" {
24122 pub fn BNGetReturnValueLocation(
24123 cc: *mut BNCallingConvention,
24124 view: *mut BNBinaryView,
24125 returnValue: *mut BNReturnValue,
24126 ) -> BNValueLocation;
24127}
24128unsafe extern "C" {
24129 pub fn BNGetDefaultReturnValueLocation(
24130 cc: *mut BNCallingConvention,
24131 view: *mut BNBinaryView,
24132 returnValue: *mut BNReturnValue,
24133 ) -> BNValueLocation;
24134}
24135unsafe extern "C" {
24136 pub fn BNGetParameterLocations(
24137 cc: *mut BNCallingConvention,
24138 view: *mut BNBinaryView,
24139 returnValue: *mut BNValueLocation,
24140 params: *mut BNFunctionParameter,
24141 paramCount: usize,
24142 permittedRegs: *const u32,
24143 permittedRegCount: usize,
24144 outCount: *mut usize,
24145 ) -> *mut BNValueLocation;
24146}
24147unsafe extern "C" {
24148 pub fn BNGetParameterLocationsDefaultPermittedArgs(
24149 cc: *mut BNCallingConvention,
24150 view: *mut BNBinaryView,
24151 returnValue: *mut BNValueLocation,
24152 params: *mut BNFunctionParameter,
24153 paramCount: usize,
24154 outCount: *mut usize,
24155 ) -> *mut BNValueLocation;
24156}
24157unsafe extern "C" {
24158 pub fn BNGetDefaultParameterLocations(
24159 cc: *mut BNCallingConvention,
24160 view: *mut BNBinaryView,
24161 returnValue: *mut BNValueLocation,
24162 params: *mut BNFunctionParameter,
24163 paramCount: usize,
24164 permittedRegs: *const u32,
24165 permittedRegCount: usize,
24166 outCount: *mut usize,
24167 ) -> *mut BNValueLocation;
24168}
24169unsafe extern "C" {
24170 pub fn BNGetDefaultParameterLocationsDefaultPermittedArgs(
24171 cc: *mut BNCallingConvention,
24172 view: *mut BNBinaryView,
24173 returnValue: *mut BNValueLocation,
24174 params: *mut BNFunctionParameter,
24175 paramCount: usize,
24176 outCount: *mut usize,
24177 ) -> *mut BNValueLocation;
24178}
24179unsafe extern "C" {
24180 pub fn BNFreeValueLocationList(locations: *mut BNValueLocation, count: usize);
24181}
24182unsafe extern "C" {
24183 pub fn BNGetParameterOrderingForVariables(
24184 cc: *mut BNCallingConvention,
24185 view: *mut BNBinaryView,
24186 paramVars: *const BNVariable,
24187 paramTypes: *mut *const BNType,
24188 paramCount: usize,
24189 count: *mut usize,
24190 ) -> *mut BNVariable;
24191}
24192unsafe extern "C" {
24193 pub fn BNGetDefaultParameterOrderingForVariables(
24194 cc: *mut BNCallingConvention,
24195 paramVars: *const BNVariable,
24196 paramTypes: *mut *const BNType,
24197 paramCount: usize,
24198 count: *mut usize,
24199 ) -> *mut BNVariable;
24200}
24201unsafe extern "C" {
24202 pub fn BNGetStackAdjustmentForLocations(
24203 cc: *mut BNCallingConvention,
24204 view: *mut BNBinaryView,
24205 returnValue: *mut BNValueLocation,
24206 paramLocations: *const BNValueLocation,
24207 paramTypes: *mut *const BNType,
24208 paramCount: usize,
24209 ) -> i64;
24210}
24211unsafe extern "C" {
24212 pub fn BNGetDefaultStackAdjustmentForLocations(
24213 cc: *mut BNCallingConvention,
24214 returnValue: *mut BNValueLocation,
24215 paramLocations: *const BNValueLocation,
24216 paramTypes: *mut *const BNType,
24217 paramCount: usize,
24218 ) -> i64;
24219}
24220unsafe extern "C" {
24221 pub fn BNGetCallingConventionRegisterStackAdjustments(
24222 cc: *mut BNCallingConvention,
24223 view: *mut BNBinaryView,
24224 returnValue: *mut BNValueLocation,
24225 params: *mut BNValueLocation,
24226 paramCount: usize,
24227 outRegs: *mut *mut u32,
24228 outAdjust: *mut *mut i32,
24229 ) -> usize;
24230}
24231unsafe extern "C" {
24232 pub fn BNGetCallingConventionDefaultRegisterStackAdjustments(
24233 cc: *mut BNCallingConvention,
24234 returnValue: *mut BNValueLocation,
24235 params: *mut BNValueLocation,
24236 paramCount: usize,
24237 outRegs: *mut *mut u32,
24238 outAdjust: *mut *mut i32,
24239 ) -> usize;
24240}
24241unsafe extern "C" {
24242 pub fn BNFreeCallingConventionRegisterStackAdjustments(regs: *mut u32, adjust: *mut i32);
24243}
24244unsafe extern "C" {
24245 pub fn BNGetIncomingVariableForParameterVariable(
24246 cc: *mut BNCallingConvention,
24247 var: *const BNVariable,
24248 func: *mut BNFunction,
24249 ) -> BNVariable;
24250}
24251unsafe extern "C" {
24252 pub fn BNGetParameterVariableForIncomingVariable(
24253 cc: *mut BNCallingConvention,
24254 var: *const BNVariable,
24255 func: *mut BNFunction,
24256 ) -> BNVariable;
24257}
24258unsafe extern "C" {
24259 pub fn BNGetDefaultIncomingVariableForParameterVariable(
24260 cc: *mut BNCallingConvention,
24261 var: *const BNVariable,
24262 ) -> BNVariable;
24263}
24264unsafe extern "C" {
24265 pub fn BNGetDefaultParameterVariableForIncomingVariable(
24266 cc: *mut BNCallingConvention,
24267 var: *const BNVariable,
24268 ) -> BNVariable;
24269}
24270unsafe extern "C" {
24271 pub fn BNIsReturnTypeRegisterCompatible(
24272 cc: *mut BNCallingConvention,
24273 view: *mut BNBinaryView,
24274 type_: *mut BNType,
24275 ) -> bool;
24276}
24277unsafe extern "C" {
24278 pub fn BNDefaultIsReturnTypeRegisterCompatible(
24279 cc: *mut BNCallingConvention,
24280 type_: *mut BNType,
24281 ) -> bool;
24282}
24283unsafe extern "C" {
24284 pub fn BNGetIndirectReturnValueLocation(cc: *mut BNCallingConvention) -> BNVariable;
24285}
24286unsafe extern "C" {
24287 pub fn BNGetDefaultIndirectReturnValueLocation(cc: *mut BNCallingConvention) -> BNVariable;
24288}
24289unsafe extern "C" {
24290 pub fn BNGetReturnedIndirectReturnValuePointer(
24291 cc: *mut BNCallingConvention,
24292 outVar: *mut BNVariable,
24293 ) -> bool;
24294}
24295unsafe extern "C" {
24296 pub fn BNIsArgumentTypeRegisterCompatible(
24297 cc: *mut BNCallingConvention,
24298 view: *mut BNBinaryView,
24299 type_: *mut BNType,
24300 ) -> bool;
24301}
24302unsafe extern "C" {
24303 pub fn BNDefaultIsArgumentTypeRegisterCompatible(
24304 cc: *mut BNCallingConvention,
24305 type_: *mut BNType,
24306 ) -> bool;
24307}
24308unsafe extern "C" {
24309 pub fn BNIsNonRegisterArgumentIndirect(
24310 cc: *mut BNCallingConvention,
24311 view: *mut BNBinaryView,
24312 type_: *mut BNType,
24313 ) -> bool;
24314}
24315unsafe extern "C" {
24316 pub fn BNAreStackArgumentsNaturallyAligned(cc: *mut BNCallingConvention) -> bool;
24317}
24318unsafe extern "C" {
24319 pub fn BNAreStackArgumentsPushedLeftToRight(cc: *mut BNCallingConvention) -> bool;
24320}
24321unsafe extern "C" {
24322 pub fn BNGetArchitectureDefaultCallingConvention(
24323 arch: *mut BNArchitecture,
24324 ) -> *mut BNCallingConvention;
24325}
24326unsafe extern "C" {
24327 pub fn BNGetArchitectureCdeclCallingConvention(
24328 arch: *mut BNArchitecture,
24329 ) -> *mut BNCallingConvention;
24330}
24331unsafe extern "C" {
24332 pub fn BNGetArchitectureStdcallCallingConvention(
24333 arch: *mut BNArchitecture,
24334 ) -> *mut BNCallingConvention;
24335}
24336unsafe extern "C" {
24337 pub fn BNGetArchitectureFastcallCallingConvention(
24338 arch: *mut BNArchitecture,
24339 ) -> *mut BNCallingConvention;
24340}
24341unsafe extern "C" {
24342 pub fn BNSetArchitectureDefaultCallingConvention(
24343 arch: *mut BNArchitecture,
24344 cc: *mut BNCallingConvention,
24345 );
24346}
24347unsafe extern "C" {
24348 pub fn BNSetArchitectureCdeclCallingConvention(
24349 arch: *mut BNArchitecture,
24350 cc: *mut BNCallingConvention,
24351 );
24352}
24353unsafe extern "C" {
24354 pub fn BNSetArchitectureStdcallCallingConvention(
24355 arch: *mut BNArchitecture,
24356 cc: *mut BNCallingConvention,
24357 );
24358}
24359unsafe extern "C" {
24360 pub fn BNSetArchitectureFastcallCallingConvention(
24361 arch: *mut BNArchitecture,
24362 cc: *mut BNCallingConvention,
24363 );
24364}
24365unsafe extern "C" {
24366 #[doc = " Platforms"]
24367 pub fn BNCreatePlatform(
24368 arch: *mut BNArchitecture,
24369 name: *const ::std::os::raw::c_char,
24370 ) -> *mut BNPlatform;
24371}
24372unsafe extern "C" {
24373 pub fn BNCreatePlatformWithTypes(
24374 arch: *mut BNArchitecture,
24375 name: *const ::std::os::raw::c_char,
24376 typeFile: *const ::std::os::raw::c_char,
24377 includeDirs: *mut *const ::std::os::raw::c_char,
24378 includeDirCount: usize,
24379 ) -> *mut BNPlatform;
24380}
24381unsafe extern "C" {
24382 pub fn BNCreateCustomPlatform(
24383 arch: *mut BNArchitecture,
24384 name: *const ::std::os::raw::c_char,
24385 impl_: *mut BNCustomPlatform,
24386 ) -> *mut BNPlatform;
24387}
24388unsafe extern "C" {
24389 pub fn BNCreateCustomPlatformWithTypes(
24390 arch: *mut BNArchitecture,
24391 name: *const ::std::os::raw::c_char,
24392 impl_: *mut BNCustomPlatform,
24393 typeFile: *const ::std::os::raw::c_char,
24394 includeDirs: *mut *const ::std::os::raw::c_char,
24395 includeDirCount: usize,
24396 ) -> *mut BNPlatform;
24397}
24398unsafe extern "C" {
24399 pub fn BNRegisterPlatform(os: *const ::std::os::raw::c_char, platform: *mut BNPlatform);
24400}
24401unsafe extern "C" {
24402 pub fn BNNewPlatformReference(platform: *mut BNPlatform) -> *mut BNPlatform;
24403}
24404unsafe extern "C" {
24405 pub fn BNFreePlatform(platform: *mut BNPlatform);
24406}
24407unsafe extern "C" {
24408 pub fn BNGetPlatformName(platform: *mut BNPlatform) -> *mut ::std::os::raw::c_char;
24409}
24410unsafe extern "C" {
24411 pub fn BNGetPlatformArchitecture(platform: *mut BNPlatform) -> *mut BNArchitecture;
24412}
24413unsafe extern "C" {
24414 pub fn BNGetPlatformByName(name: *const ::std::os::raw::c_char) -> *mut BNPlatform;
24415}
24416unsafe extern "C" {
24417 pub fn BNGetPlatformList(count: *mut usize) -> *mut *mut BNPlatform;
24418}
24419unsafe extern "C" {
24420 pub fn BNGetPlatformListByArchitecture(
24421 arch: *mut BNArchitecture,
24422 count: *mut usize,
24423 ) -> *mut *mut BNPlatform;
24424}
24425unsafe extern "C" {
24426 pub fn BNGetPlatformListByOS(
24427 os: *const ::std::os::raw::c_char,
24428 count: *mut usize,
24429 ) -> *mut *mut BNPlatform;
24430}
24431unsafe extern "C" {
24432 pub fn BNGetPlatformListByOSAndArchitecture(
24433 os: *const ::std::os::raw::c_char,
24434 arch: *mut BNArchitecture,
24435 count: *mut usize,
24436 ) -> *mut *mut BNPlatform;
24437}
24438unsafe extern "C" {
24439 pub fn BNFreePlatformList(platform: *mut *mut BNPlatform, count: usize);
24440}
24441unsafe extern "C" {
24442 pub fn BNGetPlatformOSList(count: *mut usize) -> *mut *mut ::std::os::raw::c_char;
24443}
24444unsafe extern "C" {
24445 pub fn BNFreePlatformOSList(list: *mut *mut ::std::os::raw::c_char, count: usize);
24446}
24447unsafe extern "C" {
24448 pub fn BNGetPlatformDefaultCallingConvention(
24449 platform: *mut BNPlatform,
24450 ) -> *mut BNCallingConvention;
24451}
24452unsafe extern "C" {
24453 pub fn BNGetPlatformCdeclCallingConvention(
24454 platform: *mut BNPlatform,
24455 ) -> *mut BNCallingConvention;
24456}
24457unsafe extern "C" {
24458 pub fn BNGetPlatformStdcallCallingConvention(
24459 platform: *mut BNPlatform,
24460 ) -> *mut BNCallingConvention;
24461}
24462unsafe extern "C" {
24463 pub fn BNGetPlatformFastcallCallingConvention(
24464 platform: *mut BNPlatform,
24465 ) -> *mut BNCallingConvention;
24466}
24467unsafe extern "C" {
24468 pub fn BNGetPlatformCallingConventions(
24469 platform: *mut BNPlatform,
24470 count: *mut usize,
24471 ) -> *mut *mut BNCallingConvention;
24472}
24473unsafe extern "C" {
24474 pub fn BNGetPlatformSystemCallConvention(platform: *mut BNPlatform)
24475 -> *mut BNCallingConvention;
24476}
24477unsafe extern "C" {
24478 pub fn BNRegisterPlatformCallingConvention(
24479 platform: *mut BNPlatform,
24480 cc: *mut BNCallingConvention,
24481 );
24482}
24483unsafe extern "C" {
24484 pub fn BNRegisterPlatformDefaultCallingConvention(
24485 platform: *mut BNPlatform,
24486 cc: *mut BNCallingConvention,
24487 );
24488}
24489unsafe extern "C" {
24490 pub fn BNRegisterPlatformCdeclCallingConvention(
24491 platform: *mut BNPlatform,
24492 cc: *mut BNCallingConvention,
24493 );
24494}
24495unsafe extern "C" {
24496 pub fn BNRegisterPlatformStdcallCallingConvention(
24497 platform: *mut BNPlatform,
24498 cc: *mut BNCallingConvention,
24499 );
24500}
24501unsafe extern "C" {
24502 pub fn BNRegisterPlatformFastcallCallingConvention(
24503 platform: *mut BNPlatform,
24504 cc: *mut BNCallingConvention,
24505 );
24506}
24507unsafe extern "C" {
24508 pub fn BNSetPlatformSystemCallConvention(
24509 platform: *mut BNPlatform,
24510 cc: *mut BNCallingConvention,
24511 );
24512}
24513unsafe extern "C" {
24514 pub fn BNGetPlatformGlobalRegisters(platform: *mut BNPlatform, count: *mut usize) -> *mut u32;
24515}
24516unsafe extern "C" {
24517 pub fn BNGetPlatformGlobalRegisterType(platform: *mut BNPlatform, reg: u32) -> *mut BNType;
24518}
24519unsafe extern "C" {
24520 pub fn BNGetPlatformAddressSize(platform: *mut BNPlatform) -> usize;
24521}
24522unsafe extern "C" {
24523 pub fn BNPlatformAdjustTypeParserInput(
24524 platform: *mut BNPlatform,
24525 parser: *mut BNTypeParser,
24526 argumentsIn: *const *const ::std::os::raw::c_char,
24527 argumentsLenIn: usize,
24528 sourceFileNamesIn: *const *const ::std::os::raw::c_char,
24529 sourceFileValuesIn: *const *const ::std::os::raw::c_char,
24530 sourceFilesLenIn: usize,
24531 argumentsOut: *mut *mut *mut ::std::os::raw::c_char,
24532 argumentsLenOut: *mut usize,
24533 sourceFileNamesOut: *mut *mut *mut ::std::os::raw::c_char,
24534 sourceFileValuesOut: *mut *mut *mut ::std::os::raw::c_char,
24535 sourceFilesLenOut: *mut usize,
24536 );
24537}
24538unsafe extern "C" {
24539 pub fn BNGetArchitectureStandalonePlatform(arch: *mut BNArchitecture) -> *mut BNPlatform;
24540}
24541unsafe extern "C" {
24542 pub fn BNGetRelatedPlatform(
24543 platform: *mut BNPlatform,
24544 arch: *mut BNArchitecture,
24545 ) -> *mut BNPlatform;
24546}
24547unsafe extern "C" {
24548 pub fn BNAddRelatedPlatform(
24549 platform: *mut BNPlatform,
24550 arch: *mut BNArchitecture,
24551 related: *mut BNPlatform,
24552 );
24553}
24554unsafe extern "C" {
24555 pub fn BNGetRelatedPlatforms(
24556 platform: *mut BNPlatform,
24557 count: *mut usize,
24558 ) -> *mut *mut BNPlatform;
24559}
24560unsafe extern "C" {
24561 pub fn BNGetAssociatedPlatformByAddress(
24562 platform: *mut BNPlatform,
24563 addr: *mut u64,
24564 ) -> *mut BNPlatform;
24565}
24566unsafe extern "C" {
24567 pub fn BNGetPlatformTypeContainer(platform: *mut BNPlatform) -> *mut BNTypeContainer;
24568}
24569unsafe extern "C" {
24570 pub fn BNGetPlatformTypes(
24571 platform: *mut BNPlatform,
24572 count: *mut usize,
24573 ) -> *mut BNQualifiedNameAndType;
24574}
24575unsafe extern "C" {
24576 pub fn BNGetPlatformVariables(
24577 platform: *mut BNPlatform,
24578 count: *mut usize,
24579 ) -> *mut BNQualifiedNameAndType;
24580}
24581unsafe extern "C" {
24582 pub fn BNGetPlatformFunctions(
24583 platform: *mut BNPlatform,
24584 count: *mut usize,
24585 ) -> *mut BNQualifiedNameAndType;
24586}
24587unsafe extern "C" {
24588 pub fn BNGetPlatformSystemCalls(
24589 platform: *mut BNPlatform,
24590 count: *mut usize,
24591 ) -> *mut BNSystemCallInfo;
24592}
24593unsafe extern "C" {
24594 pub fn BNFreeSystemCallList(syscalls: *mut BNSystemCallInfo, count: usize);
24595}
24596unsafe extern "C" {
24597 pub fn BNGetPlatformTypeByName(
24598 platform: *mut BNPlatform,
24599 name: *mut BNQualifiedName,
24600 ) -> *mut BNType;
24601}
24602unsafe extern "C" {
24603 pub fn BNGetPlatformVariableByName(
24604 platform: *mut BNPlatform,
24605 name: *mut BNQualifiedName,
24606 ) -> *mut BNType;
24607}
24608unsafe extern "C" {
24609 pub fn BNGetPlatformFunctionByName(
24610 platform: *mut BNPlatform,
24611 name: *mut BNQualifiedName,
24612 exactMatch: bool,
24613 ) -> *mut BNType;
24614}
24615unsafe extern "C" {
24616 pub fn BNGetPlatformSystemCallName(
24617 platform: *mut BNPlatform,
24618 number: u32,
24619 ) -> *mut ::std::os::raw::c_char;
24620}
24621unsafe extern "C" {
24622 pub fn BNGetPlatformSystemCallType(platform: *mut BNPlatform, number: u32) -> *mut BNType;
24623}
24624unsafe extern "C" {
24625 pub fn BNGetPlatformTypeLibraries(
24626 platform: *mut BNPlatform,
24627 count: *mut usize,
24628 ) -> *mut *mut BNTypeLibrary;
24629}
24630unsafe extern "C" {
24631 pub fn BNGetPlatformTypeLibrariesByName(
24632 platform: *mut BNPlatform,
24633 depName: *const ::std::os::raw::c_char,
24634 count: *mut usize,
24635 ) -> *mut *mut BNTypeLibrary;
24636}
24637unsafe extern "C" {
24638 #[doc = " Download providers"]
24639 pub fn BNRegisterDownloadProvider(
24640 name: *const ::std::os::raw::c_char,
24641 callbacks: *mut BNDownloadProviderCallbacks,
24642 ) -> *mut BNDownloadProvider;
24643}
24644unsafe extern "C" {
24645 pub fn BNGetDownloadProviderList(count: *mut usize) -> *mut *mut BNDownloadProvider;
24646}
24647unsafe extern "C" {
24648 pub fn BNFreeDownloadProviderList(providers: *mut *mut BNDownloadProvider);
24649}
24650unsafe extern "C" {
24651 pub fn BNGetDownloadProviderByName(
24652 name: *const ::std::os::raw::c_char,
24653 ) -> *mut BNDownloadProvider;
24654}
24655unsafe extern "C" {
24656 pub fn BNGetDownloadProviderName(
24657 provider: *mut BNDownloadProvider,
24658 ) -> *mut ::std::os::raw::c_char;
24659}
24660unsafe extern "C" {
24661 pub fn BNCreateDownloadProviderInstance(
24662 provider: *mut BNDownloadProvider,
24663 ) -> *mut BNDownloadInstance;
24664}
24665unsafe extern "C" {
24666 pub fn BNInitDownloadInstance(
24667 provider: *mut BNDownloadProvider,
24668 callbacks: *mut BNDownloadInstanceCallbacks,
24669 ) -> *mut BNDownloadInstance;
24670}
24671unsafe extern "C" {
24672 pub fn BNNewDownloadInstanceReference(
24673 instance: *mut BNDownloadInstance,
24674 ) -> *mut BNDownloadInstance;
24675}
24676unsafe extern "C" {
24677 pub fn BNFreeDownloadInstance(instance: *mut BNDownloadInstance);
24678}
24679unsafe extern "C" {
24680 pub fn BNFreeDownloadInstanceResponse(response: *mut BNDownloadInstanceResponse);
24681}
24682unsafe extern "C" {
24683 pub fn BNPerformDownloadRequest(
24684 instance: *mut BNDownloadInstance,
24685 url: *const ::std::os::raw::c_char,
24686 callbacks: *mut BNDownloadInstanceOutputCallbacks,
24687 ) -> ::std::os::raw::c_int;
24688}
24689unsafe extern "C" {
24690 pub fn BNPerformCustomRequest(
24691 instance: *mut BNDownloadInstance,
24692 method: *const ::std::os::raw::c_char,
24693 url: *const ::std::os::raw::c_char,
24694 headerCount: u64,
24695 headerKeys: *const *const ::std::os::raw::c_char,
24696 headerValues: *const *const ::std::os::raw::c_char,
24697 response: *mut *mut BNDownloadInstanceResponse,
24698 callbacks: *mut BNDownloadInstanceInputOutputCallbacks,
24699 ) -> ::std::os::raw::c_int;
24700}
24701unsafe extern "C" {
24702 pub fn BNReadDataForDownloadInstance(
24703 instance: *mut BNDownloadInstance,
24704 data: *mut u8,
24705 len: u64,
24706 ) -> i64;
24707}
24708unsafe extern "C" {
24709 pub fn BNWriteDataForDownloadInstance(
24710 instance: *mut BNDownloadInstance,
24711 data: *mut u8,
24712 len: u64,
24713 ) -> u64;
24714}
24715unsafe extern "C" {
24716 pub fn BNNotifyProgressForDownloadInstance(
24717 instance: *mut BNDownloadInstance,
24718 progress: u64,
24719 total: u64,
24720 ) -> bool;
24721}
24722unsafe extern "C" {
24723 pub fn BNGetErrorForDownloadInstance(
24724 instance: *mut BNDownloadInstance,
24725 ) -> *mut ::std::os::raw::c_char;
24726}
24727unsafe extern "C" {
24728 pub fn BNSetErrorForDownloadInstance(
24729 instance: *mut BNDownloadInstance,
24730 error: *const ::std::os::raw::c_char,
24731 );
24732}
24733unsafe extern "C" {
24734 #[doc = " Websocket providers"]
24735 pub fn BNRegisterWebsocketProvider(
24736 name: *const ::std::os::raw::c_char,
24737 callbacks: *mut BNWebsocketProviderCallbacks,
24738 ) -> *mut BNWebsocketProvider;
24739}
24740unsafe extern "C" {
24741 pub fn BNGetWebsocketProviderList(count: *mut usize) -> *mut *mut BNWebsocketProvider;
24742}
24743unsafe extern "C" {
24744 pub fn BNFreeWebsocketProviderList(providers: *mut *mut BNWebsocketProvider);
24745}
24746unsafe extern "C" {
24747 pub fn BNGetWebsocketProviderByName(
24748 name: *const ::std::os::raw::c_char,
24749 ) -> *mut BNWebsocketProvider;
24750}
24751unsafe extern "C" {
24752 pub fn BNGetWebsocketProviderName(
24753 provider: *mut BNWebsocketProvider,
24754 ) -> *mut ::std::os::raw::c_char;
24755}
24756unsafe extern "C" {
24757 pub fn BNCreateWebsocketProviderClient(
24758 provider: *mut BNWebsocketProvider,
24759 ) -> *mut BNWebsocketClient;
24760}
24761unsafe extern "C" {
24762 pub fn BNInitWebsocketClient(
24763 provider: *mut BNWebsocketProvider,
24764 callbacks: *mut BNWebsocketClientCallbacks,
24765 ) -> *mut BNWebsocketClient;
24766}
24767unsafe extern "C" {
24768 pub fn BNNewWebsocketClientReference(client: *mut BNWebsocketClient) -> *mut BNWebsocketClient;
24769}
24770unsafe extern "C" {
24771 pub fn BNFreeWebsocketClient(client: *mut BNWebsocketClient);
24772}
24773unsafe extern "C" {
24774 pub fn BNConnectWebsocketClient(
24775 client: *mut BNWebsocketClient,
24776 url: *const ::std::os::raw::c_char,
24777 headerCount: u64,
24778 headerKeys: *const *const ::std::os::raw::c_char,
24779 headerValues: *const *const ::std::os::raw::c_char,
24780 callbacks: *mut BNWebsocketClientOutputCallbacks,
24781 ) -> bool;
24782}
24783unsafe extern "C" {
24784 pub fn BNNotifyWebsocketClientConnect(client: *mut BNWebsocketClient) -> bool;
24785}
24786unsafe extern "C" {
24787 pub fn BNNotifyWebsocketClientDisconnect(client: *mut BNWebsocketClient);
24788}
24789unsafe extern "C" {
24790 pub fn BNNotifyWebsocketClientError(
24791 client: *mut BNWebsocketClient,
24792 msg: *const ::std::os::raw::c_char,
24793 );
24794}
24795unsafe extern "C" {
24796 pub fn BNNotifyWebsocketClientReadData(
24797 client: *mut BNWebsocketClient,
24798 data: *mut u8,
24799 len: u64,
24800 ) -> bool;
24801}
24802unsafe extern "C" {
24803 pub fn BNWriteWebsocketClientData(
24804 client: *mut BNWebsocketClient,
24805 data: *const u8,
24806 len: u64,
24807 ) -> u64;
24808}
24809unsafe extern "C" {
24810 pub fn BNDisconnectWebsocketClient(client: *mut BNWebsocketClient) -> bool;
24811}
24812unsafe extern "C" {
24813 #[doc = " Scripting providers"]
24814 pub fn BNRegisterScriptingProvider(
24815 name: *const ::std::os::raw::c_char,
24816 apiName: *const ::std::os::raw::c_char,
24817 callbacks: *mut BNScriptingProviderCallbacks,
24818 ) -> *mut BNScriptingProvider;
24819}
24820unsafe extern "C" {
24821 pub fn BNGetScriptingProviderList(count: *mut usize) -> *mut *mut BNScriptingProvider;
24822}
24823unsafe extern "C" {
24824 pub fn BNFreeScriptingProviderList(providers: *mut *mut BNScriptingProvider);
24825}
24826unsafe extern "C" {
24827 pub fn BNGetScriptingProviderByName(
24828 name: *const ::std::os::raw::c_char,
24829 ) -> *mut BNScriptingProvider;
24830}
24831unsafe extern "C" {
24832 pub fn BNGetScriptingProviderByAPIName(
24833 name: *const ::std::os::raw::c_char,
24834 ) -> *mut BNScriptingProvider;
24835}
24836unsafe extern "C" {
24837 pub fn BNGetScriptingProviderName(
24838 provider: *mut BNScriptingProvider,
24839 ) -> *mut ::std::os::raw::c_char;
24840}
24841unsafe extern "C" {
24842 pub fn BNGetScriptingProviderAPIName(
24843 provider: *mut BNScriptingProvider,
24844 ) -> *mut ::std::os::raw::c_char;
24845}
24846unsafe extern "C" {
24847 pub fn BNCreateScriptingProviderInstance(
24848 provider: *mut BNScriptingProvider,
24849 ) -> *mut BNScriptingInstance;
24850}
24851unsafe extern "C" {
24852 pub fn BNLoadScriptingProviderModule(
24853 provider: *mut BNScriptingProvider,
24854 repository: *const ::std::os::raw::c_char,
24855 module: *const ::std::os::raw::c_char,
24856 force: bool,
24857 ) -> bool;
24858}
24859unsafe extern "C" {
24860 pub fn BNInstallScriptingProviderModules(
24861 provider: *mut BNScriptingProvider,
24862 modules: *const ::std::os::raw::c_char,
24863 ) -> bool;
24864}
24865unsafe extern "C" {
24866 pub fn BNInitScriptingInstance(
24867 provider: *mut BNScriptingProvider,
24868 callbacks: *mut BNScriptingInstanceCallbacks,
24869 ) -> *mut BNScriptingInstance;
24870}
24871unsafe extern "C" {
24872 pub fn BNNewScriptingInstanceReference(
24873 instance: *mut BNScriptingInstance,
24874 ) -> *mut BNScriptingInstance;
24875}
24876unsafe extern "C" {
24877 pub fn BNFreeScriptingInstance(instance: *mut BNScriptingInstance);
24878}
24879unsafe extern "C" {
24880 pub fn BNNotifyOutputForScriptingInstance(
24881 instance: *mut BNScriptingInstance,
24882 text: *const ::std::os::raw::c_char,
24883 );
24884}
24885unsafe extern "C" {
24886 pub fn BNNotifyWarningForScriptingInstance(
24887 instance: *mut BNScriptingInstance,
24888 text: *const ::std::os::raw::c_char,
24889 );
24890}
24891unsafe extern "C" {
24892 pub fn BNNotifyErrorForScriptingInstance(
24893 instance: *mut BNScriptingInstance,
24894 text: *const ::std::os::raw::c_char,
24895 );
24896}
24897unsafe extern "C" {
24898 pub fn BNNotifyInputReadyStateForScriptingInstance(
24899 instance: *mut BNScriptingInstance,
24900 state: BNScriptingProviderInputReadyState,
24901 );
24902}
24903unsafe extern "C" {
24904 pub fn BNRegisterScriptingInstanceOutputListener(
24905 instance: *mut BNScriptingInstance,
24906 callbacks: *mut BNScriptingOutputListener,
24907 );
24908}
24909unsafe extern "C" {
24910 pub fn BNUnregisterScriptingInstanceOutputListener(
24911 instance: *mut BNScriptingInstance,
24912 callbacks: *mut BNScriptingOutputListener,
24913 );
24914}
24915unsafe extern "C" {
24916 pub fn BNGetScriptingInstanceDelimiters(
24917 instance: *mut BNScriptingInstance,
24918 ) -> *mut ::std::os::raw::c_char;
24919}
24920unsafe extern "C" {
24921 pub fn BNSetScriptingInstanceDelimiters(
24922 instance: *mut BNScriptingInstance,
24923 delimiters: *const ::std::os::raw::c_char,
24924 );
24925}
24926unsafe extern "C" {
24927 pub fn BNGetScriptingInstanceInputReadyState(
24928 instance: *mut BNScriptingInstance,
24929 ) -> BNScriptingProviderInputReadyState;
24930}
24931unsafe extern "C" {
24932 pub fn BNExecuteScriptInput(
24933 instance: *mut BNScriptingInstance,
24934 input: *const ::std::os::raw::c_char,
24935 ) -> BNScriptingProviderExecuteResult;
24936}
24937unsafe extern "C" {
24938 pub fn BNExecuteScriptInputFromFilename(
24939 instance: *mut BNScriptingInstance,
24940 filename: *const ::std::os::raw::c_char,
24941 ) -> BNScriptingProviderExecuteResult;
24942}
24943unsafe extern "C" {
24944 pub fn BNCancelScriptInput(instance: *mut BNScriptingInstance);
24945}
24946unsafe extern "C" {
24947 pub fn BNScriptingInstanceReleaseBinaryView(
24948 instance: *mut BNScriptingInstance,
24949 view: *mut BNBinaryView,
24950 );
24951}
24952unsafe extern "C" {
24953 pub fn BNSetScriptingInstanceCurrentBinaryView(
24954 instance: *mut BNScriptingInstance,
24955 view: *mut BNBinaryView,
24956 );
24957}
24958unsafe extern "C" {
24959 pub fn BNSetScriptingInstanceCurrentFunction(
24960 instance: *mut BNScriptingInstance,
24961 func: *mut BNFunction,
24962 );
24963}
24964unsafe extern "C" {
24965 pub fn BNSetScriptingInstanceCurrentBasicBlock(
24966 instance: *mut BNScriptingInstance,
24967 block: *mut BNBasicBlock,
24968 );
24969}
24970unsafe extern "C" {
24971 pub fn BNSetScriptingInstanceCurrentAddress(instance: *mut BNScriptingInstance, addr: u64);
24972}
24973unsafe extern "C" {
24974 pub fn BNSetScriptingInstanceCurrentSelection(
24975 instance: *mut BNScriptingInstance,
24976 begin: u64,
24977 end: u64,
24978 );
24979}
24980unsafe extern "C" {
24981 pub fn BNScriptingInstanceCompleteInput(
24982 instance: *mut BNScriptingInstance,
24983 text: *const ::std::os::raw::c_char,
24984 state: u64,
24985 ) -> *mut ::std::os::raw::c_char;
24986}
24987unsafe extern "C" {
24988 pub fn BNScriptingInstanceCanCompleteArguments(
24989 instance: *mut BNScriptingInstance,
24990 text: *const ::std::os::raw::c_char,
24991 ) -> bool;
24992}
24993unsafe extern "C" {
24994 pub fn BNScriptingInstanceCompleteArguments(
24995 instance: *mut BNScriptingInstance,
24996 text: *const ::std::os::raw::c_char,
24997 argumentStart: *mut u64,
24998 ) -> *mut ::std::os::raw::c_char;
24999}
25000unsafe extern "C" {
25001 pub fn BNStopScriptingInstance(instance: *mut BNScriptingInstance);
25002}
25003unsafe extern "C" {
25004 pub fn BNFuzzyMatchSingle(
25005 target: *const ::std::os::raw::c_char,
25006 query: *const ::std::os::raw::c_char,
25007 ) -> usize;
25008}
25009unsafe extern "C" {
25010 #[doc = " Main thread actions"]
25011 pub fn BNRegisterMainThread(callbacks: *mut BNMainThreadCallbacks);
25012}
25013unsafe extern "C" {
25014 pub fn BNNewMainThreadActionReference(
25015 action: *mut BNMainThreadAction,
25016 ) -> *mut BNMainThreadAction;
25017}
25018unsafe extern "C" {
25019 pub fn BNFreeMainThreadAction(action: *mut BNMainThreadAction);
25020}
25021unsafe extern "C" {
25022 pub fn BNExecuteMainThreadAction(action: *mut BNMainThreadAction);
25023}
25024unsafe extern "C" {
25025 pub fn BNIsMainThreadActionDone(action: *mut BNMainThreadAction) -> bool;
25026}
25027unsafe extern "C" {
25028 pub fn BNWaitForMainThreadAction(action: *mut BNMainThreadAction);
25029}
25030unsafe extern "C" {
25031 pub fn BNExecuteOnMainThread(
25032 ctxt: *mut ::std::os::raw::c_void,
25033 func: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
25034 ) -> *mut BNMainThreadAction;
25035}
25036unsafe extern "C" {
25037 pub fn BNExecuteOnMainThreadAndWait(
25038 ctxt: *mut ::std::os::raw::c_void,
25039 func: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
25040 );
25041}
25042unsafe extern "C" {
25043 pub fn BNIsMainThread() -> bool;
25044}
25045unsafe extern "C" {
25046 #[doc = " Worker thread queue management"]
25047 pub fn BNWorkerEnqueue(
25048 ctxt: *mut ::std::os::raw::c_void,
25049 action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
25050 );
25051}
25052unsafe extern "C" {
25053 pub fn BNWorkerEnqueueNamed(
25054 ctxt: *mut ::std::os::raw::c_void,
25055 action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
25056 name: *const ::std::os::raw::c_char,
25057 );
25058}
25059unsafe extern "C" {
25060 pub fn BNWorkerPriorityEnqueue(
25061 ctxt: *mut ::std::os::raw::c_void,
25062 action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
25063 );
25064}
25065unsafe extern "C" {
25066 pub fn BNWorkerPriorityEnqueueNamed(
25067 ctxt: *mut ::std::os::raw::c_void,
25068 action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
25069 name: *const ::std::os::raw::c_char,
25070 );
25071}
25072unsafe extern "C" {
25073 pub fn BNWorkerInteractiveEnqueue(
25074 ctxt: *mut ::std::os::raw::c_void,
25075 action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
25076 );
25077}
25078unsafe extern "C" {
25079 pub fn BNWorkerInteractiveEnqueueNamed(
25080 ctxt: *mut ::std::os::raw::c_void,
25081 action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
25082 name: *const ::std::os::raw::c_char,
25083 );
25084}
25085unsafe extern "C" {
25086 pub fn BNGetWorkerThreadCount() -> usize;
25087}
25088unsafe extern "C" {
25089 pub fn BNSetWorkerThreadCount(count: usize);
25090}
25091unsafe extern "C" {
25092 pub fn BNSetThreadName(name: *const ::std::os::raw::c_char);
25093}
25094unsafe extern "C" {
25095 #[doc = " Background task progress reporting"]
25096 pub fn BNBeginBackgroundTask(
25097 initialText: *const ::std::os::raw::c_char,
25098 canCancel: bool,
25099 ) -> *mut BNBackgroundTask;
25100}
25101unsafe extern "C" {
25102 pub fn BNFinishBackgroundTask(task: *mut BNBackgroundTask);
25103}
25104unsafe extern "C" {
25105 pub fn BNSetBackgroundTaskProgressText(
25106 task: *mut BNBackgroundTask,
25107 text: *const ::std::os::raw::c_char,
25108 );
25109}
25110unsafe extern "C" {
25111 pub fn BNIsBackgroundTaskCancelled(task: *mut BNBackgroundTask) -> bool;
25112}
25113unsafe extern "C" {
25114 pub fn BNGetRunningBackgroundTasks(count: *mut usize) -> *mut *mut BNBackgroundTask;
25115}
25116unsafe extern "C" {
25117 pub fn BNNewBackgroundTaskReference(task: *mut BNBackgroundTask) -> *mut BNBackgroundTask;
25118}
25119unsafe extern "C" {
25120 pub fn BNFreeBackgroundTask(task: *mut BNBackgroundTask);
25121}
25122unsafe extern "C" {
25123 pub fn BNFreeBackgroundTaskList(tasks: *mut *mut BNBackgroundTask, count: usize);
25124}
25125unsafe extern "C" {
25126 pub fn BNGetBackgroundTaskProgressText(
25127 task: *mut BNBackgroundTask,
25128 ) -> *mut ::std::os::raw::c_char;
25129}
25130unsafe extern "C" {
25131 pub fn BNGetBackgroundTaskRuntimeSeconds(task: *mut BNBackgroundTask) -> u64;
25132}
25133unsafe extern "C" {
25134 pub fn BNCanCancelBackgroundTask(task: *mut BNBackgroundTask) -> bool;
25135}
25136unsafe extern "C" {
25137 pub fn BNCancelBackgroundTask(task: *mut BNBackgroundTask);
25138}
25139unsafe extern "C" {
25140 pub fn BNIsBackgroundTaskFinished(task: *mut BNBackgroundTask) -> bool;
25141}
25142unsafe extern "C" {
25143 #[doc = " Interaction APIs"]
25144 pub fn BNRegisterInteractionHandler(callbacks: *mut BNInteractionHandlerCallbacks);
25145}
25146unsafe extern "C" {
25147 pub fn BNMarkdownToHTML(contents: *const ::std::os::raw::c_char)
25148 -> *mut ::std::os::raw::c_char;
25149}
25150unsafe extern "C" {
25151 pub fn BNShowPlainTextReport(
25152 view: *mut BNBinaryView,
25153 title: *const ::std::os::raw::c_char,
25154 contents: *const ::std::os::raw::c_char,
25155 );
25156}
25157unsafe extern "C" {
25158 pub fn BNShowMarkdownReport(
25159 view: *mut BNBinaryView,
25160 title: *const ::std::os::raw::c_char,
25161 contents: *const ::std::os::raw::c_char,
25162 plaintext: *const ::std::os::raw::c_char,
25163 );
25164}
25165unsafe extern "C" {
25166 pub fn BNShowHTMLReport(
25167 view: *mut BNBinaryView,
25168 title: *const ::std::os::raw::c_char,
25169 contents: *const ::std::os::raw::c_char,
25170 plaintext: *const ::std::os::raw::c_char,
25171 );
25172}
25173unsafe extern "C" {
25174 pub fn BNShowGraphReport(
25175 view: *mut BNBinaryView,
25176 title: *const ::std::os::raw::c_char,
25177 graph: *mut BNFlowGraph,
25178 );
25179}
25180unsafe extern "C" {
25181 pub fn BNShowReportCollection(
25182 title: *const ::std::os::raw::c_char,
25183 reports: *mut BNReportCollection,
25184 );
25185}
25186unsafe extern "C" {
25187 pub fn BNGetTextLineInput(
25188 result: *mut *mut ::std::os::raw::c_char,
25189 prompt: *const ::std::os::raw::c_char,
25190 title: *const ::std::os::raw::c_char,
25191 ) -> bool;
25192}
25193unsafe extern "C" {
25194 pub fn BNGetIntegerInput(
25195 result: *mut i64,
25196 prompt: *const ::std::os::raw::c_char,
25197 title: *const ::std::os::raw::c_char,
25198 ) -> bool;
25199}
25200unsafe extern "C" {
25201 pub fn BNGetAddressInput(
25202 result: *mut u64,
25203 prompt: *const ::std::os::raw::c_char,
25204 title: *const ::std::os::raw::c_char,
25205 view: *mut BNBinaryView,
25206 currentAddr: u64,
25207 ) -> bool;
25208}
25209unsafe extern "C" {
25210 pub fn BNGetChoiceInput(
25211 result: *mut usize,
25212 prompt: *const ::std::os::raw::c_char,
25213 title: *const ::std::os::raw::c_char,
25214 choices: *mut *const ::std::os::raw::c_char,
25215 count: usize,
25216 ) -> bool;
25217}
25218unsafe extern "C" {
25219 pub fn BNGetLargeChoiceInput(
25220 result: *mut usize,
25221 prompt: *const ::std::os::raw::c_char,
25222 title: *const ::std::os::raw::c_char,
25223 choices: *mut *const ::std::os::raw::c_char,
25224 count: usize,
25225 ) -> bool;
25226}
25227unsafe extern "C" {
25228 pub fn BNGetOpenFileNameInput(
25229 result: *mut *mut ::std::os::raw::c_char,
25230 prompt: *const ::std::os::raw::c_char,
25231 ext: *const ::std::os::raw::c_char,
25232 ) -> bool;
25233}
25234unsafe extern "C" {
25235 pub fn BNGetSaveFileNameInput(
25236 result: *mut *mut ::std::os::raw::c_char,
25237 prompt: *const ::std::os::raw::c_char,
25238 ext: *const ::std::os::raw::c_char,
25239 defaultName: *const ::std::os::raw::c_char,
25240 ) -> bool;
25241}
25242unsafe extern "C" {
25243 pub fn BNGetDirectoryNameInput(
25244 result: *mut *mut ::std::os::raw::c_char,
25245 prompt: *const ::std::os::raw::c_char,
25246 defaultName: *const ::std::os::raw::c_char,
25247 ) -> bool;
25248}
25249unsafe extern "C" {
25250 pub fn BNGetCheckboxInput(
25251 result: *mut i64,
25252 prompt: *const ::std::os::raw::c_char,
25253 title: *const ::std::os::raw::c_char,
25254 defaultChoice: *const i64,
25255 ) -> bool;
25256}
25257unsafe extern "C" {
25258 pub fn BNGetFormInput(
25259 fields: *mut BNFormInputField,
25260 count: usize,
25261 title: *const ::std::os::raw::c_char,
25262 ) -> bool;
25263}
25264unsafe extern "C" {
25265 pub fn BNFreeFormInputResults(fields: *mut BNFormInputField, count: usize);
25266}
25267unsafe extern "C" {
25268 pub fn BNShowMessageBox(
25269 title: *const ::std::os::raw::c_char,
25270 text: *const ::std::os::raw::c_char,
25271 buttons: BNMessageBoxButtonSet,
25272 icon: BNMessageBoxIcon,
25273 ) -> BNMessageBoxButtonResult;
25274}
25275unsafe extern "C" {
25276 pub fn BNOpenUrl(url: *const ::std::os::raw::c_char) -> bool;
25277}
25278unsafe extern "C" {
25279 pub fn BNRunProgressDialog(
25280 title: *const ::std::os::raw::c_char,
25281 canCancel: bool,
25282 task: ::std::option::Option<
25283 unsafe extern "C" fn(
25284 taskCtxt: *mut ::std::os::raw::c_void,
25285 progress: BNProgressFunction,
25286 progressCtxt: *mut ::std::os::raw::c_void,
25287 ),
25288 >,
25289 taskCtxt: *mut ::std::os::raw::c_void,
25290 ) -> bool;
25291}
25292unsafe extern "C" {
25293 pub fn BNCreateReportCollection() -> *mut BNReportCollection;
25294}
25295unsafe extern "C" {
25296 pub fn BNNewReportCollectionReference(
25297 reports: *mut BNReportCollection,
25298 ) -> *mut BNReportCollection;
25299}
25300unsafe extern "C" {
25301 pub fn BNFreeReportCollection(reports: *mut BNReportCollection);
25302}
25303unsafe extern "C" {
25304 pub fn BNGetReportCollectionCount(reports: *mut BNReportCollection) -> usize;
25305}
25306unsafe extern "C" {
25307 pub fn BNGetReportType(reports: *mut BNReportCollection, i: usize) -> BNReportType;
25308}
25309unsafe extern "C" {
25310 pub fn BNGetReportView(reports: *mut BNReportCollection, i: usize) -> *mut BNBinaryView;
25311}
25312unsafe extern "C" {
25313 pub fn BNGetReportTitle(
25314 reports: *mut BNReportCollection,
25315 i: usize,
25316 ) -> *mut ::std::os::raw::c_char;
25317}
25318unsafe extern "C" {
25319 pub fn BNGetReportContents(
25320 reports: *mut BNReportCollection,
25321 i: usize,
25322 ) -> *mut ::std::os::raw::c_char;
25323}
25324unsafe extern "C" {
25325 pub fn BNGetReportPlainText(
25326 reports: *mut BNReportCollection,
25327 i: usize,
25328 ) -> *mut ::std::os::raw::c_char;
25329}
25330unsafe extern "C" {
25331 pub fn BNGetReportFlowGraph(reports: *mut BNReportCollection, i: usize) -> *mut BNFlowGraph;
25332}
25333unsafe extern "C" {
25334 pub fn BNAddPlainTextReportToCollection(
25335 reports: *mut BNReportCollection,
25336 view: *mut BNBinaryView,
25337 title: *const ::std::os::raw::c_char,
25338 contents: *const ::std::os::raw::c_char,
25339 );
25340}
25341unsafe extern "C" {
25342 pub fn BNAddMarkdownReportToCollection(
25343 reports: *mut BNReportCollection,
25344 view: *mut BNBinaryView,
25345 title: *const ::std::os::raw::c_char,
25346 contents: *const ::std::os::raw::c_char,
25347 plaintext: *const ::std::os::raw::c_char,
25348 );
25349}
25350unsafe extern "C" {
25351 pub fn BNAddHTMLReportToCollection(
25352 reports: *mut BNReportCollection,
25353 view: *mut BNBinaryView,
25354 title: *const ::std::os::raw::c_char,
25355 contents: *const ::std::os::raw::c_char,
25356 plaintext: *const ::std::os::raw::c_char,
25357 );
25358}
25359unsafe extern "C" {
25360 pub fn BNAddGraphReportToCollection(
25361 reports: *mut BNReportCollection,
25362 view: *mut BNBinaryView,
25363 title: *const ::std::os::raw::c_char,
25364 graph: *mut BNFlowGraph,
25365 );
25366}
25367unsafe extern "C" {
25368 pub fn BNUpdateReportFlowGraph(
25369 reports: *mut BNReportCollection,
25370 i: usize,
25371 graph: *mut BNFlowGraph,
25372 );
25373}
25374unsafe extern "C" {
25375 #[doc = " Demangler"]
25376 pub fn BNDemangleMS(
25377 arch: *mut BNArchitecture,
25378 mangledName: *const ::std::os::raw::c_char,
25379 outType: *mut *mut BNType,
25380 outVarName: *mut *mut *mut ::std::os::raw::c_char,
25381 outVarNameElements: *mut usize,
25382 simplify: bool,
25383 ) -> bool;
25384}
25385unsafe extern "C" {
25386 pub fn BNDemangleMSWithOptions(
25387 arch: *mut BNArchitecture,
25388 mangledName: *const ::std::os::raw::c_char,
25389 outType: *mut *mut BNType,
25390 outVarName: *mut *mut *mut ::std::os::raw::c_char,
25391 outVarNameElements: *mut usize,
25392 view: *const BNBinaryView,
25393 ) -> bool;
25394}
25395unsafe extern "C" {
25396 pub fn BNDemangleMSPlatform(
25397 platform: *mut BNPlatform,
25398 mangledName: *const ::std::os::raw::c_char,
25399 outType: *mut *mut BNType,
25400 outVarName: *mut *mut *mut ::std::os::raw::c_char,
25401 outVarNameElements: *mut usize,
25402 simplify: bool,
25403 ) -> bool;
25404}
25405unsafe extern "C" {
25406 pub fn BNIsGNU3MangledString(mangledName: *const ::std::os::raw::c_char) -> bool;
25407}
25408unsafe extern "C" {
25409 pub fn BNDemangleGNU3(
25410 arch: *mut BNArchitecture,
25411 mangledName: *const ::std::os::raw::c_char,
25412 outType: *mut *mut BNType,
25413 outVarName: *mut *mut *mut ::std::os::raw::c_char,
25414 outVarNameElements: *mut usize,
25415 simplify: bool,
25416 ) -> bool;
25417}
25418unsafe extern "C" {
25419 pub fn BNDemangleGNU3WithOptions(
25420 arch: *mut BNArchitecture,
25421 mangledName: *const ::std::os::raw::c_char,
25422 outType: *mut *mut BNType,
25423 outVarName: *mut *mut *mut ::std::os::raw::c_char,
25424 outVarNameElements: *mut usize,
25425 view: *const BNBinaryView,
25426 ) -> bool;
25427}
25428unsafe extern "C" {
25429 pub fn BNFreeDemangledName(name: *mut *mut *mut ::std::os::raw::c_char, nameElements: usize);
25430}
25431unsafe extern "C" {
25432 pub fn BNDemangleLLVM(
25433 mangledName: *const ::std::os::raw::c_char,
25434 outVarName: *mut *mut *mut ::std::os::raw::c_char,
25435 outVarNameElements: *mut usize,
25436 simplify: bool,
25437 ) -> bool;
25438}
25439unsafe extern "C" {
25440 pub fn BNDemangleLLVMWithOptions(
25441 mangledName: *const ::std::os::raw::c_char,
25442 outVarName: *mut *mut *mut ::std::os::raw::c_char,
25443 outVarNameElements: *mut usize,
25444 view: *const BNBinaryView,
25445 ) -> bool;
25446}
25447unsafe extern "C" {
25448 pub fn BNRegisterDemangler(
25449 name: *const ::std::os::raw::c_char,
25450 callbacks: *mut BNDemanglerCallbacks,
25451 ) -> *mut BNDemangler;
25452}
25453unsafe extern "C" {
25454 pub fn BNGetDemanglerList(count: *mut usize) -> *mut *mut BNDemangler;
25455}
25456unsafe extern "C" {
25457 pub fn BNFreeDemanglerList(demanglers: *mut *mut BNDemangler);
25458}
25459unsafe extern "C" {
25460 pub fn BNGetDemanglerByName(name: *const ::std::os::raw::c_char) -> *mut BNDemangler;
25461}
25462unsafe extern "C" {
25463 pub fn BNGetDemanglerName(demangler: *mut BNDemangler) -> *mut ::std::os::raw::c_char;
25464}
25465unsafe extern "C" {
25466 pub fn BNPromoteDemangler(demangler: *mut BNDemangler);
25467}
25468unsafe extern "C" {
25469 pub fn BNIsDemanglerMangledName(
25470 demangler: *mut BNDemangler,
25471 name: *const ::std::os::raw::c_char,
25472 ) -> bool;
25473}
25474unsafe extern "C" {
25475 pub fn BNDemanglerDemangle(
25476 demangler: *mut BNDemangler,
25477 arch: *mut BNArchitecture,
25478 name: *const ::std::os::raw::c_char,
25479 outType: *mut *mut BNType,
25480 outVarName: *mut BNQualifiedName,
25481 view: *mut BNBinaryView,
25482 ) -> bool;
25483}
25484unsafe extern "C" {
25485 pub fn BNDemangleGeneric(
25486 arch: *mut BNArchitecture,
25487 name: *const ::std::os::raw::c_char,
25488 outType: *mut *mut BNType,
25489 outVarName: *mut BNQualifiedName,
25490 view: *mut BNBinaryView,
25491 simplify: bool,
25492 ) -> bool;
25493}
25494unsafe extern "C" {
25495 #[doc = " Plugin repository APIs"]
25496 pub fn BNPluginGetApis(p: *mut BNPlugin, count: *mut usize)
25497 -> *mut *mut ::std::os::raw::c_char;
25498}
25499unsafe extern "C" {
25500 pub fn BNPluginGetAuthor(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
25501}
25502unsafe extern "C" {
25503 pub fn BNPluginGetDescription(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
25504}
25505unsafe extern "C" {
25506 pub fn BNPluginGetLicenseText(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
25507}
25508unsafe extern "C" {
25509 pub fn BNPluginGetMinimumVersionInfo(p: *mut BNPlugin) -> BNVersionInfo;
25510}
25511unsafe extern "C" {
25512 pub fn BNPluginGetMaximumVersionInfo(p: *mut BNPlugin) -> BNVersionInfo;
25513}
25514unsafe extern "C" {
25515 pub fn BNParseVersionString(v: *const ::std::os::raw::c_char) -> BNVersionInfo;
25516}
25517unsafe extern "C" {
25518 pub fn BNVersionLessThan(smaller: BNVersionInfo, larger: BNVersionInfo) -> bool;
25519}
25520unsafe extern "C" {
25521 pub fn BNPluginVersionIDLessThan(
25522 p: *mut BNPlugin,
25523 smaller: *const ::std::os::raw::c_char,
25524 larger: *const ::std::os::raw::c_char,
25525 ) -> bool;
25526}
25527unsafe extern "C" {
25528 pub fn BNPluginGetName(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
25529}
25530unsafe extern "C" {
25531 pub fn BNPluginGetProjectUrl(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
25532}
25533unsafe extern "C" {
25534 pub fn BNPluginGetPackageUrl(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
25535}
25536unsafe extern "C" {
25537 pub fn BNPluginGetAuthorUrl(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
25538}
25539unsafe extern "C" {
25540 pub fn BNPluginGetVersions(p: *mut BNPlugin, count: *mut usize) -> *mut BNPluginVersion;
25541}
25542unsafe extern "C" {
25543 pub fn BNFreePluginVersions(r: *mut BNPluginVersion, count: usize);
25544}
25545unsafe extern "C" {
25546 pub fn BNPluginGetCurrentVersionID(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
25547}
25548unsafe extern "C" {
25549 pub fn BNPluginGetCurrentVersion(p: *mut BNPlugin) -> BNPluginVersion;
25550}
25551unsafe extern "C" {
25552 pub fn BNPluginFreeVersion(v: BNPluginVersion);
25553}
25554unsafe extern "C" {
25555 pub fn BNPluginGetCommit(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
25556}
25557unsafe extern "C" {
25558 pub fn BNPluginGetViewOnly(p: *mut BNPlugin) -> bool;
25559}
25560unsafe extern "C" {
25561 pub fn BNPluginGetIsPaid(p: *mut BNPlugin) -> bool;
25562}
25563unsafe extern "C" {
25564 pub fn BNFreePluginTypes(r: *mut BNPluginType);
25565}
25566unsafe extern "C" {
25567 pub fn BNNewPluginReference(r: *mut BNPlugin) -> *mut BNPlugin;
25568}
25569unsafe extern "C" {
25570 pub fn BNFreePlugin(plugin: *mut BNPlugin);
25571}
25572unsafe extern "C" {
25573 pub fn BNPluginGetPath(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
25574}
25575unsafe extern "C" {
25576 pub fn BNPluginGetSubdir(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
25577}
25578unsafe extern "C" {
25579 pub fn BNPluginGetDependencies(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
25580}
25581unsafe extern "C" {
25582 pub fn BNPluginGetLongdescription(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
25583}
25584unsafe extern "C" {
25585 pub fn BNPluginGetLastUpdate(p: *mut BNPlugin) -> u64;
25586}
25587unsafe extern "C" {
25588 pub fn BNPluginIsInstalled(p: *mut BNPlugin) -> bool;
25589}
25590unsafe extern "C" {
25591 pub fn BNPluginIsEnabled(p: *mut BNPlugin) -> bool;
25592}
25593unsafe extern "C" {
25594 pub fn BNPluginGetPluginStatus(p: *mut BNPlugin) -> BNPluginStatus;
25595}
25596unsafe extern "C" {
25597 pub fn BNPluginGetPluginTypes(p: *mut BNPlugin, count: *mut usize) -> *mut BNPluginType;
25598}
25599unsafe extern "C" {
25600 pub fn BNPluginEnable(p: *mut BNPlugin, force: bool) -> bool;
25601}
25602unsafe extern "C" {
25603 pub fn BNPluginDisable(p: *mut BNPlugin) -> bool;
25604}
25605unsafe extern "C" {
25606 pub fn BNPluginInstall(p: *mut BNPlugin, versionID: *const ::std::os::raw::c_char) -> bool;
25607}
25608unsafe extern "C" {
25609 pub fn BNPluginInstallDependencies(p: *mut BNPlugin) -> bool;
25610}
25611unsafe extern "C" {
25612 pub fn BNPluginUninstall(p: *mut BNPlugin) -> bool;
25613}
25614unsafe extern "C" {
25615 pub fn BNPluginUpdate(p: *mut BNPlugin, versionID: *const ::std::os::raw::c_char) -> bool;
25616}
25617unsafe extern "C" {
25618 pub fn BNPluginGetPlatforms(
25619 p: *mut BNPlugin,
25620 count: *mut usize,
25621 ) -> *mut *mut ::std::os::raw::c_char;
25622}
25623unsafe extern "C" {
25624 pub fn BNFreePluginPlatforms(platforms: *mut *mut ::std::os::raw::c_char, count: usize);
25625}
25626unsafe extern "C" {
25627 pub fn BNPluginGetRepository(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
25628}
25629unsafe extern "C" {
25630 pub fn BNPluginIsBeingDeleted(p: *mut BNPlugin) -> bool;
25631}
25632unsafe extern "C" {
25633 pub fn BNPluginIsBeingUpdated(p: *mut BNPlugin) -> bool;
25634}
25635unsafe extern "C" {
25636 pub fn BNPluginIsRunning(p: *mut BNPlugin) -> bool;
25637}
25638unsafe extern "C" {
25639 pub fn BNPluginIsUpdatePending(p: *mut BNPlugin) -> bool;
25640}
25641unsafe extern "C" {
25642 pub fn BNPluginIsDisablePending(p: *mut BNPlugin) -> bool;
25643}
25644unsafe extern "C" {
25645 pub fn BNPluginIsDeletePending(p: *mut BNPlugin) -> bool;
25646}
25647unsafe extern "C" {
25648 pub fn BNPluginIsUpdateAvailable(p: *mut BNPlugin) -> bool;
25649}
25650unsafe extern "C" {
25651 pub fn BNPluginAreDependenciesBeingInstalled(p: *mut BNPlugin) -> bool;
25652}
25653unsafe extern "C" {
25654 pub fn BNPluginGetProjectData(p: *mut BNPlugin) -> *mut ::std::os::raw::c_char;
25655}
25656unsafe extern "C" {
25657 pub fn BNPluginGetCurrentVersionCreationDate(p: *mut BNPlugin) -> *mut ::std::os::raw::c_char;
25658}
25659unsafe extern "C" {
25660 pub fn BNNewRepositoryReference(r: *mut BNRepository) -> *mut BNRepository;
25661}
25662unsafe extern "C" {
25663 pub fn BNFreeRepository(r: *mut BNRepository);
25664}
25665unsafe extern "C" {
25666 pub fn BNRepositoryGetUrl(r: *mut BNRepository) -> *mut ::std::os::raw::c_char;
25667}
25668unsafe extern "C" {
25669 pub fn BNRepositoryGetRepoPath(r: *mut BNRepository) -> *mut ::std::os::raw::c_char;
25670}
25671unsafe extern "C" {
25672 pub fn BNRepositoryGetPlugins(r: *mut BNRepository, count: *mut usize) -> *mut *mut BNPlugin;
25673}
25674unsafe extern "C" {
25675 pub fn BNFreeRepositoryPluginList(r: *mut *mut BNPlugin);
25676}
25677unsafe extern "C" {
25678 pub fn BNRepositoryFreePluginDirectoryList(
25679 list: *mut *mut ::std::os::raw::c_char,
25680 count: usize,
25681 );
25682}
25683unsafe extern "C" {
25684 pub fn BNRepositoryGetPluginByPath(
25685 r: *mut BNRepository,
25686 pluginPath: *const ::std::os::raw::c_char,
25687 ) -> *mut BNPlugin;
25688}
25689unsafe extern "C" {
25690 pub fn BNRepositoryGetPluginsPath(r: *mut BNRepository) -> *const ::std::os::raw::c_char;
25691}
25692unsafe extern "C" {
25693 pub fn BNRepositoryManagerCheckForUpdates() -> bool;
25694}
25695unsafe extern "C" {
25696 pub fn BNRepositoryManagerGetRepositories(count: *mut usize) -> *mut *mut BNRepository;
25697}
25698unsafe extern "C" {
25699 pub fn BNFreeRepositoryManagerRepositoriesList(r: *mut *mut BNRepository);
25700}
25701unsafe extern "C" {
25702 pub fn BNRepositoryManagerAddRepository(
25703 url: *const ::std::os::raw::c_char,
25704 repoPath: *const ::std::os::raw::c_char,
25705 ) -> bool;
25706}
25707unsafe extern "C" {
25708 pub fn BNRepositoryGetRepositoryByPath(
25709 repoPath: *const ::std::os::raw::c_char,
25710 ) -> *mut BNRepository;
25711}
25712unsafe extern "C" {
25713 pub fn BNRepositoryManagerGetDefaultRepository() -> *mut BNRepository;
25714}
25715unsafe extern "C" {
25716 #[doc = " Components"]
25717 pub fn BNNewComponentReference(component: *mut BNComponent) -> *mut BNComponent;
25718}
25719unsafe extern "C" {
25720 pub fn BNFreeComponent(component: *mut BNComponent);
25721}
25722unsafe extern "C" {
25723 pub fn BNComponentGetContainedFunctions(
25724 component: *mut BNComponent,
25725 count: *mut usize,
25726 ) -> *mut *mut BNFunction;
25727}
25728unsafe extern "C" {
25729 pub fn BNComponentGetContainedComponents(
25730 component: *mut BNComponent,
25731 count: *mut usize,
25732 ) -> *mut *mut BNComponent;
25733}
25734unsafe extern "C" {
25735 pub fn BNComponentGetContainedDataVariables(
25736 component: *mut BNComponent,
25737 count: *mut usize,
25738 ) -> *mut BNDataVariable;
25739}
25740unsafe extern "C" {
25741 pub fn BNComponentGetReferencedDataVariables(
25742 component: *mut BNComponent,
25743 count: *mut usize,
25744 ) -> *mut BNDataVariable;
25745}
25746unsafe extern "C" {
25747 pub fn BNComponentGetReferencedDataVariablesRecursive(
25748 component: *mut BNComponent,
25749 count: *mut usize,
25750 ) -> *mut BNDataVariable;
25751}
25752unsafe extern "C" {
25753 pub fn BNComponentGetReferencedTypes(
25754 component: *mut BNComponent,
25755 count: *mut usize,
25756 ) -> *mut *mut BNType;
25757}
25758unsafe extern "C" {
25759 pub fn BNComponentGetReferencedTypesRecursive(
25760 component: *mut BNComponent,
25761 count: *mut usize,
25762 ) -> *mut *mut BNType;
25763}
25764unsafe extern "C" {
25765 pub fn BNFreeComponents(components: *mut *mut BNComponent, count: usize);
25766}
25767unsafe extern "C" {
25768 pub fn BNComponentFreeReferencedTypes(types: *mut *mut BNType, count: usize);
25769}
25770unsafe extern "C" {
25771 pub fn BNComponentGetParent(component: *mut BNComponent) -> *mut BNComponent;
25772}
25773unsafe extern "C" {
25774 pub fn BNComponentContainsFunction(
25775 component: *mut BNComponent,
25776 function: *mut BNFunction,
25777 ) -> bool;
25778}
25779unsafe extern "C" {
25780 pub fn BNComponentContainsComponent(
25781 parent: *mut BNComponent,
25782 component: *mut BNComponent,
25783 ) -> bool;
25784}
25785unsafe extern "C" {
25786 pub fn BNComponentContainsDataVariable(component: *mut BNComponent, address: u64) -> bool;
25787}
25788unsafe extern "C" {
25789 pub fn BNComponentAddFunctionReference(
25790 component: *mut BNComponent,
25791 function: *mut BNFunction,
25792 ) -> bool;
25793}
25794unsafe extern "C" {
25795 pub fn BNComponentAddComponent(parent: *mut BNComponent, component: *mut BNComponent) -> bool;
25796}
25797unsafe extern "C" {
25798 pub fn BNComponentAddDataVariable(component: *mut BNComponent, address: u64) -> bool;
25799}
25800unsafe extern "C" {
25801 pub fn BNComponentRemoveComponent(component: *mut BNComponent) -> bool;
25802}
25803unsafe extern "C" {
25804 pub fn BNComponentRemoveFunctionReference(
25805 component: *mut BNComponent,
25806 function: *mut BNFunction,
25807 ) -> bool;
25808}
25809unsafe extern "C" {
25810 pub fn BNComponentRemoveAllFunctions(component: *mut BNComponent);
25811}
25812unsafe extern "C" {
25813 pub fn BNComponentRemoveDataVariable(component: *mut BNComponent, address: u64) -> bool;
25814}
25815unsafe extern "C" {
25816 pub fn BNComponentAddAllMembersFromComponent(
25817 component: *mut BNComponent,
25818 fromComponent: *mut BNComponent,
25819 );
25820}
25821unsafe extern "C" {
25822 pub fn BNComponentGetGuid(component: *mut BNComponent) -> *mut ::std::os::raw::c_char;
25823}
25824unsafe extern "C" {
25825 pub fn BNComponentsEqual(a: *mut BNComponent, b: *mut BNComponent) -> bool;
25826}
25827unsafe extern "C" {
25828 pub fn BNComponentsNotEqual(a: *mut BNComponent, b: *mut BNComponent) -> bool;
25829}
25830unsafe extern "C" {
25831 pub fn BNComponentGetDisplayName(component: *mut BNComponent) -> *mut ::std::os::raw::c_char;
25832}
25833unsafe extern "C" {
25834 pub fn BNComponentGetOriginalName(component: *mut BNComponent) -> *mut ::std::os::raw::c_char;
25835}
25836unsafe extern "C" {
25837 pub fn BNComponentSetName(component: *mut BNComponent, name: *const ::std::os::raw::c_char);
25838}
25839unsafe extern "C" {
25840 pub fn BNComponentGetView(component: *mut BNComponent) -> *mut BNBinaryView;
25841}
25842unsafe extern "C" {
25843 #[doc = " LLVM Services APIs"]
25844 pub fn BNLlvmServicesInit();
25845}
25846unsafe extern "C" {
25847 pub fn BNLlvmServicesAssemble(
25848 src: *const ::std::os::raw::c_char,
25849 dialect: ::std::os::raw::c_int,
25850 triplet: *const ::std::os::raw::c_char,
25851 codeModel: ::std::os::raw::c_int,
25852 relocMode: ::std::os::raw::c_int,
25853 outBytes: *mut *mut ::std::os::raw::c_char,
25854 outBytesLen: *mut ::std::os::raw::c_int,
25855 err: *mut *mut ::std::os::raw::c_char,
25856 errLen: *mut ::std::os::raw::c_int,
25857 ) -> ::std::os::raw::c_int;
25858}
25859unsafe extern "C" {
25860 pub fn BNLlvmServicesAssembleFree(
25861 outBytes: *mut ::std::os::raw::c_char,
25862 err: *mut ::std::os::raw::c_char,
25863 );
25864}
25865unsafe extern "C" {
25866 pub fn BNLlvmServicesDisasmInstruction(
25867 triplet: *const ::std::os::raw::c_char,
25868 src: *mut u8,
25869 srcLen: ::std::os::raw::c_int,
25870 addr: u64,
25871 result: *mut ::std::os::raw::c_char,
25872 resultMaxSize: usize,
25873 ) -> ::std::os::raw::c_int;
25874}
25875unsafe extern "C" {
25876 #[doc = " Filesystem functionality"]
25877 pub fn BNDeleteFile(path: *const ::std::os::raw::c_char) -> bool;
25878}
25879unsafe extern "C" {
25880 pub fn BNDeleteDirectory(path: *const ::std::os::raw::c_char) -> bool;
25881}
25882unsafe extern "C" {
25883 pub fn BNCreateDirectory(
25884 path: *const ::std::os::raw::c_char,
25885 createSubdirectories: bool,
25886 ) -> bool;
25887}
25888unsafe extern "C" {
25889 pub fn BNPathExists(path: *const ::std::os::raw::c_char) -> bool;
25890}
25891unsafe extern "C" {
25892 pub fn BNIsPathDirectory(path: *const ::std::os::raw::c_char) -> bool;
25893}
25894unsafe extern "C" {
25895 pub fn BNIsPathRegularFile(path: *const ::std::os::raw::c_char) -> bool;
25896}
25897unsafe extern "C" {
25898 pub fn BNFileSize(path: *const ::std::os::raw::c_char, size: *mut u64) -> bool;
25899}
25900unsafe extern "C" {
25901 pub fn BNRenameFile(
25902 source: *const ::std::os::raw::c_char,
25903 dest: *const ::std::os::raw::c_char,
25904 ) -> bool;
25905}
25906unsafe extern "C" {
25907 pub fn BNCopyFile(
25908 source: *const ::std::os::raw::c_char,
25909 dest: *const ::std::os::raw::c_char,
25910 ) -> bool;
25911}
25912unsafe extern "C" {
25913 pub fn BNGetFilePathsInDirectory(
25914 path: *const ::std::os::raw::c_char,
25915 count: *mut usize,
25916 ) -> *mut *mut ::std::os::raw::c_char;
25917}
25918unsafe extern "C" {
25919 pub fn BNGetSystemCacheDirectory() -> *mut ::std::os::raw::c_char;
25920}
25921unsafe extern "C" {
25922 #[doc = " Settings APIs"]
25923 pub fn BNCreateSettings(schemaId: *const ::std::os::raw::c_char) -> *mut BNSettings;
25924}
25925unsafe extern "C" {
25926 pub fn BNNewSettingsReference(settings: *mut BNSettings) -> *mut BNSettings;
25927}
25928unsafe extern "C" {
25929 pub fn BNFreeSettings(settings: *mut BNSettings);
25930}
25931unsafe extern "C" {
25932 pub fn BNLoadSettingsFile(
25933 settings: *mut BNSettings,
25934 fileName: *const ::std::os::raw::c_char,
25935 scope: BNSettingsScope,
25936 view: *mut BNBinaryView,
25937 ) -> bool;
25938}
25939unsafe extern "C" {
25940 pub fn BNSettingsSetResourceId(
25941 settings: *mut BNSettings,
25942 resourceId: *const ::std::os::raw::c_char,
25943 );
25944}
25945unsafe extern "C" {
25946 pub fn BNSettingsRegisterGroup(
25947 settings: *mut BNSettings,
25948 group: *const ::std::os::raw::c_char,
25949 title: *const ::std::os::raw::c_char,
25950 ) -> bool;
25951}
25952unsafe extern "C" {
25953 pub fn BNSettingsRegisterSetting(
25954 settings: *mut BNSettings,
25955 key: *const ::std::os::raw::c_char,
25956 properties: *const ::std::os::raw::c_char,
25957 ) -> bool;
25958}
25959unsafe extern "C" {
25960 pub fn BNSettingsContains(
25961 settings: *mut BNSettings,
25962 key: *const ::std::os::raw::c_char,
25963 ) -> bool;
25964}
25965unsafe extern "C" {
25966 pub fn BNSettingsIsEmpty(
25967 settings: *mut BNSettings,
25968 view: *mut BNBinaryView,
25969 func: *mut BNFunction,
25970 scope: BNSettingsScope,
25971 ) -> bool;
25972}
25973unsafe extern "C" {
25974 pub fn BNSettingsKeysList(
25975 settings: *mut BNSettings,
25976 inoutSize: *mut usize,
25977 ) -> *mut *const ::std::os::raw::c_char;
25978}
25979unsafe extern "C" {
25980 pub fn BNSettingsQueryPropertyString(
25981 settings: *mut BNSettings,
25982 key: *const ::std::os::raw::c_char,
25983 property: *const ::std::os::raw::c_char,
25984 ) -> *mut ::std::os::raw::c_char;
25985}
25986unsafe extern "C" {
25987 pub fn BNSettingsQueryPropertyStringList(
25988 settings: *mut BNSettings,
25989 key: *const ::std::os::raw::c_char,
25990 property: *const ::std::os::raw::c_char,
25991 inoutSize: *mut usize,
25992 ) -> *mut *const ::std::os::raw::c_char;
25993}
25994unsafe extern "C" {
25995 pub fn BNSettingsUpdateProperty(
25996 settings: *mut BNSettings,
25997 key: *const ::std::os::raw::c_char,
25998 property: *const ::std::os::raw::c_char,
25999 ) -> bool;
26000}
26001unsafe extern "C" {
26002 pub fn BNSettingsUpdateBoolProperty(
26003 settings: *mut BNSettings,
26004 key: *const ::std::os::raw::c_char,
26005 property: *const ::std::os::raw::c_char,
26006 value: bool,
26007 ) -> bool;
26008}
26009unsafe extern "C" {
26010 pub fn BNSettingsUpdateDoubleProperty(
26011 settings: *mut BNSettings,
26012 key: *const ::std::os::raw::c_char,
26013 property: *const ::std::os::raw::c_char,
26014 value: f64,
26015 ) -> bool;
26016}
26017unsafe extern "C" {
26018 pub fn BNSettingsUpdateInt64Property(
26019 settings: *mut BNSettings,
26020 key: *const ::std::os::raw::c_char,
26021 property: *const ::std::os::raw::c_char,
26022 value: i64,
26023 ) -> bool;
26024}
26025unsafe extern "C" {
26026 pub fn BNSettingsUpdateUInt64Property(
26027 settings: *mut BNSettings,
26028 key: *const ::std::os::raw::c_char,
26029 property: *const ::std::os::raw::c_char,
26030 value: u64,
26031 ) -> bool;
26032}
26033unsafe extern "C" {
26034 pub fn BNSettingsUpdateStringProperty(
26035 settings: *mut BNSettings,
26036 key: *const ::std::os::raw::c_char,
26037 property: *const ::std::os::raw::c_char,
26038 value: *const ::std::os::raw::c_char,
26039 ) -> bool;
26040}
26041unsafe extern "C" {
26042 pub fn BNSettingsUpdateStringListProperty(
26043 settings: *mut BNSettings,
26044 key: *const ::std::os::raw::c_char,
26045 property: *const ::std::os::raw::c_char,
26046 value: *mut *const ::std::os::raw::c_char,
26047 size: usize,
26048 ) -> bool;
26049}
26050unsafe extern "C" {
26051 pub fn BNSettingsDeserializeSchema(
26052 settings: *mut BNSettings,
26053 schema: *const ::std::os::raw::c_char,
26054 scope: BNSettingsScope,
26055 merge: bool,
26056 ) -> bool;
26057}
26058unsafe extern "C" {
26059 pub fn BNSettingsSerializeSchema(settings: *mut BNSettings) -> *mut ::std::os::raw::c_char;
26060}
26061unsafe extern "C" {
26062 pub fn BNDeserializeSettings(
26063 settings: *mut BNSettings,
26064 contents: *const ::std::os::raw::c_char,
26065 view: *mut BNBinaryView,
26066 func: *mut BNFunction,
26067 scope: BNSettingsScope,
26068 ) -> bool;
26069}
26070unsafe extern "C" {
26071 pub fn BNSerializeSettings(
26072 settings: *mut BNSettings,
26073 view: *mut BNBinaryView,
26074 func: *mut BNFunction,
26075 scope: BNSettingsScope,
26076 ) -> *mut ::std::os::raw::c_char;
26077}
26078unsafe extern "C" {
26079 pub fn BNSettingsReset(
26080 settings: *mut BNSettings,
26081 key: *const ::std::os::raw::c_char,
26082 view: *mut BNBinaryView,
26083 func: *mut BNFunction,
26084 scope: BNSettingsScope,
26085 ) -> bool;
26086}
26087unsafe extern "C" {
26088 pub fn BNSettingsResetAll(
26089 settings: *mut BNSettings,
26090 view: *mut BNBinaryView,
26091 func: *mut BNFunction,
26092 scope: BNSettingsScope,
26093 schemaOnly: bool,
26094 ) -> bool;
26095}
26096unsafe extern "C" {
26097 pub fn BNSettingsGetBool(
26098 settings: *mut BNSettings,
26099 key: *const ::std::os::raw::c_char,
26100 view: *mut BNBinaryView,
26101 func: *mut BNFunction,
26102 scope: *mut BNSettingsScope,
26103 ) -> bool;
26104}
26105unsafe extern "C" {
26106 pub fn BNSettingsGetDouble(
26107 settings: *mut BNSettings,
26108 key: *const ::std::os::raw::c_char,
26109 view: *mut BNBinaryView,
26110 func: *mut BNFunction,
26111 scope: *mut BNSettingsScope,
26112 ) -> f64;
26113}
26114unsafe extern "C" {
26115 pub fn BNSettingsGetInt64(
26116 settings: *mut BNSettings,
26117 key: *const ::std::os::raw::c_char,
26118 view: *mut BNBinaryView,
26119 func: *mut BNFunction,
26120 scope: *mut BNSettingsScope,
26121 ) -> i64;
26122}
26123unsafe extern "C" {
26124 pub fn BNSettingsGetUInt64(
26125 settings: *mut BNSettings,
26126 key: *const ::std::os::raw::c_char,
26127 view: *mut BNBinaryView,
26128 func: *mut BNFunction,
26129 scope: *mut BNSettingsScope,
26130 ) -> u64;
26131}
26132unsafe extern "C" {
26133 pub fn BNSettingsGetString(
26134 settings: *mut BNSettings,
26135 key: *const ::std::os::raw::c_char,
26136 view: *mut BNBinaryView,
26137 func: *mut BNFunction,
26138 scope: *mut BNSettingsScope,
26139 ) -> *mut ::std::os::raw::c_char;
26140}
26141unsafe extern "C" {
26142 pub fn BNSettingsGetStringList(
26143 settings: *mut BNSettings,
26144 key: *const ::std::os::raw::c_char,
26145 view: *mut BNBinaryView,
26146 func: *mut BNFunction,
26147 scope: *mut BNSettingsScope,
26148 inoutSize: *mut usize,
26149 ) -> *mut *const ::std::os::raw::c_char;
26150}
26151unsafe extern "C" {
26152 pub fn BNSettingsGetJson(
26153 settings: *mut BNSettings,
26154 key: *const ::std::os::raw::c_char,
26155 view: *mut BNBinaryView,
26156 func: *mut BNFunction,
26157 scope: *mut BNSettingsScope,
26158 ) -> *mut ::std::os::raw::c_char;
26159}
26160unsafe extern "C" {
26161 pub fn BNSettingsSetBool(
26162 settings: *mut BNSettings,
26163 view: *mut BNBinaryView,
26164 func: *mut BNFunction,
26165 scope: BNSettingsScope,
26166 key: *const ::std::os::raw::c_char,
26167 value: bool,
26168 ) -> bool;
26169}
26170unsafe extern "C" {
26171 pub fn BNSettingsSetDouble(
26172 settings: *mut BNSettings,
26173 view: *mut BNBinaryView,
26174 func: *mut BNFunction,
26175 scope: BNSettingsScope,
26176 key: *const ::std::os::raw::c_char,
26177 value: f64,
26178 ) -> bool;
26179}
26180unsafe extern "C" {
26181 pub fn BNSettingsSetInt64(
26182 settings: *mut BNSettings,
26183 view: *mut BNBinaryView,
26184 func: *mut BNFunction,
26185 scope: BNSettingsScope,
26186 key: *const ::std::os::raw::c_char,
26187 value: i64,
26188 ) -> bool;
26189}
26190unsafe extern "C" {
26191 pub fn BNSettingsSetUInt64(
26192 settings: *mut BNSettings,
26193 view: *mut BNBinaryView,
26194 func: *mut BNFunction,
26195 scope: BNSettingsScope,
26196 key: *const ::std::os::raw::c_char,
26197 value: u64,
26198 ) -> bool;
26199}
26200unsafe extern "C" {
26201 pub fn BNSettingsSetString(
26202 settings: *mut BNSettings,
26203 view: *mut BNBinaryView,
26204 func: *mut BNFunction,
26205 scope: BNSettingsScope,
26206 key: *const ::std::os::raw::c_char,
26207 value: *const ::std::os::raw::c_char,
26208 ) -> bool;
26209}
26210unsafe extern "C" {
26211 pub fn BNSettingsSetStringList(
26212 settings: *mut BNSettings,
26213 view: *mut BNBinaryView,
26214 func: *mut BNFunction,
26215 scope: BNSettingsScope,
26216 key: *const ::std::os::raw::c_char,
26217 value: *mut *const ::std::os::raw::c_char,
26218 size: usize,
26219 ) -> bool;
26220}
26221unsafe extern "C" {
26222 pub fn BNSettingsSetJson(
26223 settings: *mut BNSettings,
26224 view: *mut BNBinaryView,
26225 func: *mut BNFunction,
26226 scope: BNSettingsScope,
26227 key: *const ::std::os::raw::c_char,
26228 value: *const ::std::os::raw::c_char,
26229 ) -> bool;
26230}
26231unsafe extern "C" {
26232 #[doc = " Create Metadata of various types"]
26233 pub fn BNNewMetadataReference(data: *mut BNMetadata) -> *mut BNMetadata;
26234}
26235unsafe extern "C" {
26236 pub fn BNCreateMetadataBooleanData(data: bool) -> *mut BNMetadata;
26237}
26238unsafe extern "C" {
26239 pub fn BNCreateMetadataStringData(data: *const ::std::os::raw::c_char) -> *mut BNMetadata;
26240}
26241unsafe extern "C" {
26242 pub fn BNCreateMetadataUnsignedIntegerData(data: u64) -> *mut BNMetadata;
26243}
26244unsafe extern "C" {
26245 pub fn BNCreateMetadataSignedIntegerData(data: i64) -> *mut BNMetadata;
26246}
26247unsafe extern "C" {
26248 pub fn BNCreateMetadataDoubleData(data: f64) -> *mut BNMetadata;
26249}
26250unsafe extern "C" {
26251 pub fn BNCreateMetadataOfType(type_: BNMetadataType) -> *mut BNMetadata;
26252}
26253unsafe extern "C" {
26254 pub fn BNCreateMetadataRawData(data: *const u8, size: usize) -> *mut BNMetadata;
26255}
26256unsafe extern "C" {
26257 pub fn BNCreateMetadataArray(data: *mut *mut BNMetadata, size: usize) -> *mut BNMetadata;
26258}
26259unsafe extern "C" {
26260 pub fn BNCreateMetadataValueStore(
26261 keys: *mut *const ::std::os::raw::c_char,
26262 values: *mut *mut BNMetadata,
26263 size: usize,
26264 ) -> *mut BNMetadata;
26265}
26266unsafe extern "C" {
26267 pub fn BNCreateMetadataBooleanListData(data: *mut bool, size: usize) -> *mut BNMetadata;
26268}
26269unsafe extern "C" {
26270 pub fn BNCreateMetadataUnsignedIntegerListData(data: *mut u64, size: usize) -> *mut BNMetadata;
26271}
26272unsafe extern "C" {
26273 pub fn BNCreateMetadataSignedIntegerListData(data: *mut i64, size: usize) -> *mut BNMetadata;
26274}
26275unsafe extern "C" {
26276 pub fn BNCreateMetadataDoubleListData(data: *mut f64, size: usize) -> *mut BNMetadata;
26277}
26278unsafe extern "C" {
26279 pub fn BNCreateMetadataStringListData(
26280 data: *mut *const ::std::os::raw::c_char,
26281 size: usize,
26282 ) -> *mut BNMetadata;
26283}
26284unsafe extern "C" {
26285 pub fn BNMetadataIsEqual(lhs: *mut BNMetadata, rhs: *mut BNMetadata) -> bool;
26286}
26287unsafe extern "C" {
26288 pub fn BNMetadataSetValueForKey(
26289 data: *mut BNMetadata,
26290 key: *const ::std::os::raw::c_char,
26291 md: *mut BNMetadata,
26292 ) -> bool;
26293}
26294unsafe extern "C" {
26295 pub fn BNMetadataGetForKey(
26296 data: *mut BNMetadata,
26297 key: *const ::std::os::raw::c_char,
26298 ) -> *mut BNMetadata;
26299}
26300unsafe extern "C" {
26301 pub fn BNMetadataArrayAppend(data: *mut BNMetadata, md: *mut BNMetadata) -> bool;
26302}
26303unsafe extern "C" {
26304 pub fn BNMetadataRemoveKey(data: *mut BNMetadata, key: *const ::std::os::raw::c_char);
26305}
26306unsafe extern "C" {
26307 pub fn BNMetadataSize(data: *mut BNMetadata) -> usize;
26308}
26309unsafe extern "C" {
26310 pub fn BNMetadataGetForIndex(data: *mut BNMetadata, index: usize) -> *mut BNMetadata;
26311}
26312unsafe extern "C" {
26313 pub fn BNMetadataRemoveIndex(data: *mut BNMetadata, index: usize);
26314}
26315unsafe extern "C" {
26316 pub fn BNFreeMetadataArray(data: *mut *mut BNMetadata);
26317}
26318unsafe extern "C" {
26319 pub fn BNFreeMetadataValueStore(data: *mut BNMetadataValueStore);
26320}
26321unsafe extern "C" {
26322 pub fn BNFreeMetadata(data: *mut BNMetadata);
26323}
26324unsafe extern "C" {
26325 pub fn BNFreeMetadataRaw(data: *mut u8);
26326}
26327unsafe extern "C" {
26328 pub fn BNFreeMetadataBooleanList(arg1: *mut bool, arg2: usize);
26329}
26330unsafe extern "C" {
26331 pub fn BNFreeMetadataUnsignedIntegerList(arg1: *mut u64, arg2: usize);
26332}
26333unsafe extern "C" {
26334 pub fn BNFreeMetadataSignedIntegerList(arg1: *mut i64, arg2: usize);
26335}
26336unsafe extern "C" {
26337 pub fn BNFreeMetadataDoubleList(arg1: *mut f64, arg2: usize);
26338}
26339unsafe extern "C" {
26340 pub fn BNFreeMetadataStringList(arg1: *mut *mut ::std::os::raw::c_char, arg2: usize);
26341}
26342unsafe extern "C" {
26343 #[doc = " Retrieve Structured Data"]
26344 pub fn BNMetadataGetBoolean(data: *mut BNMetadata) -> bool;
26345}
26346unsafe extern "C" {
26347 pub fn BNMetadataGetString(data: *mut BNMetadata) -> *mut ::std::os::raw::c_char;
26348}
26349unsafe extern "C" {
26350 pub fn BNMetadataGetUnsignedInteger(data: *mut BNMetadata) -> u64;
26351}
26352unsafe extern "C" {
26353 pub fn BNMetadataGetSignedInteger(data: *mut BNMetadata) -> i64;
26354}
26355unsafe extern "C" {
26356 pub fn BNMetadataGetDouble(data: *mut BNMetadata) -> f64;
26357}
26358unsafe extern "C" {
26359 pub fn BNMetadataGetBooleanList(data: *mut BNMetadata, arg1: *mut usize) -> *mut bool;
26360}
26361unsafe extern "C" {
26362 pub fn BNMetadataGetStringList(
26363 data: *mut BNMetadata,
26364 arg1: *mut usize,
26365 ) -> *mut *mut ::std::os::raw::c_char;
26366}
26367unsafe extern "C" {
26368 pub fn BNMetadataGetUnsignedIntegerList(data: *mut BNMetadata, arg1: *mut usize) -> *mut u64;
26369}
26370unsafe extern "C" {
26371 pub fn BNMetadataGetSignedIntegerList(data: *mut BNMetadata, arg1: *mut usize) -> *mut i64;
26372}
26373unsafe extern "C" {
26374 pub fn BNMetadataGetDoubleList(data: *mut BNMetadata, arg1: *mut usize) -> *mut f64;
26375}
26376unsafe extern "C" {
26377 pub fn BNMetadataGetRaw(data: *mut BNMetadata, size: *mut usize) -> *mut u8;
26378}
26379unsafe extern "C" {
26380 pub fn BNMetadataGetArray(data: *mut BNMetadata, size: *mut usize) -> *mut *mut BNMetadata;
26381}
26382unsafe extern "C" {
26383 pub fn BNMetadataGetValueStore(data: *mut BNMetadata) -> *mut BNMetadataValueStore;
26384}
26385unsafe extern "C" {
26386 pub fn BNMetadataGetJsonString(data: *mut BNMetadata) -> *mut ::std::os::raw::c_char;
26387}
26388unsafe extern "C" {
26389 #[doc = " Query type of Metadata"]
26390 pub fn BNMetadataGetType(data: *mut BNMetadata) -> BNMetadataType;
26391}
26392unsafe extern "C" {
26393 pub fn BNMetadataIsBoolean(data: *mut BNMetadata) -> bool;
26394}
26395unsafe extern "C" {
26396 pub fn BNMetadataIsString(data: *mut BNMetadata) -> bool;
26397}
26398unsafe extern "C" {
26399 pub fn BNMetadataIsUnsignedInteger(data: *mut BNMetadata) -> bool;
26400}
26401unsafe extern "C" {
26402 pub fn BNMetadataIsSignedInteger(data: *mut BNMetadata) -> bool;
26403}
26404unsafe extern "C" {
26405 pub fn BNMetadataIsDouble(data: *mut BNMetadata) -> bool;
26406}
26407unsafe extern "C" {
26408 pub fn BNMetadataIsBooleanList(data: *mut BNMetadata) -> bool;
26409}
26410unsafe extern "C" {
26411 pub fn BNMetadataIsStringList(data: *mut BNMetadata) -> bool;
26412}
26413unsafe extern "C" {
26414 pub fn BNMetadataIsUnsignedIntegerList(data: *mut BNMetadata) -> bool;
26415}
26416unsafe extern "C" {
26417 pub fn BNMetadataIsSignedIntegerList(data: *mut BNMetadata) -> bool;
26418}
26419unsafe extern "C" {
26420 pub fn BNMetadataIsDoubleList(data: *mut BNMetadata) -> bool;
26421}
26422unsafe extern "C" {
26423 pub fn BNMetadataIsRaw(data: *mut BNMetadata) -> bool;
26424}
26425unsafe extern "C" {
26426 pub fn BNMetadataIsArray(data: *mut BNMetadata) -> bool;
26427}
26428unsafe extern "C" {
26429 pub fn BNMetadataIsKeyValueStore(data: *mut BNMetadata) -> bool;
26430}
26431unsafe extern "C" {
26432 #[doc = " Store/Query structured data to/from a BinaryView"]
26433 pub fn BNBinaryViewStoreMetadata(
26434 view: *mut BNBinaryView,
26435 key: *const ::std::os::raw::c_char,
26436 value: *mut BNMetadata,
26437 isAuto: bool,
26438 );
26439}
26440unsafe extern "C" {
26441 pub fn BNBinaryViewQueryMetadata(
26442 view: *mut BNBinaryView,
26443 key: *const ::std::os::raw::c_char,
26444 ) -> *mut BNMetadata;
26445}
26446unsafe extern "C" {
26447 pub fn BNBinaryViewRemoveMetadata(view: *mut BNBinaryView, key: *const ::std::os::raw::c_char);
26448}
26449unsafe extern "C" {
26450 pub fn BNBinaryViewGetMetadata(view: *mut BNBinaryView) -> *mut BNMetadata;
26451}
26452unsafe extern "C" {
26453 pub fn BNBinaryViewGetAutoMetadata(view: *mut BNBinaryView) -> *mut BNMetadata;
26454}
26455unsafe extern "C" {
26456 pub fn BNBinaryViewGetLoadSettingsTypeNames(
26457 view: *mut BNBinaryView,
26458 count: *mut usize,
26459 ) -> *mut *mut ::std::os::raw::c_char;
26460}
26461unsafe extern "C" {
26462 pub fn BNBinaryViewGetLoadSettings(
26463 view: *mut BNBinaryView,
26464 typeName: *const ::std::os::raw::c_char,
26465 ) -> *mut BNSettings;
26466}
26467unsafe extern "C" {
26468 pub fn BNBinaryViewSetLoadSettings(
26469 view: *mut BNBinaryView,
26470 typeName: *const ::std::os::raw::c_char,
26471 settings: *mut BNSettings,
26472 );
26473}
26474unsafe extern "C" {
26475 pub fn BNBinaryViewFinalizeNewSegments(view: *mut BNBinaryView) -> bool;
26476}
26477unsafe extern "C" {
26478 #[doc = " Relocation object methods"]
26479 pub fn BNNewRelocationReference(reloc: *mut BNRelocation) -> *mut BNRelocation;
26480}
26481unsafe extern "C" {
26482 pub fn BNFreeRelocation(reloc: *mut BNRelocation);
26483}
26484unsafe extern "C" {
26485 pub fn BNRelocationGetInfo(reloc: *mut BNRelocation) -> BNRelocationInfo;
26486}
26487unsafe extern "C" {
26488 pub fn BNRelocationGetArchitecture(reloc: *mut BNRelocation) -> *mut BNArchitecture;
26489}
26490unsafe extern "C" {
26491 pub fn BNRelocationGetTarget(reloc: *mut BNRelocation) -> u64;
26492}
26493unsafe extern "C" {
26494 pub fn BNRelocationGetReloc(reloc: *mut BNRelocation) -> u64;
26495}
26496unsafe extern "C" {
26497 pub fn BNRelocationGetSymbol(reloc: *mut BNRelocation) -> *mut BNSymbol;
26498}
26499unsafe extern "C" {
26500 #[doc = " Segment object methods"]
26501 pub fn BNCreateSegment(
26502 start: u64,
26503 length: u64,
26504 dataOffset: u64,
26505 dataLength: u64,
26506 flags: u32,
26507 autoDefined: bool,
26508 ) -> *mut BNSegment;
26509}
26510unsafe extern "C" {
26511 pub fn BNNewSegmentReference(seg: *mut BNSegment) -> *mut BNSegment;
26512}
26513unsafe extern "C" {
26514 pub fn BNFreeSegment(seg: *mut BNSegment);
26515}
26516unsafe extern "C" {
26517 pub fn BNSegmentGetStart(segment: *mut BNSegment) -> u64;
26518}
26519unsafe extern "C" {
26520 pub fn BNSegmentGetLength(segment: *mut BNSegment) -> u64;
26521}
26522unsafe extern "C" {
26523 pub fn BNSegmentGetEnd(segment: *mut BNSegment) -> u64;
26524}
26525unsafe extern "C" {
26526 pub fn BNSegmentGetDataEnd(segment: *mut BNSegment) -> u64;
26527}
26528unsafe extern "C" {
26529 pub fn BNSegmentGetDataOffset(segment: *mut BNSegment) -> u64;
26530}
26531unsafe extern "C" {
26532 pub fn BNSegmentGetDataLength(segment: *mut BNSegment) -> u64;
26533}
26534unsafe extern "C" {
26535 pub fn BNSegmentGetFlags(segment: *mut BNSegment) -> u32;
26536}
26537unsafe extern "C" {
26538 pub fn BNSegmentIsAutoDefined(segment: *mut BNSegment) -> bool;
26539}
26540unsafe extern "C" {
26541 #[doc = " Section object methods"]
26542 pub fn BNNewSectionReference(section: *mut BNSection) -> *mut BNSection;
26543}
26544unsafe extern "C" {
26545 pub fn BNFreeSection(section: *mut BNSection);
26546}
26547unsafe extern "C" {
26548 pub fn BNSectionGetName(section: *mut BNSection) -> *mut ::std::os::raw::c_char;
26549}
26550unsafe extern "C" {
26551 pub fn BNSectionGetType(section: *mut BNSection) -> *mut ::std::os::raw::c_char;
26552}
26553unsafe extern "C" {
26554 pub fn BNSectionGetStart(section: *mut BNSection) -> u64;
26555}
26556unsafe extern "C" {
26557 pub fn BNSectionGetLength(section: *mut BNSection) -> u64;
26558}
26559unsafe extern "C" {
26560 pub fn BNSectionGetEnd(section: *mut BNSection) -> u64;
26561}
26562unsafe extern "C" {
26563 pub fn BNSectionGetLinkedSection(section: *mut BNSection) -> *mut ::std::os::raw::c_char;
26564}
26565unsafe extern "C" {
26566 pub fn BNSectionGetInfoSection(section: *mut BNSection) -> *mut ::std::os::raw::c_char;
26567}
26568unsafe extern "C" {
26569 pub fn BNSectionGetInfoData(section: *mut BNSection) -> u64;
26570}
26571unsafe extern "C" {
26572 pub fn BNSectionGetAlign(section: *mut BNSection) -> u64;
26573}
26574unsafe extern "C" {
26575 pub fn BNSectionGetEntrySize(section: *mut BNSection) -> u64;
26576}
26577unsafe extern "C" {
26578 pub fn BNSectionGetSemantics(section: *mut BNSection) -> BNSectionSemantics;
26579}
26580unsafe extern "C" {
26581 pub fn BNSectionIsAutoDefined(section: *mut BNSection) -> bool;
26582}
26583unsafe extern "C" {
26584 #[doc = " Custom Data Render methods"]
26585 pub fn BNCreateDataRenderer(renderer: *mut BNCustomDataRenderer) -> *mut BNDataRenderer;
26586}
26587unsafe extern "C" {
26588 pub fn BNNewDataRendererReference(renderer: *mut BNDataRenderer) -> *mut BNDataRenderer;
26589}
26590unsafe extern "C" {
26591 pub fn BNIsValidForData(
26592 ctxt: *mut ::std::os::raw::c_void,
26593 view: *mut BNBinaryView,
26594 addr: u64,
26595 type_: *mut BNType,
26596 typeCtx: *mut BNTypeContext,
26597 ctxCount: usize,
26598 ) -> bool;
26599}
26600unsafe extern "C" {
26601 pub fn BNGetLinesForData(
26602 ctxt: *mut ::std::os::raw::c_void,
26603 view: *mut BNBinaryView,
26604 addr: u64,
26605 type_: *mut BNType,
26606 prefix: *const BNInstructionTextToken,
26607 prefixCount: usize,
26608 width: usize,
26609 count: *mut usize,
26610 typeCtx: *mut BNTypeContext,
26611 ctxCount: usize,
26612 language: *const ::std::os::raw::c_char,
26613 ) -> *mut BNDisassemblyTextLine;
26614}
26615unsafe extern "C" {
26616 pub fn BNRenderLinesForData(
26617 data: *mut BNBinaryView,
26618 addr: u64,
26619 type_: *mut BNType,
26620 prefix: *const BNInstructionTextToken,
26621 prefixCount: usize,
26622 width: usize,
26623 count: *mut usize,
26624 typeCtx: *mut BNTypeContext,
26625 ctxCount: usize,
26626 language: *const ::std::os::raw::c_char,
26627 ) -> *mut BNDisassemblyTextLine;
26628}
26629unsafe extern "C" {
26630 pub fn BNFreeDataRenderer(renderer: *mut BNDataRenderer);
26631}
26632unsafe extern "C" {
26633 pub fn BNGetDataRendererContainer() -> *mut BNDataRendererContainer;
26634}
26635unsafe extern "C" {
26636 pub fn BNRegisterGenericDataRenderer(
26637 container: *mut BNDataRendererContainer,
26638 renderer: *mut BNDataRenderer,
26639 );
26640}
26641unsafe extern "C" {
26642 pub fn BNRegisterTypeSpecificDataRenderer(
26643 container: *mut BNDataRendererContainer,
26644 renderer: *mut BNDataRenderer,
26645 );
26646}
26647unsafe extern "C" {
26648 pub fn BNParseExpression(
26649 view: *mut BNBinaryView,
26650 expression: *const ::std::os::raw::c_char,
26651 offset: *mut u64,
26652 here: u64,
26653 errorString: *mut *mut ::std::os::raw::c_char,
26654 ) -> bool;
26655}
26656unsafe extern "C" {
26657 pub fn BNFreeParseError(errorString: *mut ::std::os::raw::c_char);
26658}
26659unsafe extern "C" {
26660 pub fn BNGetCurrentStackTraceString() -> *mut ::std::os::raw::c_char;
26661}
26662unsafe extern "C" {
26663 pub fn BNRegisterObjectRefDebugTrace(
26664 typeName: *const ::std::os::raw::c_char,
26665 ) -> *mut ::std::os::raw::c_void;
26666}
26667unsafe extern "C" {
26668 pub fn BNUnregisterObjectRefDebugTrace(
26669 typeName: *const ::std::os::raw::c_char,
26670 trace: *mut ::std::os::raw::c_void,
26671 );
26672}
26673unsafe extern "C" {
26674 pub fn BNGetMemoryUsageInfo(count: *mut usize) -> *mut BNMemoryUsageInfo;
26675}
26676unsafe extern "C" {
26677 pub fn BNFreeMemoryUsageInfo(info: *mut BNMemoryUsageInfo, count: usize);
26678}
26679unsafe extern "C" {
26680 pub fn BNGetAddressRenderedWidth(addr: u64) -> u32;
26681}
26682unsafe extern "C" {
26683 pub fn BNRustSimplifyStrToFQN(
26684 arg1: *const ::std::os::raw::c_char,
26685 arg2: bool,
26686 ) -> BNQualifiedName;
26687}
26688unsafe extern "C" {
26689 pub fn BNRustSimplifyStrToStr(
26690 arg1: *const ::std::os::raw::c_char,
26691 ) -> *mut ::std::os::raw::c_char;
26692}
26693unsafe extern "C" {
26694 pub fn BNRegisterDebugInfoParser(
26695 name: *const ::std::os::raw::c_char,
26696 isValid: ::std::option::Option<
26697 unsafe extern "C" fn(
26698 arg1: *mut ::std::os::raw::c_void,
26699 arg2: *mut BNBinaryView,
26700 ) -> bool,
26701 >,
26702 parseInfo: ::std::option::Option<
26703 unsafe extern "C" fn(
26704 arg1: *mut ::std::os::raw::c_void,
26705 arg2: *mut BNDebugInfo,
26706 arg3: *mut BNBinaryView,
26707 arg4: *mut BNBinaryView,
26708 arg5: BNProgressFunction,
26709 arg6: *mut ::std::os::raw::c_void,
26710 ) -> bool,
26711 >,
26712 context: *mut ::std::os::raw::c_void,
26713 ) -> *mut BNDebugInfoParser;
26714}
26715unsafe extern "C" {
26716 pub fn BNUnregisterDebugInfoParser(rawName: *const ::std::os::raw::c_char);
26717}
26718unsafe extern "C" {
26719 pub fn BNGetDebugInfoParserByName(
26720 name: *const ::std::os::raw::c_char,
26721 ) -> *mut BNDebugInfoParser;
26722}
26723unsafe extern "C" {
26724 pub fn BNGetDebugInfoParsers(count: *mut usize) -> *mut *mut BNDebugInfoParser;
26725}
26726unsafe extern "C" {
26727 pub fn BNGetDebugInfoParsersForView(
26728 view: *mut BNBinaryView,
26729 count: *mut usize,
26730 ) -> *mut *mut BNDebugInfoParser;
26731}
26732unsafe extern "C" {
26733 pub fn BNGetDebugInfoParserName(parser: *mut BNDebugInfoParser) -> *mut ::std::os::raw::c_char;
26734}
26735unsafe extern "C" {
26736 pub fn BNIsDebugInfoParserValidForView(
26737 parser: *mut BNDebugInfoParser,
26738 view: *mut BNBinaryView,
26739 ) -> bool;
26740}
26741unsafe extern "C" {
26742 pub fn BNParseDebugInfo(
26743 parser: *mut BNDebugInfoParser,
26744 view: *mut BNBinaryView,
26745 debugFile: *mut BNBinaryView,
26746 existingDebugInfo: *mut BNDebugInfo,
26747 progress: BNProgressFunction,
26748 progressCtxt: *mut ::std::os::raw::c_void,
26749 ) -> *mut BNDebugInfo;
26750}
26751unsafe extern "C" {
26752 pub fn BNNewDebugInfoParserReference(parser: *mut BNDebugInfoParser) -> *mut BNDebugInfoParser;
26753}
26754unsafe extern "C" {
26755 pub fn BNFreeDebugInfoParserReference(parser: *mut BNDebugInfoParser);
26756}
26757unsafe extern "C" {
26758 pub fn BNFreeDebugInfoParserList(parsers: *mut *mut BNDebugInfoParser, count: usize);
26759}
26760unsafe extern "C" {
26761 pub fn BNNewDebugInfoReference(debugInfo: *mut BNDebugInfo) -> *mut BNDebugInfo;
26762}
26763unsafe extern "C" {
26764 pub fn BNFreeDebugInfoReference(debugInfo: *mut BNDebugInfo);
26765}
26766unsafe extern "C" {
26767 pub fn BNGetDebugParserNames(
26768 debugInfo: *mut BNDebugInfo,
26769 count: *mut usize,
26770 ) -> *mut *mut ::std::os::raw::c_char;
26771}
26772unsafe extern "C" {
26773 pub fn BNGetDebugInfoTypeContainer(
26774 debugInfo: *mut BNDebugInfo,
26775 parserName: *const ::std::os::raw::c_char,
26776 ) -> *mut BNTypeContainer;
26777}
26778unsafe extern "C" {
26779 pub fn BNRemoveDebugParserInfo(
26780 debugInfo: *mut BNDebugInfo,
26781 parserName: *const ::std::os::raw::c_char,
26782 ) -> bool;
26783}
26784unsafe extern "C" {
26785 pub fn BNRemoveDebugParserTypes(
26786 debugInfo: *mut BNDebugInfo,
26787 parserName: *const ::std::os::raw::c_char,
26788 ) -> bool;
26789}
26790unsafe extern "C" {
26791 pub fn BNRemoveDebugParserFunctions(
26792 debugInfo: *mut BNDebugInfo,
26793 parserName: *const ::std::os::raw::c_char,
26794 ) -> bool;
26795}
26796unsafe extern "C" {
26797 pub fn BNRemoveDebugParserDataVariables(
26798 debugInfo: *mut BNDebugInfo,
26799 parserName: *const ::std::os::raw::c_char,
26800 ) -> bool;
26801}
26802unsafe extern "C" {
26803 pub fn BNAddDebugType(
26804 debugInfo: *mut BNDebugInfo,
26805 name: *const ::std::os::raw::c_char,
26806 type_: *const BNType,
26807 components: *mut *const ::std::os::raw::c_char,
26808 components_count: usize,
26809 ) -> bool;
26810}
26811unsafe extern "C" {
26812 pub fn BNGetDebugTypes(
26813 debugInfo: *mut BNDebugInfo,
26814 name: *const ::std::os::raw::c_char,
26815 count: *mut usize,
26816 ) -> *mut BNNameAndType;
26817}
26818unsafe extern "C" {
26819 pub fn BNGetDebugTypeByName(
26820 debugInfo: *mut BNDebugInfo,
26821 parserName: *const ::std::os::raw::c_char,
26822 typeName: *const ::std::os::raw::c_char,
26823 ) -> *mut BNType;
26824}
26825unsafe extern "C" {
26826 pub fn BNGetDebugTypesByName(
26827 debugInfo: *mut BNDebugInfo,
26828 typeName: *const ::std::os::raw::c_char,
26829 count: *mut usize,
26830 ) -> *mut BNNameAndType;
26831}
26832unsafe extern "C" {
26833 pub fn BNRemoveDebugTypeByName(
26834 debugInfo: *mut BNDebugInfo,
26835 parserName: *const ::std::os::raw::c_char,
26836 typeName: *const ::std::os::raw::c_char,
26837 ) -> bool;
26838}
26839unsafe extern "C" {
26840 pub fn BNFreeDebugTypes(types: *mut BNNameAndType, count: usize);
26841}
26842unsafe extern "C" {
26843 pub fn BNAddDebugFunction(debugInfo: *mut BNDebugInfo, func: *mut BNDebugFunctionInfo) -> bool;
26844}
26845unsafe extern "C" {
26846 pub fn BNGetDebugFunctions(
26847 debugInfo: *mut BNDebugInfo,
26848 name: *const ::std::os::raw::c_char,
26849 count: *mut usize,
26850 ) -> *mut BNDebugFunctionInfo;
26851}
26852unsafe extern "C" {
26853 pub fn BNRemoveDebugFunctionByIndex(
26854 debugInfo: *mut BNDebugInfo,
26855 parserName: *const ::std::os::raw::c_char,
26856 index: usize,
26857 ) -> bool;
26858}
26859unsafe extern "C" {
26860 pub fn BNFreeDebugFunctions(functions: *mut BNDebugFunctionInfo, count: usize);
26861}
26862unsafe extern "C" {
26863 pub fn BNAddDebugDataVariable(
26864 debugInfo: *mut BNDebugInfo,
26865 address: u64,
26866 type_: *const BNType,
26867 name: *const ::std::os::raw::c_char,
26868 components: *mut *const ::std::os::raw::c_char,
26869 components_count: usize,
26870 ) -> bool;
26871}
26872unsafe extern "C" {
26873 pub fn BNAddDebugDataVariableInfo(
26874 debugInfo: *mut BNDebugInfo,
26875 var: *const BNDataVariableAndName,
26876 ) -> bool;
26877}
26878unsafe extern "C" {
26879 pub fn BNGetDebugDataVariables(
26880 debugInfo: *mut BNDebugInfo,
26881 name: *const ::std::os::raw::c_char,
26882 count: *mut usize,
26883 ) -> *mut BNDataVariableAndName;
26884}
26885unsafe extern "C" {
26886 pub fn BNGetDebugDataVariableByName(
26887 debugInfo: *mut BNDebugInfo,
26888 parserName: *const ::std::os::raw::c_char,
26889 variableName: *const ::std::os::raw::c_char,
26890 var: *mut BNDataVariableAndName,
26891 ) -> bool;
26892}
26893unsafe extern "C" {
26894 pub fn BNGetDebugDataVariableByAddress(
26895 debugInfo: *mut BNDebugInfo,
26896 parserName: *const ::std::os::raw::c_char,
26897 address: u64,
26898 var: *mut BNDataVariableAndName,
26899 ) -> bool;
26900}
26901unsafe extern "C" {
26902 pub fn BNGetDebugDataVariablesByName(
26903 debugInfo: *mut BNDebugInfo,
26904 variableName: *const ::std::os::raw::c_char,
26905 count: *mut usize,
26906 ) -> *mut BNDataVariableAndName;
26907}
26908unsafe extern "C" {
26909 pub fn BNGetDebugDataVariablesByAddress(
26910 debugInfo: *mut BNDebugInfo,
26911 address: u64,
26912 count: *mut usize,
26913 ) -> *mut BNDataVariableAndNameAndDebugParser;
26914}
26915unsafe extern "C" {
26916 pub fn BNRemoveDebugDataVariableByAddress(
26917 debugInfo: *mut BNDebugInfo,
26918 parserName: *const ::std::os::raw::c_char,
26919 address: u64,
26920 ) -> bool;
26921}
26922unsafe extern "C" {
26923 #[doc = " Secrets providers"]
26924 pub fn BNRegisterSecretsProvider(
26925 name: *const ::std::os::raw::c_char,
26926 callbacks: *mut BNSecretsProviderCallbacks,
26927 ) -> *mut BNSecretsProvider;
26928}
26929unsafe extern "C" {
26930 pub fn BNGetSecretsProviderList(count: *mut usize) -> *mut *mut BNSecretsProvider;
26931}
26932unsafe extern "C" {
26933 pub fn BNFreeSecretsProviderList(providers: *mut *mut BNSecretsProvider);
26934}
26935unsafe extern "C" {
26936 pub fn BNGetSecretsProviderByName(
26937 name: *const ::std::os::raw::c_char,
26938 ) -> *mut BNSecretsProvider;
26939}
26940unsafe extern "C" {
26941 pub fn BNGetSecretsProviderName(
26942 provider: *mut BNSecretsProvider,
26943 ) -> *mut ::std::os::raw::c_char;
26944}
26945unsafe extern "C" {
26946 pub fn BNSecretsProviderHasData(
26947 provider: *mut BNSecretsProvider,
26948 key: *const ::std::os::raw::c_char,
26949 ) -> bool;
26950}
26951unsafe extern "C" {
26952 pub fn BNGetSecretsProviderData(
26953 provider: *mut BNSecretsProvider,
26954 key: *const ::std::os::raw::c_char,
26955 ) -> *mut ::std::os::raw::c_char;
26956}
26957unsafe extern "C" {
26958 pub fn BNStoreSecretsProviderData(
26959 provider: *mut BNSecretsProvider,
26960 key: *const ::std::os::raw::c_char,
26961 data: *const ::std::os::raw::c_char,
26962 ) -> bool;
26963}
26964unsafe extern "C" {
26965 pub fn BNDeleteSecretsProviderData(
26966 provider: *mut BNSecretsProvider,
26967 key: *const ::std::os::raw::c_char,
26968 ) -> bool;
26969}
26970unsafe extern "C" {
26971 pub fn BNCreateSymbolQueue() -> *mut BNSymbolQueue;
26972}
26973unsafe extern "C" {
26974 pub fn BNDestroySymbolQueue(queue: *mut BNSymbolQueue);
26975}
26976unsafe extern "C" {
26977 pub fn BNAppendSymbolQueue(
26978 queue: *mut BNSymbolQueue,
26979 resolve: ::std::option::Option<
26980 unsafe extern "C" fn(
26981 ctxt: *mut ::std::os::raw::c_void,
26982 symbol: *mut *mut BNSymbol,
26983 type_: *mut BNTypeWithConfidence,
26984 ),
26985 >,
26986 resolveContext: *mut ::std::os::raw::c_void,
26987 add: ::std::option::Option<
26988 unsafe extern "C" fn(
26989 ctxt: *mut ::std::os::raw::c_void,
26990 symbol: *mut BNSymbol,
26991 type_: *mut BNTypeWithConfidence,
26992 ),
26993 >,
26994 addContext: *mut ::std::os::raw::c_void,
26995 );
26996}
26997unsafe extern "C" {
26998 pub fn BNProcessSymbolQueue(queue: *mut BNSymbolQueue);
26999}
27000unsafe extern "C" {
27001 pub fn BNCoreEnumToString(
27002 enumName: *const ::std::os::raw::c_char,
27003 value: usize,
27004 result: *mut *mut ::std::os::raw::c_char,
27005 ) -> bool;
27006}
27007unsafe extern "C" {
27008 pub fn BNCoreEnumFromString(
27009 enumName: *const ::std::os::raw::c_char,
27010 value: *const ::std::os::raw::c_char,
27011 result: *mut usize,
27012 ) -> bool;
27013}
27014unsafe extern "C" {
27015 #[doc = " Type Archives"]
27016 pub fn BNNewTypeArchiveReference(archive: *mut BNTypeArchive) -> *mut BNTypeArchive;
27017}
27018unsafe extern "C" {
27019 pub fn BNFreeTypeArchiveReference(archive: *mut BNTypeArchive);
27020}
27021unsafe extern "C" {
27022 pub fn BNFreeTypeArchiveList(archives: *mut *mut BNTypeArchive, count: usize);
27023}
27024unsafe extern "C" {
27025 pub fn BNOpenTypeArchive(path: *const ::std::os::raw::c_char) -> *mut BNTypeArchive;
27026}
27027unsafe extern "C" {
27028 pub fn BNCreateTypeArchive(
27029 path: *const ::std::os::raw::c_char,
27030 platform: *mut BNPlatform,
27031 ) -> *mut BNTypeArchive;
27032}
27033unsafe extern "C" {
27034 pub fn BNCreateTypeArchiveWithId(
27035 path: *const ::std::os::raw::c_char,
27036 platform: *mut BNPlatform,
27037 id: *const ::std::os::raw::c_char,
27038 ) -> *mut BNTypeArchive;
27039}
27040unsafe extern "C" {
27041 pub fn BNLookupTypeArchiveById(id: *const ::std::os::raw::c_char) -> *mut BNTypeArchive;
27042}
27043unsafe extern "C" {
27044 pub fn BNCloseTypeArchive(archive: *mut BNTypeArchive);
27045}
27046unsafe extern "C" {
27047 pub fn BNIsTypeArchive(path: *const ::std::os::raw::c_char) -> bool;
27048}
27049unsafe extern "C" {
27050 pub fn BNGetTypeArchiveId(archive: *mut BNTypeArchive) -> *mut ::std::os::raw::c_char;
27051}
27052unsafe extern "C" {
27053 pub fn BNGetTypeArchivePath(archive: *mut BNTypeArchive) -> *mut ::std::os::raw::c_char;
27054}
27055unsafe extern "C" {
27056 pub fn BNGetTypeArchivePlatform(archive: *mut BNTypeArchive) -> *mut BNPlatform;
27057}
27058unsafe extern "C" {
27059 pub fn BNGetTypeArchiveCurrentSnapshotId(
27060 archive: *mut BNTypeArchive,
27061 ) -> *mut ::std::os::raw::c_char;
27062}
27063unsafe extern "C" {
27064 pub fn BNSetTypeArchiveCurrentSnapshot(
27065 archive: *mut BNTypeArchive,
27066 id: *const ::std::os::raw::c_char,
27067 );
27068}
27069unsafe extern "C" {
27070 pub fn BNGetTypeArchiveAllSnapshotIds(
27071 archive: *mut BNTypeArchive,
27072 count: *mut usize,
27073 ) -> *mut *mut ::std::os::raw::c_char;
27074}
27075unsafe extern "C" {
27076 pub fn BNGetTypeArchiveSnapshotParentIds(
27077 archive: *mut BNTypeArchive,
27078 id: *const ::std::os::raw::c_char,
27079 count: *mut usize,
27080 ) -> *mut *mut ::std::os::raw::c_char;
27081}
27082unsafe extern "C" {
27083 pub fn BNGetTypeArchiveSnapshotChildIds(
27084 archive: *mut BNTypeArchive,
27085 id: *const ::std::os::raw::c_char,
27086 count: *mut usize,
27087 ) -> *mut *mut ::std::os::raw::c_char;
27088}
27089unsafe extern "C" {
27090 pub fn BNGetTypeArchiveTypeContainer(archive: *mut BNTypeArchive) -> *mut BNTypeContainer;
27091}
27092unsafe extern "C" {
27093 pub fn BNAddTypeArchiveTypes(
27094 archive: *mut BNTypeArchive,
27095 types: *const BNQualifiedNameAndType,
27096 count: usize,
27097 ) -> bool;
27098}
27099unsafe extern "C" {
27100 pub fn BNRenameTypeArchiveType(
27101 archive: *mut BNTypeArchive,
27102 id: *const ::std::os::raw::c_char,
27103 newName: *const BNQualifiedName,
27104 ) -> bool;
27105}
27106unsafe extern "C" {
27107 pub fn BNDeleteTypeArchiveType(
27108 archive: *mut BNTypeArchive,
27109 id: *const ::std::os::raw::c_char,
27110 ) -> bool;
27111}
27112unsafe extern "C" {
27113 pub fn BNGetTypeArchiveTypeById(
27114 archive: *mut BNTypeArchive,
27115 id: *const ::std::os::raw::c_char,
27116 snapshot: *const ::std::os::raw::c_char,
27117 ) -> *mut BNType;
27118}
27119unsafe extern "C" {
27120 pub fn BNGetTypeArchiveTypeByName(
27121 archive: *mut BNTypeArchive,
27122 name: *const BNQualifiedName,
27123 snapshot: *const ::std::os::raw::c_char,
27124 ) -> *mut BNType;
27125}
27126unsafe extern "C" {
27127 pub fn BNGetTypeArchiveTypeId(
27128 archive: *mut BNTypeArchive,
27129 name: *const BNQualifiedName,
27130 snapshot: *const ::std::os::raw::c_char,
27131 ) -> *mut ::std::os::raw::c_char;
27132}
27133unsafe extern "C" {
27134 pub fn BNGetTypeArchiveTypeName(
27135 archive: *mut BNTypeArchive,
27136 id: *const ::std::os::raw::c_char,
27137 snapshot: *const ::std::os::raw::c_char,
27138 ) -> BNQualifiedName;
27139}
27140unsafe extern "C" {
27141 pub fn BNGetTypeArchiveTypes(
27142 archive: *mut BNTypeArchive,
27143 snapshot: *const ::std::os::raw::c_char,
27144 count: *mut usize,
27145 ) -> *mut BNQualifiedNameTypeAndId;
27146}
27147unsafe extern "C" {
27148 pub fn BNGetTypeArchiveTypeIds(
27149 archive: *mut BNTypeArchive,
27150 snapshot: *const ::std::os::raw::c_char,
27151 count: *mut usize,
27152 ) -> *mut *mut ::std::os::raw::c_char;
27153}
27154unsafe extern "C" {
27155 pub fn BNGetTypeArchiveTypeNames(
27156 archive: *mut BNTypeArchive,
27157 snapshot: *const ::std::os::raw::c_char,
27158 count: *mut usize,
27159 ) -> *mut BNQualifiedName;
27160}
27161unsafe extern "C" {
27162 pub fn BNGetTypeArchiveTypeNamesAndIds(
27163 archive: *mut BNTypeArchive,
27164 snapshot: *const ::std::os::raw::c_char,
27165 names: *mut *mut BNQualifiedName,
27166 ids: *mut *mut *mut ::std::os::raw::c_char,
27167 count: *mut usize,
27168 ) -> bool;
27169}
27170unsafe extern "C" {
27171 pub fn BNGetTypeArchiveOutgoingDirectTypeReferences(
27172 archive: *mut BNTypeArchive,
27173 id: *const ::std::os::raw::c_char,
27174 snapshot: *const ::std::os::raw::c_char,
27175 count: *mut usize,
27176 ) -> *mut *mut ::std::os::raw::c_char;
27177}
27178unsafe extern "C" {
27179 pub fn BNGetTypeArchiveOutgoingRecursiveTypeReferences(
27180 archive: *mut BNTypeArchive,
27181 id: *const ::std::os::raw::c_char,
27182 snapshot: *const ::std::os::raw::c_char,
27183 count: *mut usize,
27184 ) -> *mut *mut ::std::os::raw::c_char;
27185}
27186unsafe extern "C" {
27187 pub fn BNGetTypeArchiveIncomingDirectTypeReferences(
27188 archive: *mut BNTypeArchive,
27189 id: *const ::std::os::raw::c_char,
27190 snapshot: *const ::std::os::raw::c_char,
27191 count: *mut usize,
27192 ) -> *mut *mut ::std::os::raw::c_char;
27193}
27194unsafe extern "C" {
27195 pub fn BNGetTypeArchiveIncomingRecursiveTypeReferences(
27196 archive: *mut BNTypeArchive,
27197 id: *const ::std::os::raw::c_char,
27198 snapshot: *const ::std::os::raw::c_char,
27199 count: *mut usize,
27200 ) -> *mut *mut ::std::os::raw::c_char;
27201}
27202unsafe extern "C" {
27203 pub fn BNTypeArchiveNewSnapshotTransaction(
27204 archive: *mut BNTypeArchive,
27205 func: ::std::option::Option<
27206 unsafe extern "C" fn(
27207 context: *mut ::std::os::raw::c_void,
27208 id: *const ::std::os::raw::c_char,
27209 ) -> bool,
27210 >,
27211 context: *mut ::std::os::raw::c_void,
27212 parents: *const *const ::std::os::raw::c_char,
27213 parentCount: usize,
27214 ) -> *mut ::std::os::raw::c_char;
27215}
27216unsafe extern "C" {
27217 pub fn BNRegisterTypeArchiveNotification(
27218 archive: *mut BNTypeArchive,
27219 notification: *mut BNTypeArchiveNotification,
27220 );
27221}
27222unsafe extern "C" {
27223 pub fn BNUnregisterTypeArchiveNotification(
27224 archive: *mut BNTypeArchive,
27225 notification: *mut BNTypeArchiveNotification,
27226 );
27227}
27228unsafe extern "C" {
27229 pub fn BNTypeArchiveStoreMetadata(
27230 archive: *mut BNTypeArchive,
27231 key: *const ::std::os::raw::c_char,
27232 value: *mut BNMetadata,
27233 ) -> bool;
27234}
27235unsafe extern "C" {
27236 pub fn BNTypeArchiveQueryMetadata(
27237 archive: *mut BNTypeArchive,
27238 key: *const ::std::os::raw::c_char,
27239 ) -> *mut BNMetadata;
27240}
27241unsafe extern "C" {
27242 pub fn BNTypeArchiveRemoveMetadata(
27243 archive: *mut BNTypeArchive,
27244 key: *const ::std::os::raw::c_char,
27245 ) -> bool;
27246}
27247unsafe extern "C" {
27248 pub fn BNTypeArchiveSerializeSnapshot(
27249 archive: *mut BNTypeArchive,
27250 snapshot: *const ::std::os::raw::c_char,
27251 ) -> *mut BNDataBuffer;
27252}
27253unsafe extern "C" {
27254 pub fn BNTypeArchiveDeserializeSnapshot(
27255 archive: *mut BNTypeArchive,
27256 buffer: *mut BNDataBuffer,
27257 ) -> *mut ::std::os::raw::c_char;
27258}
27259unsafe extern "C" {
27260 pub fn BNTypeArchiveMergeSnapshots(
27261 archive: *mut BNTypeArchive,
27262 baseSnapshot: *const ::std::os::raw::c_char,
27263 firstSnapshot: *const ::std::os::raw::c_char,
27264 secondSnapshot: *const ::std::os::raw::c_char,
27265 mergeConflictKeysIn: *const *const ::std::os::raw::c_char,
27266 mergeConflictValuesIn: *const *const ::std::os::raw::c_char,
27267 mergeConflictCountIn: usize,
27268 mergeConflictsOut: *mut *mut *mut ::std::os::raw::c_char,
27269 mergeConflictCountOut: *mut usize,
27270 result: *mut *mut ::std::os::raw::c_char,
27271 progress: BNProgressFunction,
27272 context: *mut ::std::os::raw::c_void,
27273 ) -> bool;
27274}
27275unsafe extern "C" {
27276 pub fn BNBinaryViewAttachTypeArchive(
27277 view: *mut BNBinaryView,
27278 id: *const ::std::os::raw::c_char,
27279 path: *const ::std::os::raw::c_char,
27280 ) -> *mut BNTypeArchive;
27281}
27282unsafe extern "C" {
27283 pub fn BNBinaryViewDetachTypeArchive(
27284 view: *mut BNBinaryView,
27285 id: *const ::std::os::raw::c_char,
27286 ) -> bool;
27287}
27288unsafe extern "C" {
27289 pub fn BNBinaryViewGetTypeArchive(
27290 view: *mut BNBinaryView,
27291 id: *const ::std::os::raw::c_char,
27292 ) -> *mut BNTypeArchive;
27293}
27294unsafe extern "C" {
27295 pub fn BNBinaryViewGetTypeArchives(
27296 view: *mut BNBinaryView,
27297 ids: *mut *mut *mut ::std::os::raw::c_char,
27298 paths: *mut *mut *mut ::std::os::raw::c_char,
27299 ) -> usize;
27300}
27301unsafe extern "C" {
27302 pub fn BNBinaryViewGetTypeArchivePath(
27303 view: *mut BNBinaryView,
27304 id: *const ::std::os::raw::c_char,
27305 ) -> *mut ::std::os::raw::c_char;
27306}
27307unsafe extern "C" {
27308 pub fn BNBinaryViewGetTypeArchiveTypeNameList(
27309 view: *mut BNBinaryView,
27310 names: *mut *mut BNQualifiedName,
27311 ) -> usize;
27312}
27313unsafe extern "C" {
27314 pub fn BNBinaryViewGetTypeArchiveTypeNames(
27315 view: *mut BNBinaryView,
27316 name: *mut BNQualifiedName,
27317 archiveIds: *mut *mut *mut ::std::os::raw::c_char,
27318 archiveTypeIds: *mut *mut *mut ::std::os::raw::c_char,
27319 ) -> usize;
27320}
27321unsafe extern "C" {
27322 pub fn BNBinaryViewGetAssociatedTypeArchiveTypes(
27323 view: *mut BNBinaryView,
27324 typeIds: *mut *mut *mut ::std::os::raw::c_char,
27325 archiveIds: *mut *mut *mut ::std::os::raw::c_char,
27326 archiveTypeIds: *mut *mut *mut ::std::os::raw::c_char,
27327 ) -> usize;
27328}
27329unsafe extern "C" {
27330 pub fn BNBinaryViewGetAssociatedTypesFromArchive(
27331 view: *mut BNBinaryView,
27332 archiveId: *const ::std::os::raw::c_char,
27333 typeIds: *mut *mut *mut ::std::os::raw::c_char,
27334 archiveTypeIds: *mut *mut *mut ::std::os::raw::c_char,
27335 ) -> usize;
27336}
27337unsafe extern "C" {
27338 pub fn BNBinaryViewGetAssociatedTypeArchiveTypeTarget(
27339 view: *mut BNBinaryView,
27340 typeId: *const ::std::os::raw::c_char,
27341 archiveId: *mut *mut ::std::os::raw::c_char,
27342 archiveTypeId: *mut *mut ::std::os::raw::c_char,
27343 ) -> bool;
27344}
27345unsafe extern "C" {
27346 pub fn BNBinaryViewGetAssociatedTypeArchiveTypeSource(
27347 view: *mut BNBinaryView,
27348 archiveId: *const ::std::os::raw::c_char,
27349 archiveTypeId: *const ::std::os::raw::c_char,
27350 typeId: *mut *mut ::std::os::raw::c_char,
27351 ) -> bool;
27352}
27353unsafe extern "C" {
27354 pub fn BNBinaryViewGetTypeArchiveSyncStatus(
27355 view: *mut BNBinaryView,
27356 typeId: *const ::std::os::raw::c_char,
27357 ) -> BNSyncStatus;
27358}
27359unsafe extern "C" {
27360 pub fn BNBinaryViewDisassociateTypeArchiveType(
27361 view: *mut BNBinaryView,
27362 typeId: *const ::std::os::raw::c_char,
27363 ) -> bool;
27364}
27365unsafe extern "C" {
27366 pub fn BNBinaryViewPullTypeArchiveTypes(
27367 view: *mut BNBinaryView,
27368 archiveId: *const ::std::os::raw::c_char,
27369 archiveTypeIds: *const *const ::std::os::raw::c_char,
27370 archiveTypeIdCount: usize,
27371 updatedArchiveTypeIds: *mut *mut *mut ::std::os::raw::c_char,
27372 updatedAnalysisTypeIds: *mut *mut *mut ::std::os::raw::c_char,
27373 updatedTypeCount: *mut usize,
27374 ) -> bool;
27375}
27376unsafe extern "C" {
27377 pub fn BNBinaryViewPushTypeArchiveTypes(
27378 view: *mut BNBinaryView,
27379 archiveId: *const ::std::os::raw::c_char,
27380 typeIds: *const *const ::std::os::raw::c_char,
27381 typeIdCount: usize,
27382 updatedAnalysisTypeIds: *mut *mut *mut ::std::os::raw::c_char,
27383 updatedArchiveTypeIds: *mut *mut *mut ::std::os::raw::c_char,
27384 updatedTypeCount: *mut usize,
27385 ) -> bool;
27386}
27387unsafe extern "C" {
27388 #[doc = " Base Address Detection"]
27389 pub fn BNCreateBaseAddressDetection(view: *mut BNBinaryView) -> *mut BNBaseAddressDetection;
27390}
27391unsafe extern "C" {
27392 pub fn BNDetectBaseAddress(
27393 bad: *mut BNBaseAddressDetection,
27394 settings: *mut BNBaseAddressDetectionSettings,
27395 ) -> bool;
27396}
27397unsafe extern "C" {
27398 pub fn BNGetBaseAddressDetectionScores(
27399 bad: *mut BNBaseAddressDetection,
27400 scores: *mut BNBaseAddressDetectionScore,
27401 count: usize,
27402 confidence: *mut BNBaseAddressDetectionConfidence,
27403 lastTestedBaseAddress: *mut u64,
27404 ) -> usize;
27405}
27406unsafe extern "C" {
27407 pub fn BNGetBaseAddressDetectionReasons(
27408 bad: *mut BNBaseAddressDetection,
27409 baseAddress: u64,
27410 count: *mut usize,
27411 ) -> *mut BNBaseAddressDetectionReason;
27412}
27413unsafe extern "C" {
27414 pub fn BNFreeBaseAddressDetectionReasons(reasons: *mut BNBaseAddressDetectionReason);
27415}
27416unsafe extern "C" {
27417 pub fn BNAbortBaseAddressDetection(bad: *mut BNBaseAddressDetection);
27418}
27419unsafe extern "C" {
27420 pub fn BNIsBaseAddressDetectionAborted(bad: *mut BNBaseAddressDetection) -> bool;
27421}
27422unsafe extern "C" {
27423 pub fn BNFreeBaseAddressDetection(bad: *mut BNBaseAddressDetection);
27424}
27425unsafe extern "C" {
27426 #[doc = " Unicode"]
27427 pub fn BNUnicodeUTF16ToUTF8(utf16: *const u8, len: usize) -> *mut ::std::os::raw::c_char;
27428}
27429unsafe extern "C" {
27430 pub fn BNUnicodeUTF32ToUTF8(utf32: *const u8) -> *mut ::std::os::raw::c_char;
27431}
27432unsafe extern "C" {
27433 pub fn BNUnicodeGetBlockRange(
27434 name: *const ::std::os::raw::c_char,
27435 rangeStart: *mut u32,
27436 rangeEnd: *mut u32,
27437 ) -> bool;
27438}
27439unsafe extern "C" {
27440 pub fn BNUnicodeGetBlocksForNames(
27441 names: *const *const ::std::os::raw::c_char,
27442 nameCount: usize,
27443 starts: *mut *mut *mut u32,
27444 ends: *mut *mut *mut u32,
27445 blockListCounts: *mut *mut usize,
27446 blockCount: *mut usize,
27447 );
27448}
27449unsafe extern "C" {
27450 pub fn BNFreeUnicodeBlockList(
27451 starts: *mut *mut u32,
27452 ends: *mut *mut u32,
27453 blockCounts: *mut usize,
27454 blockListCounts: usize,
27455 );
27456}
27457unsafe extern "C" {
27458 pub fn BNUnicodeGetBlockNames(names: *mut *mut *mut ::std::os::raw::c_char, count: *mut usize);
27459}
27460unsafe extern "C" {
27461 pub fn BNUnicodeGetBlockRanges(
27462 names: *mut *mut *mut ::std::os::raw::c_char,
27463 rangeStarts: *mut *mut u32,
27464 rangeEnds: *mut *mut u32,
27465 count: *mut usize,
27466 );
27467}
27468unsafe extern "C" {
27469 pub fn BNFreeUnicodeRangeList(starts: *mut u32, ends: *mut u32);
27470}
27471unsafe extern "C" {
27472 pub fn BNUnicodeGetUTF8String(
27473 starts: *mut *mut u32,
27474 ends: *mut *mut u32,
27475 blockListCounts: *mut usize,
27476 blockCount: usize,
27477 data: *const u8,
27478 offset: usize,
27479 dataLen: usize,
27480 ) -> *mut ::std::os::raw::c_char;
27481}
27482unsafe extern "C" {
27483 pub fn BNUnicodeToEscapedString(
27484 starts: *mut *mut u32,
27485 ends: *mut *mut u32,
27486 blockListCounts: *mut usize,
27487 blockCount: usize,
27488 utf8Enabled: bool,
27489 data: *const ::std::os::raw::c_void,
27490 dataLen: usize,
27491 ) -> *mut ::std::os::raw::c_char;
27492}
27493unsafe extern "C" {
27494 #[doc = " Collaboration"]
27495 pub fn BNCollaborationGetActiveRemote() -> *mut BNRemote;
27496}
27497unsafe extern "C" {
27498 pub fn BNCollaborationSetActiveRemote(remote: *mut BNRemote);
27499}
27500unsafe extern "C" {
27501 pub fn BNCollaborationStoreDataInKeychain(
27502 key: *const ::std::os::raw::c_char,
27503 dataKeys: *mut *const ::std::os::raw::c_char,
27504 dataValues: *mut *const ::std::os::raw::c_char,
27505 dataCount: usize,
27506 ) -> bool;
27507}
27508unsafe extern "C" {
27509 pub fn BNCollaborationHasDataInKeychain(key: *const ::std::os::raw::c_char) -> bool;
27510}
27511unsafe extern "C" {
27512 pub fn BNCollaborationGetDataFromKeychain(
27513 key: *const ::std::os::raw::c_char,
27514 foundKeys: *mut *mut *mut ::std::os::raw::c_char,
27515 foundValues: *mut *mut *mut ::std::os::raw::c_char,
27516 ) -> usize;
27517}
27518unsafe extern "C" {
27519 pub fn BNCollaborationDeleteDataFromKeychain(key: *const ::std::os::raw::c_char) -> bool;
27520}
27521unsafe extern "C" {
27522 pub fn BNCollaborationLoadRemotes() -> bool;
27523}
27524unsafe extern "C" {
27525 pub fn BNCollaborationGetRemotes(count: *mut usize) -> *mut *mut BNRemote;
27526}
27527unsafe extern "C" {
27528 pub fn BNCollaborationGetRemoteById(remoteId: *const ::std::os::raw::c_char) -> *mut BNRemote;
27529}
27530unsafe extern "C" {
27531 pub fn BNCollaborationGetRemoteByAddress(
27532 remoteAddress: *const ::std::os::raw::c_char,
27533 ) -> *mut BNRemote;
27534}
27535unsafe extern "C" {
27536 pub fn BNCollaborationGetRemoteByName(name: *const ::std::os::raw::c_char) -> *mut BNRemote;
27537}
27538unsafe extern "C" {
27539 pub fn BNCollaborationCreateRemote(
27540 name: *const ::std::os::raw::c_char,
27541 address: *const ::std::os::raw::c_char,
27542 ) -> *mut BNRemote;
27543}
27544unsafe extern "C" {
27545 pub fn BNCollaborationRemoveRemote(remote: *mut BNRemote);
27546}
27547unsafe extern "C" {
27548 pub fn BNCollaborationSaveRemotes();
27549}
27550unsafe extern "C" {
27551 pub fn BNCollaborationSyncDatabase(
27552 database: *mut BNDatabase,
27553 file: *mut BNRemoteFile,
27554 conflictHandler: BNCollaborationAnalysisConflictHandler,
27555 conflictHandlerCtxt: *mut ::std::os::raw::c_void,
27556 progress: BNProgressFunction,
27557 progressCtxt: *mut ::std::os::raw::c_void,
27558 nameChangeset: BNCollaborationNameChangesetFunction,
27559 nameChangesetCtxt: *mut ::std::os::raw::c_void,
27560 ) -> bool;
27561}
27562unsafe extern "C" {
27563 pub fn BNCollaborationSyncTypeArchive(
27564 archive: *mut BNTypeArchive,
27565 file: *mut BNRemoteFile,
27566 conflictHandler: ::std::option::Option<
27567 unsafe extern "C" fn(
27568 arg1: *mut ::std::os::raw::c_void,
27569 conflicts: *mut *mut BNTypeArchiveMergeConflict,
27570 conflictCount: usize,
27571 ) -> bool,
27572 >,
27573 conflictHandlerCtxt: *mut ::std::os::raw::c_void,
27574 progress: BNProgressFunction,
27575 progressCtxt: *mut ::std::os::raw::c_void,
27576 ) -> bool;
27577}
27578unsafe extern "C" {
27579 pub fn BNCollaborationPushTypeArchive(
27580 archive: *mut BNTypeArchive,
27581 file: *mut BNRemoteFile,
27582 count: *mut usize,
27583 progress: BNProgressFunction,
27584 progressCtxt: *mut ::std::os::raw::c_void,
27585 ) -> bool;
27586}
27587unsafe extern "C" {
27588 pub fn BNCollaborationPullTypeArchive(
27589 archive: *mut BNTypeArchive,
27590 file: *mut BNRemoteFile,
27591 count: *mut usize,
27592 conflictHandler: ::std::option::Option<
27593 unsafe extern "C" fn(
27594 arg1: *mut ::std::os::raw::c_void,
27595 conflicts: *mut *mut BNTypeArchiveMergeConflict,
27596 conflictCount: usize,
27597 ) -> bool,
27598 >,
27599 conflictHandlerCtxt: *mut ::std::os::raw::c_void,
27600 progress: BNProgressFunction,
27601 progressCtxt: *mut ::std::os::raw::c_void,
27602 ) -> bool;
27603}
27604unsafe extern "C" {
27605 pub fn BNCollaborationIsCollaborationTypeArchive(archive: *mut BNTypeArchive) -> bool;
27606}
27607unsafe extern "C" {
27608 pub fn BNCollaborationGetRemoteForLocalTypeArchive(
27609 archive: *mut BNTypeArchive,
27610 ) -> *mut BNRemote;
27611}
27612unsafe extern "C" {
27613 pub fn BNCollaborationGetRemoteProjectForLocalTypeArchive(
27614 archive: *mut BNTypeArchive,
27615 ) -> *mut BNRemoteProject;
27616}
27617unsafe extern "C" {
27618 pub fn BNCollaborationGetRemoteFileForLocalTypeArchive(
27619 archive: *mut BNTypeArchive,
27620 ) -> *mut BNRemoteFile;
27621}
27622unsafe extern "C" {
27623 pub fn BNCollaborationGetRemoteSnapshotFromLocalTypeArchive(
27624 archive: *mut BNTypeArchive,
27625 snapshotId: *const ::std::os::raw::c_char,
27626 ) -> *mut BNCollaborationSnapshot;
27627}
27628unsafe extern "C" {
27629 pub fn BNCollaborationGetLocalSnapshotFromRemoteTypeArchive(
27630 snapshot: *mut BNCollaborationSnapshot,
27631 archive: *mut BNTypeArchive,
27632 ) -> *mut ::std::os::raw::c_char;
27633}
27634unsafe extern "C" {
27635 pub fn BNCollaborationIsTypeArchiveSnapshotIgnored(
27636 archive: *mut BNTypeArchive,
27637 snapshot: *const ::std::os::raw::c_char,
27638 ) -> bool;
27639}
27640unsafe extern "C" {
27641 pub fn BNCollaborationSetSnapshotAuthor(
27642 database: *mut BNDatabase,
27643 snapshot: *mut BNSnapshot,
27644 author: *const ::std::os::raw::c_char,
27645 ) -> bool;
27646}
27647unsafe extern "C" {
27648 pub fn BNCollaborationDefaultProjectPath(
27649 project: *mut BNRemoteProject,
27650 ) -> *mut ::std::os::raw::c_char;
27651}
27652unsafe extern "C" {
27653 pub fn BNCollaborationDefaultFilePath(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
27654}
27655unsafe extern "C" {
27656 pub fn BNCollaborationDownloadFile(
27657 file: *mut BNRemoteFile,
27658 dbPath: *const ::std::os::raw::c_char,
27659 progress: BNProgressFunction,
27660 progressContext: *mut ::std::os::raw::c_void,
27661 ) -> *mut BNFileMetadata;
27662}
27663unsafe extern "C" {
27664 pub fn BNCollaborationUploadDatabase(
27665 metadata: *mut BNFileMetadata,
27666 project: *mut BNRemoteProject,
27667 folder: *mut BNRemoteFolder,
27668 progress: BNProgressFunction,
27669 progressContext: *mut ::std::os::raw::c_void,
27670 nameChangeset: BNCollaborationNameChangesetFunction,
27671 nameChangesetContext: *mut ::std::os::raw::c_void,
27672 ) -> *mut BNRemoteFile;
27673}
27674unsafe extern "C" {
27675 pub fn BNCollaborationIsCollaborationDatabase(database: *mut BNDatabase) -> bool;
27676}
27677unsafe extern "C" {
27678 pub fn BNCollaborationGetRemoteForLocalDatabase(
27679 database: *mut BNDatabase,
27680 result: *mut *mut BNRemote,
27681 ) -> bool;
27682}
27683unsafe extern "C" {
27684 pub fn BNCollaborationGetRemoteProjectForLocalDatabase(
27685 database: *mut BNDatabase,
27686 result: *mut *mut BNRemoteProject,
27687 ) -> bool;
27688}
27689unsafe extern "C" {
27690 pub fn BNCollaborationGetRemoteFileForLocalDatabase(
27691 database: *mut BNDatabase,
27692 result: *mut *mut BNRemoteFile,
27693 ) -> bool;
27694}
27695unsafe extern "C" {
27696 pub fn BNCollaborationAssignSnapshotMap(
27697 localSnapshot: *mut BNSnapshot,
27698 remoteSnapshot: *mut BNCollaborationSnapshot,
27699 ) -> bool;
27700}
27701unsafe extern "C" {
27702 pub fn BNCollaborationGetRemoteSnapshotFromLocal(
27703 snapshot: *mut BNSnapshot,
27704 result: *mut *mut BNCollaborationSnapshot,
27705 ) -> bool;
27706}
27707unsafe extern "C" {
27708 pub fn BNCollaborationGetLocalSnapshotFromRemote(
27709 snapshot: *mut BNCollaborationSnapshot,
27710 database: *mut BNDatabase,
27711 result: *mut *mut BNSnapshot,
27712 ) -> bool;
27713}
27714unsafe extern "C" {
27715 pub fn BNCollaborationDownloadTypeArchive(
27716 file: *mut BNRemoteFile,
27717 dbPath: *const ::std::os::raw::c_char,
27718 progress: BNProgressFunction,
27719 progressContext: *mut ::std::os::raw::c_void,
27720 result: *mut *mut BNTypeArchive,
27721 ) -> bool;
27722}
27723unsafe extern "C" {
27724 pub fn BNCollaborationUploadTypeArchive(
27725 archive: *mut BNTypeArchive,
27726 project: *mut BNRemoteProject,
27727 folder: *mut BNRemoteFolder,
27728 progress: BNProgressFunction,
27729 progressContext: *mut ::std::os::raw::c_void,
27730 coreFile: *mut BNProjectFile,
27731 result: *mut *mut BNRemoteFile,
27732 ) -> bool;
27733}
27734unsafe extern "C" {
27735 pub fn BNCollaborationDownloadDatabaseForFile(
27736 file: *mut BNRemoteFile,
27737 dbPath: *const ::std::os::raw::c_char,
27738 force: bool,
27739 progress: BNProgressFunction,
27740 progressContext: *mut ::std::os::raw::c_void,
27741 ) -> bool;
27742}
27743unsafe extern "C" {
27744 pub fn BNCollaborationMergeSnapshots(
27745 first: *mut BNSnapshot,
27746 second: *mut BNSnapshot,
27747 conflictHandler: BNCollaborationAnalysisConflictHandler,
27748 conflictHandlerCtxt: *mut ::std::os::raw::c_void,
27749 progress: BNProgressFunction,
27750 progressContext: *mut ::std::os::raw::c_void,
27751 ) -> *mut BNSnapshot;
27752}
27753unsafe extern "C" {
27754 pub fn BNCollaborationPullDatabase(
27755 database: *mut BNDatabase,
27756 file: *mut BNRemoteFile,
27757 count: *mut usize,
27758 conflictHandler: BNCollaborationAnalysisConflictHandler,
27759 conflictHandlerCtxt: *mut ::std::os::raw::c_void,
27760 progress: BNProgressFunction,
27761 progressContext: *mut ::std::os::raw::c_void,
27762 nameChangeset: BNCollaborationNameChangesetFunction,
27763 nameChangesetContext: *mut ::std::os::raw::c_void,
27764 ) -> bool;
27765}
27766unsafe extern "C" {
27767 pub fn BNCollaborationMergeDatabase(
27768 database: *mut BNDatabase,
27769 conflictHandler: BNCollaborationAnalysisConflictHandler,
27770 conflictHandlerCtxt: *mut ::std::os::raw::c_void,
27771 progress: BNProgressFunction,
27772 progressContext: *mut ::std::os::raw::c_void,
27773 ) -> bool;
27774}
27775unsafe extern "C" {
27776 pub fn BNCollaborationPushDatabase(
27777 database: *mut BNDatabase,
27778 file: *mut BNRemoteFile,
27779 count: *mut usize,
27780 progress: BNProgressFunction,
27781 progressContext: *mut ::std::os::raw::c_void,
27782 ) -> bool;
27783}
27784unsafe extern "C" {
27785 pub fn BNCollaborationDumpDatabase(database: *mut BNDatabase) -> bool;
27786}
27787unsafe extern "C" {
27788 pub fn BNCollaborationIgnoreSnapshot(
27789 database: *mut BNDatabase,
27790 snapshot: *mut BNSnapshot,
27791 ) -> bool;
27792}
27793unsafe extern "C" {
27794 pub fn BNCollaborationIsSnapshotIgnored(
27795 database: *mut BNDatabase,
27796 snapshot: *mut BNSnapshot,
27797 ) -> bool;
27798}
27799unsafe extern "C" {
27800 pub fn BNCollaborationGetSnapshotAuthor(
27801 database: *mut BNDatabase,
27802 snapshot: *mut BNSnapshot,
27803 result: *mut *mut ::std::os::raw::c_char,
27804 ) -> bool;
27805}
27806unsafe extern "C" {
27807 pub fn BNCollaborationFreeIdList(ids: *mut u64, size: usize);
27808}
27809unsafe extern "C" {
27810 pub fn BNCollaborationFreeSnapshotIdList(ids: *mut i64, size: usize);
27811}
27812unsafe extern "C" {
27813 #[doc = " LazyT"]
27814 pub fn BNCollaborationLazyTCreate(
27815 ctor: ::std::option::Option<
27816 unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void,
27817 >,
27818 context: *mut ::std::os::raw::c_void,
27819 ) -> *mut BNCollaborationLazyT;
27820}
27821unsafe extern "C" {
27822 pub fn BNCollaborationLazyTDereference(
27823 lazyT: *mut BNCollaborationLazyT,
27824 ) -> *mut ::std::os::raw::c_void;
27825}
27826unsafe extern "C" {
27827 pub fn BNCollaborationFreeLazyT(lazyT: *mut BNCollaborationLazyT);
27828}
27829unsafe extern "C" {
27830 #[doc = " Remote"]
27831 pub fn BNNewRemoteReference(remote: *mut BNRemote) -> *mut BNRemote;
27832}
27833unsafe extern "C" {
27834 pub fn BNFreeRemote(remote: *mut BNRemote);
27835}
27836unsafe extern "C" {
27837 pub fn BNFreeRemoteList(remotes: *mut *mut BNRemote, count: usize);
27838}
27839unsafe extern "C" {
27840 pub fn BNRemoteGetUniqueId(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
27841}
27842unsafe extern "C" {
27843 pub fn BNRemoteGetName(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
27844}
27845unsafe extern "C" {
27846 pub fn BNRemoteGetAddress(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
27847}
27848unsafe extern "C" {
27849 pub fn BNRemoteHasLoadedMetadata(remote: *mut BNRemote) -> bool;
27850}
27851unsafe extern "C" {
27852 pub fn BNRemoteIsConnected(remote: *mut BNRemote) -> bool;
27853}
27854unsafe extern "C" {
27855 pub fn BNRemoteGetUsername(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
27856}
27857unsafe extern "C" {
27858 pub fn BNRemoteGetToken(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
27859}
27860unsafe extern "C" {
27861 pub fn BNRemoteGetServerVersion(remote: *mut BNRemote) -> ::std::os::raw::c_int;
27862}
27863unsafe extern "C" {
27864 pub fn BNRemoteGetServerBuildVersion(remote: *mut BNRemote) -> BNVersionInfo;
27865}
27866unsafe extern "C" {
27867 pub fn BNRemoteGetServerBuildId(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
27868}
27869unsafe extern "C" {
27870 pub fn BNRemoteGetAuthBackends(
27871 remote: *mut BNRemote,
27872 backendIds: *mut *mut *mut ::std::os::raw::c_char,
27873 backendNames: *mut *mut *mut ::std::os::raw::c_char,
27874 count: *mut usize,
27875 ) -> bool;
27876}
27877unsafe extern "C" {
27878 pub fn BNRemoteHasPulledProjects(remote: *mut BNRemote) -> bool;
27879}
27880unsafe extern "C" {
27881 pub fn BNRemoteHasPulledUsers(remote: *mut BNRemote) -> bool;
27882}
27883unsafe extern "C" {
27884 pub fn BNRemoteHasPulledGroups(remote: *mut BNRemote) -> bool;
27885}
27886unsafe extern "C" {
27887 pub fn BNRemoteIsAdmin(remote: *mut BNRemote) -> bool;
27888}
27889unsafe extern "C" {
27890 pub fn BNRemoteIsEnterprise(remote: *mut BNRemote) -> bool;
27891}
27892unsafe extern "C" {
27893 pub fn BNRemoteLoadMetadata(remote: *mut BNRemote) -> bool;
27894}
27895unsafe extern "C" {
27896 pub fn BNRemoteRequestAuthenticationToken(
27897 remote: *mut BNRemote,
27898 username: *const ::std::os::raw::c_char,
27899 password: *const ::std::os::raw::c_char,
27900 ) -> *mut ::std::os::raw::c_char;
27901}
27902unsafe extern "C" {
27903 pub fn BNRemoteConnect(
27904 remote: *mut BNRemote,
27905 username: *const ::std::os::raw::c_char,
27906 token: *const ::std::os::raw::c_char,
27907 ) -> bool;
27908}
27909unsafe extern "C" {
27910 pub fn BNRemoteDisconnect(remote: *mut BNRemote) -> bool;
27911}
27912unsafe extern "C" {
27913 pub fn BNRemoteGetProjects(
27914 remote: *mut BNRemote,
27915 count: *mut usize,
27916 ) -> *mut *mut BNRemoteProject;
27917}
27918unsafe extern "C" {
27919 pub fn BNRemoteGetProjectById(
27920 remote: *mut BNRemote,
27921 id: *const ::std::os::raw::c_char,
27922 ) -> *mut BNRemoteProject;
27923}
27924unsafe extern "C" {
27925 pub fn BNRemoteGetProjectByName(
27926 remote: *mut BNRemote,
27927 name: *const ::std::os::raw::c_char,
27928 ) -> *mut BNRemoteProject;
27929}
27930unsafe extern "C" {
27931 pub fn BNRemotePullProjects(
27932 remote: *mut BNRemote,
27933 progress: BNProgressFunction,
27934 progressContext: *mut ::std::os::raw::c_void,
27935 ) -> bool;
27936}
27937unsafe extern "C" {
27938 pub fn BNRemoteCreateProject(
27939 remote: *mut BNRemote,
27940 name: *const ::std::os::raw::c_char,
27941 description: *const ::std::os::raw::c_char,
27942 ) -> *mut BNRemoteProject;
27943}
27944unsafe extern "C" {
27945 pub fn BNRemoteImportLocalProject(
27946 remote: *mut BNRemote,
27947 localProject: *mut BNProject,
27948 progress: BNProgressFunction,
27949 progressCtxt: *mut ::std::os::raw::c_void,
27950 ) -> *mut BNRemoteProject;
27951}
27952unsafe extern "C" {
27953 pub fn BNRemotePushProject(
27954 remote: *mut BNRemote,
27955 project: *mut BNRemoteProject,
27956 extraFieldKeys: *mut *const ::std::os::raw::c_char,
27957 extraFieldValues: *mut *const ::std::os::raw::c_char,
27958 extraFieldCount: usize,
27959 ) -> bool;
27960}
27961unsafe extern "C" {
27962 pub fn BNRemoteDeleteProject(remote: *mut BNRemote, project: *mut BNRemoteProject) -> bool;
27963}
27964unsafe extern "C" {
27965 pub fn BNRemoteGetGroups(
27966 remote: *mut BNRemote,
27967 count: *mut usize,
27968 ) -> *mut *mut BNCollaborationGroup;
27969}
27970unsafe extern "C" {
27971 pub fn BNRemoteGetGroupById(remote: *mut BNRemote, id: u64) -> *mut BNCollaborationGroup;
27972}
27973unsafe extern "C" {
27974 pub fn BNRemoteGetGroupByName(
27975 remote: *mut BNRemote,
27976 name: *const ::std::os::raw::c_char,
27977 ) -> *mut BNCollaborationGroup;
27978}
27979unsafe extern "C" {
27980 pub fn BNRemoteSearchGroups(
27981 remote: *mut BNRemote,
27982 prefix: *const ::std::os::raw::c_char,
27983 groupIds: *mut *mut u64,
27984 groupNames: *mut *mut *mut ::std::os::raw::c_char,
27985 count: *mut usize,
27986 ) -> bool;
27987}
27988unsafe extern "C" {
27989 pub fn BNRemotePullGroups(
27990 remote: *mut BNRemote,
27991 progress: BNProgressFunction,
27992 progressContext: *mut ::std::os::raw::c_void,
27993 ) -> bool;
27994}
27995unsafe extern "C" {
27996 pub fn BNRemoteCreateGroup(
27997 remote: *mut BNRemote,
27998 name: *const ::std::os::raw::c_char,
27999 users: *mut *mut BNCollaborationUser,
28000 userCount: usize,
28001 ) -> *mut BNCollaborationGroup;
28002}
28003unsafe extern "C" {
28004 pub fn BNRemotePushGroup(
28005 remote: *mut BNRemote,
28006 group: *mut BNCollaborationGroup,
28007 extraFieldKeys: *mut *const ::std::os::raw::c_char,
28008 extraFieldValues: *mut *const ::std::os::raw::c_char,
28009 extraFieldCount: usize,
28010 ) -> bool;
28011}
28012unsafe extern "C" {
28013 pub fn BNRemoteDeleteGroup(remote: *mut BNRemote, group: *mut BNCollaborationGroup) -> bool;
28014}
28015unsafe extern "C" {
28016 pub fn BNRemoteGetUsers(
28017 remote: *mut BNRemote,
28018 count: *mut usize,
28019 ) -> *mut *mut BNCollaborationUser;
28020}
28021unsafe extern "C" {
28022 pub fn BNRemoteGetUserById(
28023 remote: *mut BNRemote,
28024 id: *const ::std::os::raw::c_char,
28025 ) -> *mut BNCollaborationUser;
28026}
28027unsafe extern "C" {
28028 pub fn BNRemoteGetUserByUsername(
28029 remote: *mut BNRemote,
28030 username: *const ::std::os::raw::c_char,
28031 ) -> *mut BNCollaborationUser;
28032}
28033unsafe extern "C" {
28034 pub fn BNRemoteGetCurrentUser(remote: *mut BNRemote) -> *mut BNCollaborationUser;
28035}
28036unsafe extern "C" {
28037 pub fn BNRemoteSearchUsers(
28038 remote: *mut BNRemote,
28039 prefix: *const ::std::os::raw::c_char,
28040 userIds: *mut *mut *mut ::std::os::raw::c_char,
28041 usernames: *mut *mut *mut ::std::os::raw::c_char,
28042 count: *mut usize,
28043 ) -> bool;
28044}
28045unsafe extern "C" {
28046 pub fn BNRemoteFindFiles(
28047 remote: *mut BNRemote,
28048 name: *const ::std::os::raw::c_char,
28049 count: *mut usize,
28050 ) -> *mut BNRemoteFileSearchMatch;
28051}
28052unsafe extern "C" {
28053 pub fn BNFreeRemoteFileSearchMatchList(matches: *mut BNRemoteFileSearchMatch, count: usize);
28054}
28055unsafe extern "C" {
28056 pub fn BNRemotePullUsers(
28057 remote: *mut BNRemote,
28058 progress: BNProgressFunction,
28059 progressContext: *mut ::std::os::raw::c_void,
28060 ) -> bool;
28061}
28062unsafe extern "C" {
28063 pub fn BNRemoteCreateUser(
28064 remote: *mut BNRemote,
28065 username: *const ::std::os::raw::c_char,
28066 email: *const ::std::os::raw::c_char,
28067 isActive: bool,
28068 password: *const ::std::os::raw::c_char,
28069 groupIds: *const u64,
28070 groupIdCount: usize,
28071 userPermissionIds: *const u64,
28072 userPermissionIdCount: usize,
28073 ) -> *mut BNCollaborationUser;
28074}
28075unsafe extern "C" {
28076 pub fn BNRemotePushUser(
28077 remote: *mut BNRemote,
28078 user: *mut BNCollaborationUser,
28079 extraFieldKeys: *mut *const ::std::os::raw::c_char,
28080 extraFieldValues: *mut *const ::std::os::raw::c_char,
28081 extraFieldCount: usize,
28082 ) -> bool;
28083}
28084unsafe extern "C" {
28085 pub fn BNRemoteRequest(
28086 remote: *mut BNRemote,
28087 request: *mut ::std::os::raw::c_void,
28088 ret: *mut ::std::os::raw::c_void,
28089 ) -> ::std::os::raw::c_int;
28090}
28091unsafe extern "C" {
28092 #[doc = " CollabGroup"]
28093 pub fn BNNewCollaborationGroupReference(
28094 group: *mut BNCollaborationGroup,
28095 ) -> *mut BNCollaborationGroup;
28096}
28097unsafe extern "C" {
28098 pub fn BNFreeCollaborationGroup(group: *mut BNCollaborationGroup);
28099}
28100unsafe extern "C" {
28101 pub fn BNFreeCollaborationGroupList(group: *mut *mut BNCollaborationGroup, count: usize);
28102}
28103unsafe extern "C" {
28104 pub fn BNCollaborationGroupGetRemote(group: *mut BNCollaborationGroup) -> *mut BNRemote;
28105}
28106unsafe extern "C" {
28107 pub fn BNCollaborationGroupGetUrl(
28108 group: *mut BNCollaborationGroup,
28109 ) -> *mut ::std::os::raw::c_char;
28110}
28111unsafe extern "C" {
28112 pub fn BNCollaborationGroupGetId(group: *mut BNCollaborationGroup) -> u64;
28113}
28114unsafe extern "C" {
28115 pub fn BNCollaborationGroupGetName(
28116 group: *mut BNCollaborationGroup,
28117 ) -> *mut ::std::os::raw::c_char;
28118}
28119unsafe extern "C" {
28120 pub fn BNCollaborationGroupSetName(
28121 group: *mut BNCollaborationGroup,
28122 name: *const ::std::os::raw::c_char,
28123 );
28124}
28125unsafe extern "C" {
28126 pub fn BNCollaborationGroupGetUsers(
28127 group: *mut BNCollaborationGroup,
28128 count: *mut usize,
28129 ) -> *mut *mut BNCollaborationUser;
28130}
28131unsafe extern "C" {
28132 pub fn BNCollaborationGroupSetUsers(
28133 group: *mut BNCollaborationGroup,
28134 users: *mut *mut BNCollaborationUser,
28135 count: usize,
28136 ) -> bool;
28137}
28138unsafe extern "C" {
28139 pub fn BNCollaborationGroupContainsUser(
28140 group: *mut BNCollaborationGroup,
28141 user: *mut BNCollaborationUser,
28142 ) -> bool;
28143}
28144unsafe extern "C" {
28145 #[doc = " CollabUser"]
28146 pub fn BNNewCollaborationUserReference(
28147 user: *mut BNCollaborationUser,
28148 ) -> *mut BNCollaborationUser;
28149}
28150unsafe extern "C" {
28151 pub fn BNFreeCollaborationUser(user: *mut BNCollaborationUser);
28152}
28153unsafe extern "C" {
28154 pub fn BNFreeCollaborationUserList(users: *mut *mut BNCollaborationUser, count: usize);
28155}
28156unsafe extern "C" {
28157 pub fn BNCollaborationUserGetRemote(user: *mut BNCollaborationUser) -> *mut BNRemote;
28158}
28159unsafe extern "C" {
28160 pub fn BNCollaborationUserGetUrl(user: *mut BNCollaborationUser)
28161 -> *mut ::std::os::raw::c_char;
28162}
28163unsafe extern "C" {
28164 pub fn BNCollaborationUserGetId(user: *mut BNCollaborationUser) -> *mut ::std::os::raw::c_char;
28165}
28166unsafe extern "C" {
28167 pub fn BNCollaborationUserGetUsername(
28168 user: *mut BNCollaborationUser,
28169 ) -> *mut ::std::os::raw::c_char;
28170}
28171unsafe extern "C" {
28172 pub fn BNCollaborationUserGetEmail(
28173 user: *mut BNCollaborationUser,
28174 ) -> *mut ::std::os::raw::c_char;
28175}
28176unsafe extern "C" {
28177 pub fn BNCollaborationUserGetLastLogin(
28178 user: *mut BNCollaborationUser,
28179 ) -> *mut ::std::os::raw::c_char;
28180}
28181unsafe extern "C" {
28182 pub fn BNCollaborationUserIsActive(user: *mut BNCollaborationUser) -> bool;
28183}
28184unsafe extern "C" {
28185 pub fn BNCollaborationUserSetUsername(
28186 user: *mut BNCollaborationUser,
28187 username: *const ::std::os::raw::c_char,
28188 ) -> bool;
28189}
28190unsafe extern "C" {
28191 pub fn BNCollaborationUserSetEmail(
28192 user: *mut BNCollaborationUser,
28193 email: *const ::std::os::raw::c_char,
28194 ) -> bool;
28195}
28196unsafe extern "C" {
28197 pub fn BNCollaborationUserSetIsActive(user: *mut BNCollaborationUser, isActive: bool) -> bool;
28198}
28199unsafe extern "C" {
28200 #[doc = " RemoteProject"]
28201 pub fn BNNewRemoteProjectReference(project: *mut BNRemoteProject) -> *mut BNRemoteProject;
28202}
28203unsafe extern "C" {
28204 pub fn BNFreeRemoteProject(project: *mut BNRemoteProject);
28205}
28206unsafe extern "C" {
28207 pub fn BNFreeRemoteProjectList(projects: *mut *mut BNRemoteProject, count: usize);
28208}
28209unsafe extern "C" {
28210 pub fn BNRemoteProjectGetCoreProject(project: *mut BNRemoteProject) -> *mut BNProject;
28211}
28212unsafe extern "C" {
28213 pub fn BNRemoteProjectIsOpen(project: *mut BNRemoteProject) -> bool;
28214}
28215unsafe extern "C" {
28216 pub fn BNRemoteProjectOpen(
28217 project: *mut BNRemoteProject,
28218 progress: BNProgressFunction,
28219 progressCtxt: *mut ::std::os::raw::c_void,
28220 ) -> bool;
28221}
28222unsafe extern "C" {
28223 pub fn BNRemoteProjectClose(project: *mut BNRemoteProject);
28224}
28225unsafe extern "C" {
28226 pub fn BNRemoteProjectGetRemote(project: *mut BNRemoteProject) -> *mut BNRemote;
28227}
28228unsafe extern "C" {
28229 pub fn BNRemoteProjectGetUrl(project: *mut BNRemoteProject) -> *mut ::std::os::raw::c_char;
28230}
28231unsafe extern "C" {
28232 pub fn BNRemoteProjectGetCreated(project: *mut BNRemoteProject) -> i64;
28233}
28234unsafe extern "C" {
28235 pub fn BNRemoteProjectGetLastModified(project: *mut BNRemoteProject) -> i64;
28236}
28237unsafe extern "C" {
28238 pub fn BNRemoteProjectGetId(project: *mut BNRemoteProject) -> *mut ::std::os::raw::c_char;
28239}
28240unsafe extern "C" {
28241 pub fn BNRemoteProjectGetName(project: *mut BNRemoteProject) -> *mut ::std::os::raw::c_char;
28242}
28243unsafe extern "C" {
28244 pub fn BNRemoteProjectSetName(
28245 project: *mut BNRemoteProject,
28246 name: *const ::std::os::raw::c_char,
28247 ) -> bool;
28248}
28249unsafe extern "C" {
28250 pub fn BNRemoteProjectGetDescription(
28251 project: *mut BNRemoteProject,
28252 ) -> *mut ::std::os::raw::c_char;
28253}
28254unsafe extern "C" {
28255 pub fn BNRemoteProjectSetDescription(
28256 project: *mut BNRemoteProject,
28257 description: *const ::std::os::raw::c_char,
28258 ) -> bool;
28259}
28260unsafe extern "C" {
28261 pub fn BNRemoteProjectGetReceivedFileCount(project: *mut BNRemoteProject) -> u64;
28262}
28263unsafe extern "C" {
28264 pub fn BNRemoteProjectGetReceivedFolderCount(project: *mut BNRemoteProject) -> u64;
28265}
28266unsafe extern "C" {
28267 pub fn BNRemoteProjectHasPulledFiles(project: *mut BNRemoteProject) -> bool;
28268}
28269unsafe extern "C" {
28270 pub fn BNRemoteProjectHasPulledFolders(project: *mut BNRemoteProject) -> bool;
28271}
28272unsafe extern "C" {
28273 pub fn BNRemoteProjectHasPulledGroupPermissions(project: *mut BNRemoteProject) -> bool;
28274}
28275unsafe extern "C" {
28276 pub fn BNRemoteProjectHasPulledUserPermissions(project: *mut BNRemoteProject) -> bool;
28277}
28278unsafe extern "C" {
28279 pub fn BNRemoteProjectIsAdmin(project: *mut BNRemoteProject) -> bool;
28280}
28281unsafe extern "C" {
28282 pub fn BNRemoteProjectGetFiles(
28283 project: *mut BNRemoteProject,
28284 count: *mut usize,
28285 ) -> *mut *mut BNRemoteFile;
28286}
28287unsafe extern "C" {
28288 pub fn BNRemoteProjectGetFileById(
28289 project: *mut BNRemoteProject,
28290 id: *const ::std::os::raw::c_char,
28291 ) -> *mut BNRemoteFile;
28292}
28293unsafe extern "C" {
28294 pub fn BNRemoteProjectGetFileByName(
28295 project: *mut BNRemoteProject,
28296 name: *const ::std::os::raw::c_char,
28297 ) -> *mut BNRemoteFile;
28298}
28299unsafe extern "C" {
28300 pub fn BNRemoteProjectPullFiles(
28301 project: *mut BNRemoteProject,
28302 progress: BNProgressFunction,
28303 progressContext: *mut ::std::os::raw::c_void,
28304 ) -> bool;
28305}
28306unsafe extern "C" {
28307 pub fn BNRemoteProjectCreateFile(
28308 project: *mut BNRemoteProject,
28309 filename: *const ::std::os::raw::c_char,
28310 contents: *mut u8,
28311 contentsSize: usize,
28312 name: *const ::std::os::raw::c_char,
28313 description: *const ::std::os::raw::c_char,
28314 folder: *mut BNRemoteFolder,
28315 type_: BNRemoteFileType,
28316 progress: BNProgressFunction,
28317 progressContext: *mut ::std::os::raw::c_void,
28318 ) -> *mut BNRemoteFile;
28319}
28320unsafe extern "C" {
28321 pub fn BNRemoteProjectPushFile(
28322 project: *mut BNRemoteProject,
28323 file: *mut BNRemoteFile,
28324 extraFieldKeys: *mut *const ::std::os::raw::c_char,
28325 extraFieldValues: *mut *const ::std::os::raw::c_char,
28326 extraFieldCount: usize,
28327 ) -> bool;
28328}
28329unsafe extern "C" {
28330 pub fn BNRemoteProjectDeleteFile(
28331 project: *mut BNRemoteProject,
28332 file: *mut BNRemoteFile,
28333 ) -> bool;
28334}
28335unsafe extern "C" {
28336 pub fn BNRemoteProjectGetFolders(
28337 project: *mut BNRemoteProject,
28338 count: *mut usize,
28339 ) -> *mut *mut BNRemoteFolder;
28340}
28341unsafe extern "C" {
28342 pub fn BNRemoteProjectGetFolderById(
28343 project: *mut BNRemoteProject,
28344 id: *const ::std::os::raw::c_char,
28345 ) -> *mut BNRemoteFolder;
28346}
28347unsafe extern "C" {
28348 pub fn BNRemoteProjectPullFolders(
28349 project: *mut BNRemoteProject,
28350 progress: BNProgressFunction,
28351 progressContext: *mut ::std::os::raw::c_void,
28352 ) -> bool;
28353}
28354unsafe extern "C" {
28355 pub fn BNRemoteProjectCreateFolder(
28356 project: *mut BNRemoteProject,
28357 name: *const ::std::os::raw::c_char,
28358 description: *const ::std::os::raw::c_char,
28359 parent: *mut BNRemoteFolder,
28360 progress: BNProgressFunction,
28361 progressContext: *mut ::std::os::raw::c_void,
28362 ) -> *mut BNRemoteFolder;
28363}
28364unsafe extern "C" {
28365 pub fn BNRemoteProjectPushFolder(
28366 project: *mut BNRemoteProject,
28367 folder: *mut BNRemoteFolder,
28368 extraFieldKeys: *mut *const ::std::os::raw::c_char,
28369 extraFieldValues: *mut *const ::std::os::raw::c_char,
28370 extraFieldCount: usize,
28371 ) -> bool;
28372}
28373unsafe extern "C" {
28374 pub fn BNRemoteProjectDeleteFolder(
28375 project: *mut BNRemoteProject,
28376 folder: *mut BNRemoteFolder,
28377 ) -> bool;
28378}
28379unsafe extern "C" {
28380 pub fn BNRemoteProjectGetGroupPermissions(
28381 project: *mut BNRemoteProject,
28382 count: *mut usize,
28383 ) -> *mut *mut BNCollaborationPermission;
28384}
28385unsafe extern "C" {
28386 pub fn BNRemoteProjectGetUserPermissions(
28387 project: *mut BNRemoteProject,
28388 count: *mut usize,
28389 ) -> *mut *mut BNCollaborationPermission;
28390}
28391unsafe extern "C" {
28392 pub fn BNRemoteProjectGetPermissionById(
28393 project: *mut BNRemoteProject,
28394 id: *const ::std::os::raw::c_char,
28395 ) -> *mut BNCollaborationPermission;
28396}
28397unsafe extern "C" {
28398 pub fn BNRemoteProjectPullGroupPermissions(
28399 project: *mut BNRemoteProject,
28400 progress: BNProgressFunction,
28401 progressContext: *mut ::std::os::raw::c_void,
28402 ) -> bool;
28403}
28404unsafe extern "C" {
28405 pub fn BNRemoteProjectPullUserPermissions(
28406 project: *mut BNRemoteProject,
28407 progress: BNProgressFunction,
28408 progressContext: *mut ::std::os::raw::c_void,
28409 ) -> bool;
28410}
28411unsafe extern "C" {
28412 pub fn BNRemoteProjectCreateGroupPermission(
28413 project: *mut BNRemoteProject,
28414 groupId: i64,
28415 level: BNCollaborationPermissionLevel,
28416 progress: BNProgressFunction,
28417 progressContext: *mut ::std::os::raw::c_void,
28418 ) -> *mut BNCollaborationPermission;
28419}
28420unsafe extern "C" {
28421 pub fn BNRemoteProjectCreateUserPermission(
28422 project: *mut BNRemoteProject,
28423 userId: *const ::std::os::raw::c_char,
28424 level: BNCollaborationPermissionLevel,
28425 progress: BNProgressFunction,
28426 progressContext: *mut ::std::os::raw::c_void,
28427 ) -> *mut BNCollaborationPermission;
28428}
28429unsafe extern "C" {
28430 pub fn BNRemoteProjectPushPermission(
28431 project: *mut BNRemoteProject,
28432 permission: *mut BNCollaborationPermission,
28433 extraFieldKeys: *mut *const ::std::os::raw::c_char,
28434 extraFieldValues: *mut *const ::std::os::raw::c_char,
28435 extraFieldCount: usize,
28436 ) -> bool;
28437}
28438unsafe extern "C" {
28439 pub fn BNRemoteProjectDeletePermission(
28440 project: *mut BNRemoteProject,
28441 permission: *mut BNCollaborationPermission,
28442 ) -> bool;
28443}
28444unsafe extern "C" {
28445 pub fn BNRemoteProjectCanUserView(
28446 project: *mut BNRemoteProject,
28447 user: *mut BNCollaborationUser,
28448 ) -> bool;
28449}
28450unsafe extern "C" {
28451 pub fn BNRemoteProjectCanUserEdit(
28452 project: *mut BNRemoteProject,
28453 user: *mut BNCollaborationUser,
28454 ) -> bool;
28455}
28456unsafe extern "C" {
28457 pub fn BNRemoteProjectCanUserAdmin(
28458 project: *mut BNRemoteProject,
28459 user: *mut BNCollaborationUser,
28460 ) -> bool;
28461}
28462unsafe extern "C" {
28463 #[doc = " RemoteFile"]
28464 pub fn BNNewRemoteFileReference(file: *mut BNRemoteFile) -> *mut BNRemoteFile;
28465}
28466unsafe extern "C" {
28467 pub fn BNFreeRemoteFile(file: *mut BNRemoteFile);
28468}
28469unsafe extern "C" {
28470 pub fn BNFreeRemoteFileList(files: *mut *mut BNRemoteFile, count: usize);
28471}
28472unsafe extern "C" {
28473 pub fn BNRemoteFileGetCoreFile(file: *mut BNRemoteFile) -> *mut BNProjectFile;
28474}
28475unsafe extern "C" {
28476 pub fn BNRemoteFileGetProject(file: *mut BNRemoteFile) -> *mut BNRemoteProject;
28477}
28478unsafe extern "C" {
28479 pub fn BNRemoteFileGetFolder(file: *mut BNRemoteFile) -> *mut BNRemoteFolder;
28480}
28481unsafe extern "C" {
28482 pub fn BNRemoteFileGetRemote(file: *mut BNRemoteFile) -> *mut BNRemote;
28483}
28484unsafe extern "C" {
28485 pub fn BNRemoteFileGetUrl(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
28486}
28487unsafe extern "C" {
28488 pub fn BNRemoteFileGetChatLogUrl(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
28489}
28490unsafe extern "C" {
28491 pub fn BNRemoteFileGetUserPositionsUrl(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
28492}
28493unsafe extern "C" {
28494 pub fn BNRemoteFileGetId(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
28495}
28496unsafe extern "C" {
28497 pub fn BNRemoteFileGetType(file: *mut BNRemoteFile) -> BNRemoteFileType;
28498}
28499unsafe extern "C" {
28500 pub fn BNRemoteFileGetCreated(file: *mut BNRemoteFile) -> i64;
28501}
28502unsafe extern "C" {
28503 pub fn BNRemoteFileGetCreatedBy(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
28504}
28505unsafe extern "C" {
28506 pub fn BNRemoteFileGetLastModified(file: *mut BNRemoteFile) -> i64;
28507}
28508unsafe extern "C" {
28509 pub fn BNRemoteFileGetLastSnapshot(file: *mut BNRemoteFile) -> i64;
28510}
28511unsafe extern "C" {
28512 pub fn BNRemoteFileGetLastSnapshotBy(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
28513}
28514unsafe extern "C" {
28515 pub fn BNRemoteFileGetLastSnapshotName(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
28516}
28517unsafe extern "C" {
28518 pub fn BNRemoteFileGetHash(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
28519}
28520unsafe extern "C" {
28521 pub fn BNRemoteFileGetName(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
28522}
28523unsafe extern "C" {
28524 pub fn BNRemoteFileGetDescription(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
28525}
28526unsafe extern "C" {
28527 pub fn BNRemoteFileGetMetadata(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
28528}
28529unsafe extern "C" {
28530 pub fn BNRemoteFileGetSize(file: *mut BNRemoteFile) -> u64;
28531}
28532unsafe extern "C" {
28533 pub fn BNRemoteFileHasPulledSnapshots(file: *mut BNRemoteFile) -> bool;
28534}
28535unsafe extern "C" {
28536 pub fn BNRemoteFileSetName(
28537 file: *mut BNRemoteFile,
28538 name: *const ::std::os::raw::c_char,
28539 ) -> bool;
28540}
28541unsafe extern "C" {
28542 pub fn BNRemoteFileSetDescription(
28543 file: *mut BNRemoteFile,
28544 description: *const ::std::os::raw::c_char,
28545 ) -> bool;
28546}
28547unsafe extern "C" {
28548 pub fn BNRemoteFileSetFolder(file: *mut BNRemoteFile, folder: *mut BNRemoteFolder) -> bool;
28549}
28550unsafe extern "C" {
28551 pub fn BNRemoteFileSetMetadata(
28552 file: *mut BNRemoteFile,
28553 metadata: *const ::std::os::raw::c_char,
28554 ) -> bool;
28555}
28556unsafe extern "C" {
28557 pub fn BNRemoteFileGetSnapshots(
28558 file: *mut BNRemoteFile,
28559 count: *mut usize,
28560 ) -> *mut *mut BNCollaborationSnapshot;
28561}
28562unsafe extern "C" {
28563 pub fn BNRemoteFileGetSnapshotById(
28564 file: *mut BNRemoteFile,
28565 id: *const ::std::os::raw::c_char,
28566 ) -> *mut BNCollaborationSnapshot;
28567}
28568unsafe extern "C" {
28569 pub fn BNRemoteFilePullSnapshots(
28570 file: *mut BNRemoteFile,
28571 progress: BNProgressFunction,
28572 progressContext: *mut ::std::os::raw::c_void,
28573 ) -> bool;
28574}
28575unsafe extern "C" {
28576 pub fn BNRemoteFileCreateSnapshot(
28577 file: *mut BNRemoteFile,
28578 name: *const ::std::os::raw::c_char,
28579 contents: *mut u8,
28580 contentsSize: usize,
28581 analysisCacheContents: *mut u8,
28582 analysisCacheContentsSize: usize,
28583 fileContents: *mut u8,
28584 fileContentsSize: usize,
28585 parentIds: *mut *const ::std::os::raw::c_char,
28586 parentIdCount: usize,
28587 progress: BNProgressFunction,
28588 progressContext: *mut ::std::os::raw::c_void,
28589 ) -> *mut BNCollaborationSnapshot;
28590}
28591unsafe extern "C" {
28592 pub fn BNRemoteFileDeleteSnapshot(
28593 file: *mut BNRemoteFile,
28594 snapshot: *mut BNCollaborationSnapshot,
28595 ) -> bool;
28596}
28597unsafe extern "C" {
28598 pub fn BNRemoteFileDownload(
28599 file: *mut BNRemoteFile,
28600 progress: BNProgressFunction,
28601 progressCtxt: *mut ::std::os::raw::c_void,
28602 ) -> bool;
28603}
28604unsafe extern "C" {
28605 pub fn BNRemoteFileDownloadContents(
28606 file: *mut BNRemoteFile,
28607 progress: BNProgressFunction,
28608 progressCtxt: *mut ::std::os::raw::c_void,
28609 data: *mut *mut u8,
28610 size: *mut usize,
28611 ) -> bool;
28612}
28613unsafe extern "C" {
28614 pub fn BNRemoteFileRequestUserPositions(file: *mut BNRemoteFile)
28615 -> *mut ::std::os::raw::c_char;
28616}
28617unsafe extern "C" {
28618 pub fn BNRemoteFileRequestChatLog(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
28619}
28620unsafe extern "C" {
28621 #[doc = " RemoteFolder"]
28622 pub fn BNNewRemoteFolderReference(folder: *mut BNRemoteFolder) -> *mut BNRemoteFolder;
28623}
28624unsafe extern "C" {
28625 pub fn BNFreeRemoteFolder(folder: *mut BNRemoteFolder);
28626}
28627unsafe extern "C" {
28628 pub fn BNFreeRemoteFolderList(folders: *mut *mut BNRemoteFolder, count: usize);
28629}
28630unsafe extern "C" {
28631 pub fn BNRemoteFolderGetCoreFolder(folder: *mut BNRemoteFolder) -> *mut BNProjectFolder;
28632}
28633unsafe extern "C" {
28634 pub fn BNRemoteFolderGetProject(folder: *mut BNRemoteFolder) -> *mut BNRemoteProject;
28635}
28636unsafe extern "C" {
28637 pub fn BNRemoteFolderGetRemote(folder: *mut BNRemoteFolder) -> *mut BNRemote;
28638}
28639unsafe extern "C" {
28640 pub fn BNRemoteFolderGetParent(
28641 folder: *mut BNRemoteFolder,
28642 parent: *mut *mut BNRemoteFolder,
28643 ) -> bool;
28644}
28645unsafe extern "C" {
28646 pub fn BNRemoteFolderGetUrl(folder: *mut BNRemoteFolder) -> *mut ::std::os::raw::c_char;
28647}
28648unsafe extern "C" {
28649 pub fn BNRemoteFolderGetId(folder: *mut BNRemoteFolder) -> *mut ::std::os::raw::c_char;
28650}
28651unsafe extern "C" {
28652 pub fn BNRemoteFolderGetParentId(
28653 folder: *mut BNRemoteFolder,
28654 result: *mut *mut ::std::os::raw::c_char,
28655 ) -> bool;
28656}
28657unsafe extern "C" {
28658 pub fn BNRemoteFolderGetName(folder: *mut BNRemoteFolder) -> *mut ::std::os::raw::c_char;
28659}
28660unsafe extern "C" {
28661 pub fn BNRemoteFolderGetDescription(folder: *mut BNRemoteFolder)
28662 -> *mut ::std::os::raw::c_char;
28663}
28664unsafe extern "C" {
28665 pub fn BNRemoteFolderSetName(
28666 folder: *mut BNRemoteFolder,
28667 name: *const ::std::os::raw::c_char,
28668 ) -> bool;
28669}
28670unsafe extern "C" {
28671 pub fn BNRemoteFolderSetDescription(
28672 folder: *mut BNRemoteFolder,
28673 description: *const ::std::os::raw::c_char,
28674 ) -> bool;
28675}
28676unsafe extern "C" {
28677 pub fn BNRemoteFolderSetParent(
28678 folder: *mut BNRemoteFolder,
28679 parent: *mut BNRemoteFolder,
28680 ) -> bool;
28681}
28682unsafe extern "C" {
28683 #[doc = " CollabPermission"]
28684 pub fn BNNewCollaborationPermissionReference(
28685 permission: *mut BNCollaborationPermission,
28686 ) -> *mut BNCollaborationPermission;
28687}
28688unsafe extern "C" {
28689 pub fn BNFreeCollaborationPermission(permission: *mut BNCollaborationPermission);
28690}
28691unsafe extern "C" {
28692 pub fn BNFreeCollaborationPermissionList(
28693 permissions: *mut *mut BNCollaborationPermission,
28694 count: usize,
28695 );
28696}
28697unsafe extern "C" {
28698 pub fn BNCollaborationPermissionGetProject(
28699 permission: *mut BNCollaborationPermission,
28700 ) -> *mut BNRemoteProject;
28701}
28702unsafe extern "C" {
28703 pub fn BNCollaborationPermissionGetRemote(
28704 permission: *mut BNCollaborationPermission,
28705 ) -> *mut BNRemote;
28706}
28707unsafe extern "C" {
28708 pub fn BNCollaborationPermissionGetId(
28709 permission: *mut BNCollaborationPermission,
28710 ) -> *mut ::std::os::raw::c_char;
28711}
28712unsafe extern "C" {
28713 pub fn BNCollaborationPermissionGetUrl(
28714 permission: *mut BNCollaborationPermission,
28715 ) -> *mut ::std::os::raw::c_char;
28716}
28717unsafe extern "C" {
28718 pub fn BNCollaborationPermissionGetGroupId(permission: *mut BNCollaborationPermission) -> u64;
28719}
28720unsafe extern "C" {
28721 pub fn BNCollaborationPermissionGetGroupName(
28722 permission: *mut BNCollaborationPermission,
28723 ) -> *mut ::std::os::raw::c_char;
28724}
28725unsafe extern "C" {
28726 pub fn BNCollaborationPermissionGetUserId(
28727 permission: *mut BNCollaborationPermission,
28728 ) -> *mut ::std::os::raw::c_char;
28729}
28730unsafe extern "C" {
28731 pub fn BNCollaborationPermissionGetUsername(
28732 permission: *mut BNCollaborationPermission,
28733 ) -> *mut ::std::os::raw::c_char;
28734}
28735unsafe extern "C" {
28736 pub fn BNCollaborationPermissionGetLevel(
28737 permission: *mut BNCollaborationPermission,
28738 ) -> BNCollaborationPermissionLevel;
28739}
28740unsafe extern "C" {
28741 pub fn BNCollaborationPermissionSetLevel(
28742 permission: *mut BNCollaborationPermission,
28743 level: BNCollaborationPermissionLevel,
28744 );
28745}
28746unsafe extern "C" {
28747 pub fn BNCollaborationPermissionCanView(permission: *mut BNCollaborationPermission) -> bool;
28748}
28749unsafe extern "C" {
28750 pub fn BNCollaborationPermissionCanEdit(permission: *mut BNCollaborationPermission) -> bool;
28751}
28752unsafe extern "C" {
28753 pub fn BNCollaborationPermissionCanAdmin(permission: *mut BNCollaborationPermission) -> bool;
28754}
28755unsafe extern "C" {
28756 #[doc = " AnalysisMergeConflict"]
28757 pub fn BNNewAnalysisMergeConflictReference(
28758 conflict: *mut BNAnalysisMergeConflict,
28759 ) -> *mut BNAnalysisMergeConflict;
28760}
28761unsafe extern "C" {
28762 pub fn BNFreeAnalysisMergeConflict(conflict: *mut BNAnalysisMergeConflict);
28763}
28764unsafe extern "C" {
28765 pub fn BNFreeAnalysisMergeConflictList(
28766 conflicts: *mut *mut BNAnalysisMergeConflict,
28767 count: usize,
28768 );
28769}
28770unsafe extern "C" {
28771 pub fn BNAnalysisMergeConflictGetDatabase(
28772 conflict: *mut BNAnalysisMergeConflict,
28773 ) -> *mut BNDatabase;
28774}
28775unsafe extern "C" {
28776 pub fn BNAnalysisMergeConflictGetType(
28777 conflict: *mut BNAnalysisMergeConflict,
28778 ) -> *mut ::std::os::raw::c_char;
28779}
28780unsafe extern "C" {
28781 pub fn BNAnalysisMergeConflictGetKey(
28782 conflict: *mut BNAnalysisMergeConflict,
28783 ) -> *mut ::std::os::raw::c_char;
28784}
28785unsafe extern "C" {
28786 pub fn BNAnalysisMergeConflictGetDataType(
28787 conflict: *mut BNAnalysisMergeConflict,
28788 ) -> BNMergeConflictDataType;
28789}
28790unsafe extern "C" {
28791 pub fn BNAnalysisMergeConflictGetBase(
28792 conflict: *mut BNAnalysisMergeConflict,
28793 ) -> *mut ::std::os::raw::c_char;
28794}
28795unsafe extern "C" {
28796 pub fn BNAnalysisMergeConflictGetFirst(
28797 conflict: *mut BNAnalysisMergeConflict,
28798 ) -> *mut ::std::os::raw::c_char;
28799}
28800unsafe extern "C" {
28801 pub fn BNAnalysisMergeConflictGetSecond(
28802 conflict: *mut BNAnalysisMergeConflict,
28803 ) -> *mut ::std::os::raw::c_char;
28804}
28805unsafe extern "C" {
28806 pub fn BNAnalysisMergeConflictGetBaseFile(
28807 conflict: *mut BNAnalysisMergeConflict,
28808 ) -> *mut BNFileMetadata;
28809}
28810unsafe extern "C" {
28811 pub fn BNAnalysisMergeConflictGetFirstFile(
28812 conflict: *mut BNAnalysisMergeConflict,
28813 ) -> *mut BNFileMetadata;
28814}
28815unsafe extern "C" {
28816 pub fn BNAnalysisMergeConflictGetSecondFile(
28817 conflict: *mut BNAnalysisMergeConflict,
28818 ) -> *mut BNFileMetadata;
28819}
28820unsafe extern "C" {
28821 pub fn BNAnalysisMergeConflictGetBaseSnapshot(
28822 conflict: *mut BNAnalysisMergeConflict,
28823 ) -> *mut BNSnapshot;
28824}
28825unsafe extern "C" {
28826 pub fn BNAnalysisMergeConflictGetFirstSnapshot(
28827 conflict: *mut BNAnalysisMergeConflict,
28828 ) -> *mut BNSnapshot;
28829}
28830unsafe extern "C" {
28831 pub fn BNAnalysisMergeConflictGetSecondSnapshot(
28832 conflict: *mut BNAnalysisMergeConflict,
28833 ) -> *mut BNSnapshot;
28834}
28835unsafe extern "C" {
28836 pub fn BNAnalysisMergeConflictGetPathItemString(
28837 conflict: *mut BNAnalysisMergeConflict,
28838 path: *const ::std::os::raw::c_char,
28839 ) -> *mut ::std::os::raw::c_char;
28840}
28841unsafe extern "C" {
28842 pub fn BNAnalysisMergeConflictGetPathItemSerialized(
28843 conflict: *mut BNAnalysisMergeConflict,
28844 path: *const ::std::os::raw::c_char,
28845 ) -> *mut ::std::os::raw::c_char;
28846}
28847unsafe extern "C" {
28848 pub fn BNAnalysisMergeConflictGetPathItem(
28849 conflict: *mut BNAnalysisMergeConflict,
28850 path: *const ::std::os::raw::c_char,
28851 ) -> *mut ::std::os::raw::c_void;
28852}
28853unsafe extern "C" {
28854 pub fn BNAnalysisMergeConflictSuccess(
28855 conflict: *mut BNAnalysisMergeConflict,
28856 value: *const ::std::os::raw::c_char,
28857 ) -> bool;
28858}
28859unsafe extern "C" {
28860 #[doc = " TypeArchiveMergeConflict"]
28861 pub fn BNNewTypeArchiveMergeConflictReference(
28862 conflict: *mut BNTypeArchiveMergeConflict,
28863 ) -> *mut BNTypeArchiveMergeConflict;
28864}
28865unsafe extern "C" {
28866 pub fn BNFreeTypeArchiveMergeConflict(conflict: *mut BNTypeArchiveMergeConflict);
28867}
28868unsafe extern "C" {
28869 pub fn BNFreeTypeArchiveMergeConflictList(
28870 conflicts: *mut *mut BNTypeArchiveMergeConflict,
28871 count: usize,
28872 );
28873}
28874unsafe extern "C" {
28875 pub fn BNTypeArchiveMergeConflictGetTypeArchive(
28876 conflict: *mut BNTypeArchiveMergeConflict,
28877 ) -> *mut BNTypeArchive;
28878}
28879unsafe extern "C" {
28880 pub fn BNTypeArchiveMergeConflictGetTypeId(
28881 conflict: *mut BNTypeArchiveMergeConflict,
28882 ) -> *mut ::std::os::raw::c_char;
28883}
28884unsafe extern "C" {
28885 pub fn BNTypeArchiveMergeConflictGetBaseSnapshotId(
28886 conflict: *mut BNTypeArchiveMergeConflict,
28887 ) -> *mut ::std::os::raw::c_char;
28888}
28889unsafe extern "C" {
28890 pub fn BNTypeArchiveMergeConflictGetFirstSnapshotId(
28891 conflict: *mut BNTypeArchiveMergeConflict,
28892 ) -> *mut ::std::os::raw::c_char;
28893}
28894unsafe extern "C" {
28895 pub fn BNTypeArchiveMergeConflictGetSecondSnapshotId(
28896 conflict: *mut BNTypeArchiveMergeConflict,
28897 ) -> *mut ::std::os::raw::c_char;
28898}
28899unsafe extern "C" {
28900 pub fn BNTypeArchiveMergeConflictSuccess(
28901 conflict: *mut BNTypeArchiveMergeConflict,
28902 value: *const ::std::os::raw::c_char,
28903 ) -> bool;
28904}
28905unsafe extern "C" {
28906 #[doc = " CollabSnapshot"]
28907 pub fn BNNewCollaborationSnapshotReference(
28908 snapshot: *mut BNCollaborationSnapshot,
28909 ) -> *mut BNCollaborationSnapshot;
28910}
28911unsafe extern "C" {
28912 pub fn BNFreeCollaborationSnapshot(snapshot: *mut BNCollaborationSnapshot);
28913}
28914unsafe extern "C" {
28915 pub fn BNFreeCollaborationSnapshotList(
28916 snapshots: *mut *mut BNCollaborationSnapshot,
28917 count: usize,
28918 );
28919}
28920unsafe extern "C" {
28921 pub fn BNCollaborationSnapshotGetFile(
28922 snapshot: *mut BNCollaborationSnapshot,
28923 ) -> *mut BNRemoteFile;
28924}
28925unsafe extern "C" {
28926 pub fn BNCollaborationSnapshotGetProject(
28927 snapshot: *mut BNCollaborationSnapshot,
28928 ) -> *mut BNRemoteProject;
28929}
28930unsafe extern "C" {
28931 pub fn BNCollaborationSnapshotGetRemote(
28932 snapshot: *mut BNCollaborationSnapshot,
28933 ) -> *mut BNRemote;
28934}
28935unsafe extern "C" {
28936 pub fn BNCollaborationSnapshotGetUrl(
28937 snapshot: *mut BNCollaborationSnapshot,
28938 ) -> *mut ::std::os::raw::c_char;
28939}
28940unsafe extern "C" {
28941 pub fn BNCollaborationSnapshotGetId(
28942 snapshot: *mut BNCollaborationSnapshot,
28943 ) -> *mut ::std::os::raw::c_char;
28944}
28945unsafe extern "C" {
28946 pub fn BNCollaborationSnapshotGetName(
28947 snapshot: *mut BNCollaborationSnapshot,
28948 ) -> *mut ::std::os::raw::c_char;
28949}
28950unsafe extern "C" {
28951 pub fn BNCollaborationSnapshotGetAuthor(
28952 snapshot: *mut BNCollaborationSnapshot,
28953 ) -> *mut ::std::os::raw::c_char;
28954}
28955unsafe extern "C" {
28956 pub fn BNCollaborationSnapshotGetCreated(snapshot: *mut BNCollaborationSnapshot) -> i64;
28957}
28958unsafe extern "C" {
28959 pub fn BNCollaborationSnapshotGetLastModified(snapshot: *mut BNCollaborationSnapshot) -> i64;
28960}
28961unsafe extern "C" {
28962 pub fn BNCollaborationSnapshotGetHash(
28963 snapshot: *mut BNCollaborationSnapshot,
28964 ) -> *mut ::std::os::raw::c_char;
28965}
28966unsafe extern "C" {
28967 pub fn BNCollaborationSnapshotGetSnapshotFileHash(
28968 snapshot: *mut BNCollaborationSnapshot,
28969 ) -> *mut ::std::os::raw::c_char;
28970}
28971unsafe extern "C" {
28972 pub fn BNCollaborationSnapshotHasPulledUndoEntries(
28973 snapshot: *mut BNCollaborationSnapshot,
28974 ) -> bool;
28975}
28976unsafe extern "C" {
28977 pub fn BNCollaborationSnapshotIsFinalized(snapshot: *mut BNCollaborationSnapshot) -> bool;
28978}
28979unsafe extern "C" {
28980 pub fn BNCollaborationSnapshotGetParentIds(
28981 snapshot: *mut BNCollaborationSnapshot,
28982 count: *mut usize,
28983 ) -> *mut *mut ::std::os::raw::c_char;
28984}
28985unsafe extern "C" {
28986 pub fn BNCollaborationSnapshotGetChildIds(
28987 snapshot: *mut BNCollaborationSnapshot,
28988 count: *mut usize,
28989 ) -> *mut *mut ::std::os::raw::c_char;
28990}
28991unsafe extern "C" {
28992 pub fn BNCollaborationSnapshotGetAnalysisCacheBuildId(
28993 snapshot: *mut BNCollaborationSnapshot,
28994 ) -> u64;
28995}
28996unsafe extern "C" {
28997 pub fn BNCollaborationSnapshotGetTitle(
28998 snapshot: *mut BNCollaborationSnapshot,
28999 ) -> *mut ::std::os::raw::c_char;
29000}
29001unsafe extern "C" {
29002 pub fn BNCollaborationSnapshotGetDescription(
29003 snapshot: *mut BNCollaborationSnapshot,
29004 ) -> *mut ::std::os::raw::c_char;
29005}
29006unsafe extern "C" {
29007 pub fn BNCollaborationSnapshotGetAuthorUsername(
29008 snapshot: *mut BNCollaborationSnapshot,
29009 ) -> *mut ::std::os::raw::c_char;
29010}
29011unsafe extern "C" {
29012 pub fn BNCollaborationSnapshotGetParents(
29013 snapshot: *mut BNCollaborationSnapshot,
29014 count: *mut usize,
29015 ) -> *mut *mut BNCollaborationSnapshot;
29016}
29017unsafe extern "C" {
29018 pub fn BNCollaborationSnapshotGetChildren(
29019 snapshot: *mut BNCollaborationSnapshot,
29020 count: *mut usize,
29021 ) -> *mut *mut BNCollaborationSnapshot;
29022}
29023unsafe extern "C" {
29024 pub fn BNCollaborationSnapshotGetUndoEntries(
29025 snapshot: *mut BNCollaborationSnapshot,
29026 count: *mut usize,
29027 ) -> *mut *mut BNCollaborationUndoEntry;
29028}
29029unsafe extern "C" {
29030 pub fn BNCollaborationSnapshotGetUndoEntryById(
29031 snapshot: *mut BNCollaborationSnapshot,
29032 id: u64,
29033 ) -> *mut BNCollaborationUndoEntry;
29034}
29035unsafe extern "C" {
29036 pub fn BNCollaborationSnapshotPullUndoEntries(
29037 snapshot: *mut BNCollaborationSnapshot,
29038 progress: BNProgressFunction,
29039 progressContext: *mut ::std::os::raw::c_void,
29040 ) -> bool;
29041}
29042unsafe extern "C" {
29043 pub fn BNCollaborationSnapshotCreateUndoEntry(
29044 snapshot: *mut BNCollaborationSnapshot,
29045 hasParent: bool,
29046 parent: u64,
29047 data: *const ::std::os::raw::c_char,
29048 ) -> *mut BNCollaborationUndoEntry;
29049}
29050unsafe extern "C" {
29051 pub fn BNCollaborationSnapshotFinalize(snapshot: *mut BNCollaborationSnapshot) -> bool;
29052}
29053unsafe extern "C" {
29054 pub fn BNCollaborationSnapshotDownloadSnapshotFile(
29055 snapshot: *mut BNCollaborationSnapshot,
29056 progress: BNProgressFunction,
29057 progressContext: *mut ::std::os::raw::c_void,
29058 data: *mut *mut u8,
29059 size: *mut usize,
29060 ) -> bool;
29061}
29062unsafe extern "C" {
29063 pub fn BNCollaborationSnapshotDownload(
29064 snapshot: *mut BNCollaborationSnapshot,
29065 progress: BNProgressFunction,
29066 progressContext: *mut ::std::os::raw::c_void,
29067 data: *mut *mut u8,
29068 size: *mut usize,
29069 ) -> bool;
29070}
29071unsafe extern "C" {
29072 pub fn BNCollaborationSnapshotDownloadAnalysisCache(
29073 snapshot: *mut BNCollaborationSnapshot,
29074 progress: BNProgressFunction,
29075 progressContext: *mut ::std::os::raw::c_void,
29076 data: *mut *mut u8,
29077 size: *mut usize,
29078 ) -> bool;
29079}
29080unsafe extern "C" {
29081 #[doc = " CollabUndoEntry"]
29082 pub fn BNNewCollaborationUndoEntryReference(
29083 entry: *mut BNCollaborationUndoEntry,
29084 ) -> *mut BNCollaborationUndoEntry;
29085}
29086unsafe extern "C" {
29087 pub fn BNFreeCollaborationUndoEntry(entry: *mut BNCollaborationUndoEntry);
29088}
29089unsafe extern "C" {
29090 pub fn BNFreeCollaborationUndoEntryList(
29091 entries: *mut *mut BNCollaborationUndoEntry,
29092 count: usize,
29093 );
29094}
29095unsafe extern "C" {
29096 pub fn BNCollaborationUndoEntryGetSnapshot(
29097 undoEntry: *mut BNCollaborationUndoEntry,
29098 ) -> *mut BNCollaborationSnapshot;
29099}
29100unsafe extern "C" {
29101 pub fn BNCollaborationUndoEntryGetFile(
29102 undoEntry: *mut BNCollaborationUndoEntry,
29103 ) -> *mut BNRemoteFile;
29104}
29105unsafe extern "C" {
29106 pub fn BNCollaborationUndoEntryGetProject(
29107 undoEntry: *mut BNCollaborationUndoEntry,
29108 ) -> *mut BNRemoteProject;
29109}
29110unsafe extern "C" {
29111 pub fn BNCollaborationUndoEntryGetRemote(
29112 undoEntry: *mut BNCollaborationUndoEntry,
29113 ) -> *mut BNRemote;
29114}
29115unsafe extern "C" {
29116 pub fn BNCollaborationUndoEntryGetUrl(
29117 undoEntry: *mut BNCollaborationUndoEntry,
29118 ) -> *mut ::std::os::raw::c_char;
29119}
29120unsafe extern "C" {
29121 pub fn BNCollaborationUndoEntryGetId(undoEntry: *mut BNCollaborationUndoEntry) -> u64;
29122}
29123unsafe extern "C" {
29124 pub fn BNCollaborationUndoEntryGetParentId(
29125 undoEntry: *mut BNCollaborationUndoEntry,
29126 parentId: *mut u64,
29127 ) -> bool;
29128}
29129unsafe extern "C" {
29130 pub fn BNCollaborationUndoEntryGetData(
29131 undoEntry: *mut BNCollaborationUndoEntry,
29132 data: *mut *mut ::std::os::raw::c_char,
29133 ) -> bool;
29134}
29135unsafe extern "C" {
29136 pub fn BNCollaborationUndoEntryGetParent(
29137 undoEntry: *mut BNCollaborationUndoEntry,
29138 ) -> *mut BNCollaborationUndoEntry;
29139}
29140unsafe extern "C" {
29141 #[doc = " CollabChangeset"]
29142 pub fn BNNewCollaborationChangesetReference(
29143 changeset: *mut BNCollaborationChangeset,
29144 ) -> *mut BNCollaborationChangeset;
29145}
29146unsafe extern "C" {
29147 pub fn BNFreeCollaborationChangeset(changeset: *mut BNCollaborationChangeset);
29148}
29149unsafe extern "C" {
29150 pub fn BNFreeCollaborationChangesetList(
29151 changesets: *mut *mut BNCollaborationChangeset,
29152 count: usize,
29153 );
29154}
29155unsafe extern "C" {
29156 pub fn BNCollaborationChangesetGetDatabase(
29157 changeset: *mut BNCollaborationChangeset,
29158 ) -> *mut BNDatabase;
29159}
29160unsafe extern "C" {
29161 pub fn BNCollaborationChangesetGetFile(
29162 changeset: *mut BNCollaborationChangeset,
29163 ) -> *mut BNRemoteFile;
29164}
29165unsafe extern "C" {
29166 pub fn BNCollaborationChangesetGetSnapshotIds(
29167 changeset: *mut BNCollaborationChangeset,
29168 count: *mut usize,
29169 ) -> *mut i64;
29170}
29171unsafe extern "C" {
29172 pub fn BNCollaborationChangesetGetAuthor(
29173 changeset: *mut BNCollaborationChangeset,
29174 ) -> *mut BNCollaborationUser;
29175}
29176unsafe extern "C" {
29177 pub fn BNCollaborationChangesetGetName(
29178 changeset: *mut BNCollaborationChangeset,
29179 ) -> *mut ::std::os::raw::c_char;
29180}
29181unsafe extern "C" {
29182 pub fn BNCollaborationChangesetSetName(
29183 changeset: *mut BNCollaborationChangeset,
29184 name: *const ::std::os::raw::c_char,
29185 ) -> bool;
29186}
29187unsafe extern "C" {
29188 #[doc = " AnalysisMergeConflictSplitter"]
29189 pub fn BNRegisterAnalysisMergeConflictSplitter(
29190 callbacks: *mut BNAnalysisMergeConflictSplitterCallbacks,
29191 ) -> *mut BNAnalysisMergeConflictSplitter;
29192}
29193unsafe extern "C" {
29194 pub fn BNGetAnalysisMergeConflictSplitterList(
29195 count: *mut usize,
29196 ) -> *mut *mut BNAnalysisMergeConflictSplitter;
29197}
29198unsafe extern "C" {
29199 pub fn BNFreeAnalysisMergeConflictSplitterList(
29200 splitters: *mut *mut BNAnalysisMergeConflictSplitter,
29201 count: usize,
29202 );
29203}
29204unsafe extern "C" {
29205 pub fn BNAnalysisMergeConflictSplitterGetName(
29206 splitter: *mut BNAnalysisMergeConflictSplitter,
29207 ) -> *mut ::std::os::raw::c_char;
29208}
29209unsafe extern "C" {
29210 pub fn BNAnalysisMergeConflictSplitterCanSplit(
29211 splitter: *mut BNAnalysisMergeConflictSplitter,
29212 key: *const ::std::os::raw::c_char,
29213 conflict: *mut BNAnalysisMergeConflict,
29214 ) -> bool;
29215}
29216unsafe extern "C" {
29217 pub fn BNAnalysisMergeConflictSplitterSplit(
29218 splitter: *mut BNAnalysisMergeConflictSplitter,
29219 originalKey: *const ::std::os::raw::c_char,
29220 originalConflict: *mut BNAnalysisMergeConflict,
29221 result: *mut BNKeyValueStore,
29222 newKeys: *mut *mut *mut ::std::os::raw::c_char,
29223 newConflicts: *mut *mut *mut BNAnalysisMergeConflict,
29224 newCount: *mut usize,
29225 ) -> bool;
29226}
29227unsafe extern "C" {
29228 #[doc = " High level token emitter"]
29229 pub fn BNNewHighLevelILTokenEmitterReference(
29230 emitter: *mut BNHighLevelILTokenEmitter,
29231 ) -> *mut BNHighLevelILTokenEmitter;
29232}
29233unsafe extern "C" {
29234 pub fn BNHighLevelILTokenPrependCollapseBlankIndicator(emitter: *mut BNHighLevelILTokenEmitter);
29235}
29236unsafe extern "C" {
29237 pub fn BNHighLevelILTokenPrependCollapseIndicator(
29238 emitter: *mut BNHighLevelILTokenEmitter,
29239 context: BNInstructionTextTokenContext,
29240 hash: u64,
29241 );
29242}
29243unsafe extern "C" {
29244 pub fn BNHighLevelILTokenEmitterHasCollapsableRegions(
29245 emitter: *mut BNHighLevelILTokenEmitter,
29246 ) -> bool;
29247}
29248unsafe extern "C" {
29249 pub fn BNHighLevelILTokenEmitterSetHasCollapsableRegions(
29250 emitter: *mut BNHighLevelILTokenEmitter,
29251 state: bool,
29252 );
29253}
29254unsafe extern "C" {
29255 pub fn BNFreeHighLevelILTokenEmitter(emitter: *mut BNHighLevelILTokenEmitter);
29256}
29257unsafe extern "C" {
29258 pub fn BNHighLevelILTokenEmitterAppend(
29259 emitter: *mut BNHighLevelILTokenEmitter,
29260 token: *mut BNInstructionTextToken,
29261 );
29262}
29263unsafe extern "C" {
29264 pub fn BNHighLevelILTokenEmitterInitLine(emitter: *mut BNHighLevelILTokenEmitter);
29265}
29266unsafe extern "C" {
29267 pub fn BNHighLevelILTokenEmitterNewLine(emitter: *mut BNHighLevelILTokenEmitter);
29268}
29269unsafe extern "C" {
29270 pub fn BNHighLevelILTokenEmitterIncreaseIndent(emitter: *mut BNHighLevelILTokenEmitter);
29271}
29272unsafe extern "C" {
29273 pub fn BNHighLevelILTokenEmitterDecreaseIndent(emitter: *mut BNHighLevelILTokenEmitter);
29274}
29275unsafe extern "C" {
29276 pub fn BNHighLevelILTokenEmitterScopeSeparator(emitter: *mut BNHighLevelILTokenEmitter);
29277}
29278unsafe extern "C" {
29279 pub fn BNHighLevelILTokenEmitterBeginScope(
29280 emitter: *mut BNHighLevelILTokenEmitter,
29281 type_: BNScopeType,
29282 );
29283}
29284unsafe extern "C" {
29285 pub fn BNHighLevelILTokenEmitterEndScope(
29286 emitter: *mut BNHighLevelILTokenEmitter,
29287 type_: BNScopeType,
29288 );
29289}
29290unsafe extern "C" {
29291 pub fn BNHighLevelILTokenEmitterScopeContinuation(
29292 emitter: *mut BNHighLevelILTokenEmitter,
29293 forceSameLine: bool,
29294 );
29295}
29296unsafe extern "C" {
29297 pub fn BNHighLevelILTokenEmitterFinalizeScope(emitter: *mut BNHighLevelILTokenEmitter);
29298}
29299unsafe extern "C" {
29300 pub fn BNHighLevelILTokenEmitterNoIndentForThisLine(emitter: *mut BNHighLevelILTokenEmitter);
29301}
29302unsafe extern "C" {
29303 pub fn BNHighLevelILTokenEmitterBeginForceZeroConfidence(
29304 emitter: *mut BNHighLevelILTokenEmitter,
29305 );
29306}
29307unsafe extern "C" {
29308 pub fn BNHighLevelILTokenEmitterEndForceZeroConfidence(emitter: *mut BNHighLevelILTokenEmitter);
29309}
29310unsafe extern "C" {
29311 pub fn BNHighLevelILTokenEmitterSetCurrentExpr(
29312 emitter: *mut BNHighLevelILTokenEmitter,
29313 expr: BNTokenEmitterExpr,
29314 ) -> BNTokenEmitterExpr;
29315}
29316unsafe extern "C" {
29317 pub fn BNHighLevelILTokenEmitterRestoreCurrentExpr(
29318 emitter: *mut BNHighLevelILTokenEmitter,
29319 expr: BNTokenEmitterExpr,
29320 );
29321}
29322unsafe extern "C" {
29323 pub fn BNHighLevelILTokenEmitterFinalize(emitter: *mut BNHighLevelILTokenEmitter);
29324}
29325unsafe extern "C" {
29326 pub fn BNHighLevelILTokenEmitterAppendOpenParen(emitter: *mut BNHighLevelILTokenEmitter);
29327}
29328unsafe extern "C" {
29329 pub fn BNHighLevelILTokenEmitterAppendCloseParen(emitter: *mut BNHighLevelILTokenEmitter);
29330}
29331unsafe extern "C" {
29332 pub fn BNHighLevelILTokenEmitterAppendOpenBracket(emitter: *mut BNHighLevelILTokenEmitter);
29333}
29334unsafe extern "C" {
29335 pub fn BNHighLevelILTokenEmitterAppendCloseBracket(emitter: *mut BNHighLevelILTokenEmitter);
29336}
29337unsafe extern "C" {
29338 pub fn BNHighLevelILTokenEmitterAppendOpenBrace(emitter: *mut BNHighLevelILTokenEmitter);
29339}
29340unsafe extern "C" {
29341 pub fn BNHighLevelILTokenEmitterAppendCloseBrace(emitter: *mut BNHighLevelILTokenEmitter);
29342}
29343unsafe extern "C" {
29344 pub fn BNHighLevelILTokenEmitterAppendSemicolon(emitter: *mut BNHighLevelILTokenEmitter);
29345}
29346unsafe extern "C" {
29347 pub fn BNHighLevelILTokenEmitterSetBraceRequirement(
29348 emitter: *mut BNHighLevelILTokenEmitter,
29349 required: BNBraceRequirement,
29350 );
29351}
29352unsafe extern "C" {
29353 pub fn BNHighLevelILTokenEmitterSetBracesAroundSwitchCases(
29354 emitter: *mut BNHighLevelILTokenEmitter,
29355 braces: bool,
29356 );
29357}
29358unsafe extern "C" {
29359 pub fn BNHighLevelILTokenEmitterSetDefaultBracesOnSameLine(
29360 emitter: *mut BNHighLevelILTokenEmitter,
29361 sameLine: bool,
29362 );
29363}
29364unsafe extern "C" {
29365 pub fn BNHighLevelILTokenEmitterSetSimpleScopeAllowed(
29366 emitter: *mut BNHighLevelILTokenEmitter,
29367 allowed: bool,
29368 );
29369}
29370unsafe extern "C" {
29371 pub fn BNHighLevelILTokenEmitterGetBraceRequirement(
29372 emitter: *mut BNHighLevelILTokenEmitter,
29373 ) -> BNBraceRequirement;
29374}
29375unsafe extern "C" {
29376 pub fn BNHighLevelILTokenEmitterHasBracesAroundSwitchCases(
29377 emitter: *mut BNHighLevelILTokenEmitter,
29378 ) -> bool;
29379}
29380unsafe extern "C" {
29381 pub fn BNHighLevelILTokenEmitterGetDefaultBracesOnSameLine(
29382 emitter: *mut BNHighLevelILTokenEmitter,
29383 ) -> bool;
29384}
29385unsafe extern "C" {
29386 pub fn BNHighLevelILTokenEmitterGetMaxTernarySimplficationTokens(
29387 emitter: *mut BNHighLevelILTokenEmitter,
29388 ) -> usize;
29389}
29390unsafe extern "C" {
29391 pub fn BNHighLevelILTokenEmitterIsSimpleScopeAllowed(
29392 emitter: *mut BNHighLevelILTokenEmitter,
29393 ) -> bool;
29394}
29395unsafe extern "C" {
29396 pub fn BNHighLevelILTokenEmitterGetCurrentTokens(
29397 emitter: *mut BNHighLevelILTokenEmitter,
29398 tokenCount: *mut usize,
29399 ) -> *mut BNInstructionTextToken;
29400}
29401unsafe extern "C" {
29402 pub fn BNHighLevelILTokenEmitterSetCurrentTokens(
29403 emitter: *mut BNHighLevelILTokenEmitter,
29404 tokens: *mut BNInstructionTextToken,
29405 tokenCount: usize,
29406 );
29407}
29408unsafe extern "C" {
29409 pub fn BNHighLevelILTokenEmitterGetLines(
29410 emitter: *mut BNHighLevelILTokenEmitter,
29411 count: *mut usize,
29412 ) -> *mut BNDisassemblyTextLine;
29413}
29414unsafe extern "C" {
29415 pub fn BNAddHighLevelILSizeToken(
29416 size: usize,
29417 type_: BNInstructionTextTokenType,
29418 tokens: *mut BNHighLevelILTokenEmitter,
29419 );
29420}
29421unsafe extern "C" {
29422 pub fn BNAddHighLevelILFloatSizeToken(
29423 size: usize,
29424 type_: BNInstructionTextTokenType,
29425 tokens: *mut BNHighLevelILTokenEmitter,
29426 );
29427}
29428unsafe extern "C" {
29429 pub fn BNAddHighLevelILVarTextToken(
29430 func: *mut BNHighLevelILFunction,
29431 var: *const BNVariable,
29432 tokens: *mut BNHighLevelILTokenEmitter,
29433 exprIndex: usize,
29434 size: usize,
29435 );
29436}
29437unsafe extern "C" {
29438 pub fn BNAddHighLevelILIntegerTextToken(
29439 func: *mut BNHighLevelILFunction,
29440 exprIndex: usize,
29441 val: i64,
29442 size: usize,
29443 tokens: *mut BNHighLevelILTokenEmitter,
29444 );
29445}
29446unsafe extern "C" {
29447 pub fn BNAddHighLevelILArrayIndexToken(
29448 func: *mut BNHighLevelILFunction,
29449 exprIndex: usize,
29450 val: i64,
29451 size: usize,
29452 tokens: *mut BNHighLevelILTokenEmitter,
29453 address: u64,
29454 );
29455}
29456unsafe extern "C" {
29457 pub fn BNAddHighLevelILPointerTextToken(
29458 func: *mut BNHighLevelILFunction,
29459 exprIndex: usize,
29460 val: i64,
29461 tokens: *mut BNHighLevelILTokenEmitter,
29462 settings: *mut BNDisassemblySettings,
29463 symbolDisplay: BNSymbolDisplayType,
29464 precedence: BNOperatorPrecedence,
29465 allowShortString: bool,
29466 ) -> BNSymbolDisplayResult;
29467}
29468unsafe extern "C" {
29469 pub fn BNAddHighLevelILConstantTextToken(
29470 func: *mut BNHighLevelILFunction,
29471 exprIndex: usize,
29472 val: i64,
29473 size: usize,
29474 tokens: *mut BNHighLevelILTokenEmitter,
29475 settings: *mut BNDisassemblySettings,
29476 precedence: BNOperatorPrecedence,
29477 );
29478}
29479unsafe extern "C" {
29480 pub fn BNAddNamesForOuterStructureMembers(
29481 data: *mut BNBinaryView,
29482 type_: *mut BNType,
29483 hlil: *mut BNHighLevelILFunction,
29484 varExpr: usize,
29485 nameCount: *mut usize,
29486 ) -> *mut *mut ::std::os::raw::c_char;
29487}
29488unsafe extern "C" {
29489 pub fn BNZeroExtend(value: i64, sourceSize: usize, destSize: usize) -> i64;
29490}
29491unsafe extern "C" {
29492 pub fn BNSignExtend(value: i64, sourceSize: usize, destSize: usize) -> i64;
29493}
29494unsafe extern "C" {
29495 pub fn BNMaskToSize(value: i64, size: usize) -> i64;
29496}
29497unsafe extern "C" {
29498 pub fn BNGetMaskForSize(size: usize) -> i64;
29499}
29500unsafe extern "C" {
29501 #[doc = " FirmwareNinja"]
29502 pub fn BNCreateFirmwareNinja(view: *mut BNBinaryView) -> *mut BNFirmwareNinja;
29503}
29504unsafe extern "C" {
29505 pub fn BNFreeFirmwareNinja(fn_: *mut BNFirmwareNinja);
29506}
29507unsafe extern "C" {
29508 pub fn BNFirmwareNinjaStoreCustomDevice(
29509 fn_: *mut BNFirmwareNinja,
29510 name: *const ::std::os::raw::c_char,
29511 start: u64,
29512 end: u64,
29513 info: *const ::std::os::raw::c_char,
29514 ) -> bool;
29515}
29516unsafe extern "C" {
29517 pub fn BNFirmwareNinjaRemoveCustomDevice(
29518 fn_: *mut BNFirmwareNinja,
29519 name: *const ::std::os::raw::c_char,
29520 ) -> bool;
29521}
29522unsafe extern "C" {
29523 pub fn BNFirmwareNinjaQueryCustomDevices(
29524 fn_: *mut BNFirmwareNinja,
29525 devices: *mut *mut BNFirmwareNinjaDevice,
29526 ) -> ::std::os::raw::c_int;
29527}
29528unsafe extern "C" {
29529 pub fn BNFirmwareNinjaFreeDevices(
29530 devices: *mut BNFirmwareNinjaDevice,
29531 size: ::std::os::raw::c_int,
29532 );
29533}
29534unsafe extern "C" {
29535 pub fn BNFirmwareNinjaQueryBoardNamesForArchitecture(
29536 fn_: *mut BNFirmwareNinja,
29537 arch: *mut BNArchitecture,
29538 boards: *mut *mut *mut ::std::os::raw::c_char,
29539 ) -> ::std::os::raw::c_int;
29540}
29541unsafe extern "C" {
29542 pub fn BNFirmwareNinjaFreeBoardNames(
29543 boards: *mut *mut ::std::os::raw::c_char,
29544 size: ::std::os::raw::c_int,
29545 );
29546}
29547unsafe extern "C" {
29548 pub fn BNFirmwareNinjaQueryBoardDevices(
29549 fn_: *mut BNFirmwareNinja,
29550 arch: *mut BNArchitecture,
29551 board: *const ::std::os::raw::c_char,
29552 devices: *mut *mut BNFirmwareNinjaDevice,
29553 ) -> ::std::os::raw::c_int;
29554}
29555unsafe extern "C" {
29556 pub fn BNFirmwareNinjaFindSectionsWithEntropy(
29557 fn_: *mut BNFirmwareNinja,
29558 sections: *mut *mut BNFirmwareNinjaSection,
29559 highCodeEntropyThreshold: f32,
29560 lowCodeEntropyThreshold: f32,
29561 blockSize: usize,
29562 mode: BNFirmwareNinjaSectionAnalysisMode,
29563 ) -> ::std::os::raw::c_int;
29564}
29565unsafe extern "C" {
29566 pub fn BNFirmwareNinjaFreeSections(
29567 sections: *mut BNFirmwareNinjaSection,
29568 size: ::std::os::raw::c_int,
29569 );
29570}
29571unsafe extern "C" {
29572 pub fn BNFirmwareNinjaGetFunctionMemoryAccesses(
29573 fn_: *mut BNFirmwareNinja,
29574 fma: *mut *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
29575 progress: BNProgressFunction,
29576 progressContext: *mut ::std::os::raw::c_void,
29577 ) -> ::std::os::raw::c_int;
29578}
29579unsafe extern "C" {
29580 pub fn BNFirmwareNinjaFreeFunctionMemoryAccesses(
29581 fma: *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
29582 size: ::std::os::raw::c_int,
29583 );
29584}
29585unsafe extern "C" {
29586 pub fn BNFirmwareNinjaStoreFunctionMemoryAccessesToMetadata(
29587 fn_: *mut BNFirmwareNinja,
29588 fma: *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
29589 size: ::std::os::raw::c_int,
29590 );
29591}
29592unsafe extern "C" {
29593 pub fn BNFirmwareNinjaQueryFunctionMemoryAccessesFromMetadata(
29594 fn_: *mut BNFirmwareNinja,
29595 fma: *mut *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
29596 ) -> ::std::os::raw::c_int;
29597}
29598unsafe extern "C" {
29599 pub fn BNFirmwareNinjaGetBoardDeviceAccesses(
29600 fn_: *mut BNFirmwareNinja,
29601 fma: *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
29602 size: ::std::os::raw::c_int,
29603 accesses: *mut *mut BNFirmwareNinjaDeviceAccesses,
29604 arch: *mut BNArchitecture,
29605 ) -> ::std::os::raw::c_int;
29606}
29607unsafe extern "C" {
29608 pub fn BNFirmwareNinjaFreeBoardDeviceAccesses(
29609 accesses: *mut BNFirmwareNinjaDeviceAccesses,
29610 size: ::std::os::raw::c_int,
29611 );
29612}
29613unsafe extern "C" {
29614 pub fn BNFirmwareNinjaGetMemoryRegionReferenceTree(
29615 fn_: *mut BNFirmwareNinja,
29616 start: u64,
29617 end: u64,
29618 fma: *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
29619 size: ::std::os::raw::c_int,
29620 value: *mut u64,
29621 ) -> *mut BNFirmwareNinjaReferenceNode;
29622}
29623unsafe extern "C" {
29624 pub fn BNFirmwareNinjaGetAddressReferenceTree(
29625 fn_: *mut BNFirmwareNinja,
29626 address: u64,
29627 fma: *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
29628 size: ::std::os::raw::c_int,
29629 value: *mut u64,
29630 ) -> *mut BNFirmwareNinjaReferenceNode;
29631}
29632unsafe extern "C" {
29633 pub fn BNFirmwareNinjaQueryRelationships(
29634 fn_: *mut BNFirmwareNinja,
29635 count: *mut usize,
29636 ) -> *mut *mut BNFirmwareNinjaRelationship;
29637}
29638unsafe extern "C" {
29639 pub fn BNFirmwareNinjaFreeRelationships(
29640 relationships: *mut *mut BNFirmwareNinjaRelationship,
29641 count: usize,
29642 );
29643}
29644unsafe extern "C" {
29645 pub fn BNFirmwareNinjaAddRelationship(
29646 fn_: *mut BNFirmwareNinja,
29647 rel: *mut BNFirmwareNinjaRelationship,
29648 );
29649}
29650unsafe extern "C" {
29651 pub fn BNFirmwareNinjaGetRelationshipByGuid(
29652 fn_: *mut BNFirmwareNinja,
29653 guid: *const ::std::os::raw::c_char,
29654 ) -> *mut BNFirmwareNinjaRelationship;
29655}
29656unsafe extern "C" {
29657 pub fn BNFirmwareNinjaRemoveRelationshipByGuid(
29658 fn_: *mut BNFirmwareNinja,
29659 guid: *const ::std::os::raw::c_char,
29660 );
29661}
29662unsafe extern "C" {
29663 pub fn BNFirmwareNinjaReferenceNodeIsFunction(node: *mut BNFirmwareNinjaReferenceNode) -> bool;
29664}
29665unsafe extern "C" {
29666 pub fn BNFirmwareNinjaReferenceNodeIsDataVariable(
29667 node: *mut BNFirmwareNinjaReferenceNode,
29668 ) -> bool;
29669}
29670unsafe extern "C" {
29671 pub fn BNFirmwareNinjaReferenceNodeHasChildren(node: *mut BNFirmwareNinjaReferenceNode)
29672 -> bool;
29673}
29674unsafe extern "C" {
29675 pub fn BNFirmwareNinjaReferenceNodeGetFunction(
29676 node: *mut BNFirmwareNinjaReferenceNode,
29677 ) -> *mut BNFunction;
29678}
29679unsafe extern "C" {
29680 pub fn BNFirmwareNinjaReferenceNodeGetDataVariable(
29681 node: *mut BNFirmwareNinjaReferenceNode,
29682 dataVariable: *mut BNDataVariable,
29683 ) -> bool;
29684}
29685unsafe extern "C" {
29686 pub fn BNFirmwareNinjaReferenceNodeGetChildren(
29687 parent: *mut BNFirmwareNinjaReferenceNode,
29688 count: *mut usize,
29689 ) -> *mut *mut BNFirmwareNinjaReferenceNode;
29690}
29691unsafe extern "C" {
29692 pub fn BNFreeFirmwareNinjaReferenceNode(node: *mut BNFirmwareNinjaReferenceNode);
29693}
29694unsafe extern "C" {
29695 pub fn BNNewFirmwareNinjaReferenceNodeReference(
29696 node: *mut BNFirmwareNinjaReferenceNode,
29697 ) -> *mut BNFirmwareNinjaReferenceNode;
29698}
29699unsafe extern "C" {
29700 pub fn BNFreeFirmwareNinjaReferenceNodes(
29701 nodes: *mut *mut BNFirmwareNinjaReferenceNode,
29702 count: usize,
29703 );
29704}
29705unsafe extern "C" {
29706 pub fn BNCreateFirmwareNinjaRelationship(
29707 view: *mut BNBinaryView,
29708 ) -> *mut BNFirmwareNinjaRelationship;
29709}
29710unsafe extern "C" {
29711 pub fn BNFreeFirmwareNinjaRelationship(rel: *mut BNFirmwareNinjaRelationship);
29712}
29713unsafe extern "C" {
29714 pub fn BNNewFirmwareNinjaRelationshipReference(
29715 rel: *mut BNFirmwareNinjaRelationship,
29716 ) -> *mut BNFirmwareNinjaRelationship;
29717}
29718unsafe extern "C" {
29719 pub fn BNFirmwareNinjaRelationshipSetPrimaryAddress(
29720 rel: *mut BNFirmwareNinjaRelationship,
29721 address: u64,
29722 );
29723}
29724unsafe extern "C" {
29725 pub fn BNFirmwareNinjaRelationshipSetPrimaryDataVariable(
29726 rel: *mut BNFirmwareNinjaRelationship,
29727 dataVariableAddress: u64,
29728 );
29729}
29730unsafe extern "C" {
29731 pub fn BNFirmwareNinjaRelationshipSetPrimaryFunction(
29732 rel: *mut BNFirmwareNinjaRelationship,
29733 function: *mut BNFunction,
29734 );
29735}
29736unsafe extern "C" {
29737 pub fn BNFirmwareNinjaRelationshipPrimaryIsDataVariable(
29738 rel: *mut BNFirmwareNinjaRelationship,
29739 ) -> bool;
29740}
29741unsafe extern "C" {
29742 pub fn BNFirmwareNinjaRelationshipPrimaryIsFunction(
29743 rel: *mut BNFirmwareNinjaRelationship,
29744 ) -> bool;
29745}
29746unsafe extern "C" {
29747 pub fn BNFirmwareNinjaRelationshipPrimaryIsAddress(
29748 rel: *mut BNFirmwareNinjaRelationship,
29749 ) -> bool;
29750}
29751unsafe extern "C" {
29752 pub fn BNFirmwareNinjaRelationshipGetPrimaryDataVariable(
29753 rel: *mut BNFirmwareNinjaRelationship,
29754 dataVariable: *mut BNDataVariable,
29755 ) -> bool;
29756}
29757unsafe extern "C" {
29758 pub fn BNFirmwareNinjaRelationshipGetPrimaryFunction(
29759 rel: *mut BNFirmwareNinjaRelationship,
29760 ) -> *mut BNFunction;
29761}
29762unsafe extern "C" {
29763 pub fn BNFirmwareNinjaRelationshipGetPrimaryAddress(
29764 rel: *mut BNFirmwareNinjaRelationship,
29765 result: *mut u64,
29766 ) -> bool;
29767}
29768unsafe extern "C" {
29769 pub fn BNFirmwareNinjaRelationshipSetSecondaryExternalAddress(
29770 rel: *mut BNFirmwareNinjaRelationship,
29771 projectFile: *mut BNProjectFile,
29772 address: u64,
29773 );
29774}
29775unsafe extern "C" {
29776 pub fn BNFirmwareNinjaRelationshipSetSecondaryExternalSymbol(
29777 rel: *mut BNFirmwareNinjaRelationship,
29778 projectFile: *mut BNProjectFile,
29779 symbol: *const ::std::os::raw::c_char,
29780 );
29781}
29782unsafe extern "C" {
29783 pub fn BNFirmwareNinjaRelationshipSetSecondaryAddress(
29784 rel: *mut BNFirmwareNinjaRelationship,
29785 address: u64,
29786 );
29787}
29788unsafe extern "C" {
29789 pub fn BNFirmwareNinjaRelationshipSetSecondaryDataVariable(
29790 rel: *mut BNFirmwareNinjaRelationship,
29791 dataVariableAddress: u64,
29792 );
29793}
29794unsafe extern "C" {
29795 pub fn BNFirmwareNinjaRelationshipSetSecondaryFunction(
29796 rel: *mut BNFirmwareNinjaRelationship,
29797 function: *mut BNFunction,
29798 );
29799}
29800unsafe extern "C" {
29801 pub fn BNFirmwareNinjaRelationshipSecondaryIsDataVariable(
29802 rel: *mut BNFirmwareNinjaRelationship,
29803 ) -> bool;
29804}
29805unsafe extern "C" {
29806 pub fn BNFirmwareNinjaRelationshipSecondaryIsFunction(
29807 rel: *mut BNFirmwareNinjaRelationship,
29808 ) -> bool;
29809}
29810unsafe extern "C" {
29811 pub fn BNFirmwareNinjaRelationshipSecondaryIsAddress(
29812 rel: *mut BNFirmwareNinjaRelationship,
29813 ) -> bool;
29814}
29815unsafe extern "C" {
29816 pub fn BNFirmwareNinjaRelationshipSecondaryIsExternalAddress(
29817 rel: *mut BNFirmwareNinjaRelationship,
29818 ) -> bool;
29819}
29820unsafe extern "C" {
29821 pub fn BNFirmwareNinjaRelationshipSecondaryIsExternalSymbol(
29822 rel: *mut BNFirmwareNinjaRelationship,
29823 ) -> bool;
29824}
29825unsafe extern "C" {
29826 pub fn BNFirmwareNinjaRelationshipGetSecondaryExternalProjectFile(
29827 rel: *mut BNFirmwareNinjaRelationship,
29828 ) -> *mut BNProjectFile;
29829}
29830unsafe extern "C" {
29831 pub fn BNFirmwareNinjaRelationshipGetSecondaryAddress(
29832 rel: *mut BNFirmwareNinjaRelationship,
29833 result: *mut u64,
29834 ) -> bool;
29835}
29836unsafe extern "C" {
29837 pub fn BNFirmwareNinjaRelationshipGetSecondaryDataVariable(
29838 rel: *mut BNFirmwareNinjaRelationship,
29839 dataVariable: *mut BNDataVariable,
29840 ) -> bool;
29841}
29842unsafe extern "C" {
29843 pub fn BNFirmwareNinjaRelationshipGetSecondaryFunction(
29844 rel: *mut BNFirmwareNinjaRelationship,
29845 ) -> *mut BNFunction;
29846}
29847unsafe extern "C" {
29848 pub fn BNFirmwareNinjaRelationshipGetSecondaryExternalSymbol(
29849 rel: *mut BNFirmwareNinjaRelationship,
29850 ) -> *mut ::std::os::raw::c_char;
29851}
29852unsafe extern "C" {
29853 pub fn BNFirmwareNinjaRelationshipSetDescription(
29854 rel: *mut BNFirmwareNinjaRelationship,
29855 description: *const ::std::os::raw::c_char,
29856 );
29857}
29858unsafe extern "C" {
29859 pub fn BNFirmwareNinjaRelationshipGetDescription(
29860 rel: *mut BNFirmwareNinjaRelationship,
29861 ) -> *mut ::std::os::raw::c_char;
29862}
29863unsafe extern "C" {
29864 pub fn BNFirmwareNinjaRelationshipSetProvenance(
29865 rel: *mut BNFirmwareNinjaRelationship,
29866 provenance: *const ::std::os::raw::c_char,
29867 );
29868}
29869unsafe extern "C" {
29870 pub fn BNFirmwareNinjaRelationshipGetProvenance(
29871 rel: *mut BNFirmwareNinjaRelationship,
29872 ) -> *mut ::std::os::raw::c_char;
29873}
29874unsafe extern "C" {
29875 pub fn BNFirmwareNinjaRelationshipGetGuid(
29876 rel: *mut BNFirmwareNinjaRelationship,
29877 ) -> *mut ::std::os::raw::c_char;
29878}
29879unsafe extern "C" {
29880 #[doc = " Line formatters"]
29881 pub fn BNRegisterLineFormatter(
29882 name: *const ::std::os::raw::c_char,
29883 callbacks: *mut BNCustomLineFormatter,
29884 ) -> *mut BNLineFormatter;
29885}
29886unsafe extern "C" {
29887 pub fn BNGetLineFormatterList(count: *mut usize) -> *mut *mut BNLineFormatter;
29888}
29889unsafe extern "C" {
29890 pub fn BNFreeLineFormatterList(formatters: *mut *mut BNLineFormatter);
29891}
29892unsafe extern "C" {
29893 pub fn BNGetLineFormatterByName(name: *const ::std::os::raw::c_char) -> *mut BNLineFormatter;
29894}
29895unsafe extern "C" {
29896 pub fn BNGetDefaultLineFormatter() -> *mut BNLineFormatter;
29897}
29898unsafe extern "C" {
29899 pub fn BNGetLineFormatterName(formatter: *mut BNLineFormatter) -> *mut ::std::os::raw::c_char;
29900}
29901unsafe extern "C" {
29902 pub fn BNFormatLines(
29903 formatter: *mut BNLineFormatter,
29904 inLines: *mut BNDisassemblyTextLine,
29905 inCount: usize,
29906 settings: *const BNLineFormatterSettings,
29907 outCount: *mut usize,
29908 ) -> *mut BNDisassemblyTextLine;
29909}
29910unsafe extern "C" {
29911 pub fn BNGetDefaultLineFormatterSettings(
29912 settings: *mut BNDisassemblySettings,
29913 func: *mut BNHighLevelILFunction,
29914 ) -> *mut BNLineFormatterSettings;
29915}
29916unsafe extern "C" {
29917 pub fn BNGetLanguageRepresentationLineFormatterSettings(
29918 settings: *mut BNDisassemblySettings,
29919 func: *mut BNLanguageRepresentationFunction,
29920 ) -> *mut BNLineFormatterSettings;
29921}
29922unsafe extern "C" {
29923 pub fn BNFreeLineFormatterSettings(settings: *mut BNLineFormatterSettings);
29924}
29925unsafe extern "C" {
29926 #[doc = " Render Layers"]
29927 pub fn BNRegisterRenderLayer(
29928 name: *const ::std::os::raw::c_char,
29929 callbacks: *mut BNRenderLayerCallbacks,
29930 enableState: BNRenderLayerDefaultEnableState,
29931 ) -> *mut BNRenderLayer;
29932}
29933unsafe extern "C" {
29934 pub fn BNGetRenderLayerList(count: *mut usize) -> *mut *mut BNRenderLayer;
29935}
29936unsafe extern "C" {
29937 pub fn BNFreeRenderLayerList(renderLayers: *mut *mut BNRenderLayer);
29938}
29939unsafe extern "C" {
29940 pub fn BNGetRenderLayerByName(name: *const ::std::os::raw::c_char) -> *mut BNRenderLayer;
29941}
29942unsafe extern "C" {
29943 pub fn BNGetRenderLayerName(renderLayer: *mut BNRenderLayer) -> *mut ::std::os::raw::c_char;
29944}
29945unsafe extern "C" {
29946 pub fn BNGetRenderLayerDefaultEnableState(
29947 renderLayer: *mut BNRenderLayer,
29948 ) -> BNRenderLayerDefaultEnableState;
29949}
29950unsafe extern "C" {
29951 pub fn BNApplyRenderLayerToFlowGraph(renderLayer: *mut BNRenderLayer, graph: *mut BNFlowGraph);
29952}
29953unsafe extern "C" {
29954 pub fn BNApplyRenderLayerToLinearViewObject(
29955 renderLayer: *mut BNRenderLayer,
29956 obj: *mut BNLinearViewObject,
29957 prev: *mut BNLinearViewObject,
29958 next: *mut BNLinearViewObject,
29959 inLines: *mut BNLinearDisassemblyLine,
29960 inLineCount: usize,
29961 outLines: *mut *mut BNLinearDisassemblyLine,
29962 outLineCount: *mut usize,
29963 );
29964}
29965unsafe extern "C" {
29966 pub fn BNFreeStringRef(ref_: *mut BNStringRef);
29967}
29968unsafe extern "C" {
29969 pub fn BNDuplicateStringRef(ref_: *mut BNStringRef) -> *mut BNStringRef;
29970}
29971unsafe extern "C" {
29972 pub fn BNGetStringRefContents(ref_: *mut BNStringRef) -> *const ::std::os::raw::c_char;
29973}
29974unsafe extern "C" {
29975 pub fn BNGetStringRefSize(ref_: *mut BNStringRef) -> usize;
29976}
29977unsafe extern "C" {
29978 pub fn BNCreateStringRef(str_: *const ::std::os::raw::c_char) -> *mut BNStringRef;
29979}
29980unsafe extern "C" {
29981 pub fn BNCreateStringRefOfLength(
29982 str_: *const ::std::os::raw::c_char,
29983 len: usize,
29984 ) -> *mut BNStringRef;
29985}
29986unsafe extern "C" {
29987 #[doc = " Constant Renderers"]
29988 pub fn BNRegisterConstantRenderer(
29989 name: *const ::std::os::raw::c_char,
29990 renderer: *mut BNCustomConstantRenderer,
29991 ) -> *mut BNConstantRenderer;
29992}
29993unsafe extern "C" {
29994 pub fn BNGetConstantRendererByName(
29995 name: *const ::std::os::raw::c_char,
29996 ) -> *mut BNConstantRenderer;
29997}
29998unsafe extern "C" {
29999 pub fn BNGetConstantRendererList(count: *mut usize) -> *mut *mut BNConstantRenderer;
30000}
30001unsafe extern "C" {
30002 pub fn BNFreeConstantRendererList(renderers: *mut *mut BNConstantRenderer);
30003}
30004unsafe extern "C" {
30005 pub fn BNGetConstantRendererName(
30006 renderer: *mut BNConstantRenderer,
30007 ) -> *mut ::std::os::raw::c_char;
30008}
30009unsafe extern "C" {
30010 pub fn BNIsConstantRendererValidForType(
30011 renderer: *mut BNConstantRenderer,
30012 il: *mut BNHighLevelILFunction,
30013 type_: *mut BNType,
30014 ) -> bool;
30015}
30016unsafe extern "C" {
30017 pub fn BNConstantRendererRenderConstant(
30018 renderer: *mut BNConstantRenderer,
30019 il: *mut BNHighLevelILFunction,
30020 exprIndex: usize,
30021 type_: *mut BNType,
30022 val: i64,
30023 tokens: *mut BNHighLevelILTokenEmitter,
30024 settings: *mut BNDisassemblySettings,
30025 precedence: BNOperatorPrecedence,
30026 ) -> bool;
30027}
30028unsafe extern "C" {
30029 pub fn BNConstantRendererRenderConstantPointer(
30030 renderer: *mut BNConstantRenderer,
30031 il: *mut BNHighLevelILFunction,
30032 exprIndex: usize,
30033 type_: *mut BNType,
30034 val: i64,
30035 tokens: *mut BNHighLevelILTokenEmitter,
30036 settings: *mut BNDisassemblySettings,
30037 symbolDisplay: BNSymbolDisplayType,
30038 precedence: BNOperatorPrecedence,
30039 ) -> bool;
30040}
30041unsafe extern "C" {
30042 #[doc = " String recognizers"]
30043 pub fn BNRegisterCustomStringType(info: *mut BNCustomStringTypeInfo)
30044 -> *mut BNCustomStringType;
30045}
30046unsafe extern "C" {
30047 pub fn BNGetCustomStringTypeByName(
30048 name: *const ::std::os::raw::c_char,
30049 ) -> *mut BNCustomStringType;
30050}
30051unsafe extern "C" {
30052 pub fn BNGetCustomStringTypeByID(id: u32) -> *mut BNCustomStringType;
30053}
30054unsafe extern "C" {
30055 pub fn BNGetCustomStringTypeList(count: *mut usize) -> *mut *mut BNCustomStringType;
30056}
30057unsafe extern "C" {
30058 pub fn BNFreeCustomStringTypeList(types: *mut *mut BNCustomStringType);
30059}
30060unsafe extern "C" {
30061 pub fn BNGetCustomStringTypeName(type_: *mut BNCustomStringType)
30062 -> *mut ::std::os::raw::c_char;
30063}
30064unsafe extern "C" {
30065 pub fn BNGetCustomStringTypePrefix(
30066 type_: *mut BNCustomStringType,
30067 ) -> *mut ::std::os::raw::c_char;
30068}
30069unsafe extern "C" {
30070 pub fn BNGetCustomStringTypePostfix(
30071 type_: *mut BNCustomStringType,
30072 ) -> *mut ::std::os::raw::c_char;
30073}
30074unsafe extern "C" {
30075 pub fn BNRegisterStringRecognizer(
30076 name: *const ::std::os::raw::c_char,
30077 recognizer: *mut BNCustomStringRecognizer,
30078 ) -> *mut BNStringRecognizer;
30079}
30080unsafe extern "C" {
30081 pub fn BNGetStringRecognizerByName(
30082 name: *const ::std::os::raw::c_char,
30083 ) -> *mut BNStringRecognizer;
30084}
30085unsafe extern "C" {
30086 pub fn BNGetStringRecognizerList(count: *mut usize) -> *mut *mut BNStringRecognizer;
30087}
30088unsafe extern "C" {
30089 pub fn BNFreeStringRecognizerList(recognizers: *mut *mut BNStringRecognizer);
30090}
30091unsafe extern "C" {
30092 pub fn BNGetStringRecognizerName(
30093 recognizer: *mut BNStringRecognizer,
30094 ) -> *mut ::std::os::raw::c_char;
30095}
30096unsafe extern "C" {
30097 pub fn BNIsStringRecognizerValidForType(
30098 recognizer: *mut BNStringRecognizer,
30099 il: *mut BNHighLevelILFunction,
30100 type_: *mut BNType,
30101 ) -> bool;
30102}
30103unsafe extern "C" {
30104 pub fn BNStringRecognizerRecognizeConstant(
30105 recognizer: *mut BNStringRecognizer,
30106 il: *mut BNHighLevelILFunction,
30107 exprIndex: usize,
30108 type_: *mut BNType,
30109 val: i64,
30110 out: *mut BNDerivedString,
30111 ) -> bool;
30112}
30113unsafe extern "C" {
30114 pub fn BNStringRecognizerRecognizeConstantPointer(
30115 recognizer: *mut BNStringRecognizer,
30116 il: *mut BNHighLevelILFunction,
30117 exprIndex: usize,
30118 type_: *mut BNType,
30119 val: i64,
30120 out: *mut BNDerivedString,
30121 ) -> bool;
30122}
30123unsafe extern "C" {
30124 pub fn BNStringRecognizerRecognizeExternPointer(
30125 recognizer: *mut BNStringRecognizer,
30126 il: *mut BNHighLevelILFunction,
30127 exprIndex: usize,
30128 type_: *mut BNType,
30129 val: i64,
30130 offset: u64,
30131 out: *mut BNDerivedString,
30132 ) -> bool;
30133}
30134unsafe extern "C" {
30135 pub fn BNStringRecognizerRecognizeImport(
30136 recognizer: *mut BNStringRecognizer,
30137 il: *mut BNHighLevelILFunction,
30138 exprIndex: usize,
30139 type_: *mut BNType,
30140 val: i64,
30141 out: *mut BNDerivedString,
30142 ) -> bool;
30143}
30144unsafe extern "C" {
30145 pub fn BNStringRecognizerRecognizeConstantData(
30146 recognizer: *mut BNStringRecognizer,
30147 il: *mut BNHighLevelILFunction,
30148 exprIndex: usize,
30149 out: *mut BNDerivedString,
30150 ) -> bool;
30151}
30152unsafe extern "C" {
30153 #[doc = " PossibleValueSet operations"]
30154 pub fn BNFreePossibleValueSet(object: *mut BNPossibleValueSet);
30155}
30156unsafe extern "C" {
30157 pub fn BNPossibleValueSetUnion(
30158 object: *const BNPossibleValueSet,
30159 other: *const BNPossibleValueSet,
30160 size: usize,
30161 ) -> BNPossibleValueSet;
30162}
30163unsafe extern "C" {
30164 pub fn BNPossibleValueSetIntersection(
30165 object: *const BNPossibleValueSet,
30166 other: *const BNPossibleValueSet,
30167 size: usize,
30168 ) -> BNPossibleValueSet;
30169}
30170unsafe extern "C" {
30171 pub fn BNPossibleValueSetAdd(
30172 object: *const BNPossibleValueSet,
30173 other: *const BNPossibleValueSet,
30174 size: usize,
30175 ) -> BNPossibleValueSet;
30176}
30177unsafe extern "C" {
30178 pub fn BNPossibleValueSetSubtract(
30179 object: *const BNPossibleValueSet,
30180 other: *const BNPossibleValueSet,
30181 size: usize,
30182 ) -> BNPossibleValueSet;
30183}
30184unsafe extern "C" {
30185 pub fn BNPossibleValueSetMultiply(
30186 object: *const BNPossibleValueSet,
30187 other: *const BNPossibleValueSet,
30188 size: usize,
30189 ) -> BNPossibleValueSet;
30190}
30191unsafe extern "C" {
30192 pub fn BNPossibleValueSetSignedDivide(
30193 object: *const BNPossibleValueSet,
30194 other: *const BNPossibleValueSet,
30195 size: usize,
30196 ) -> BNPossibleValueSet;
30197}
30198unsafe extern "C" {
30199 pub fn BNPossibleValueSetUnsignedDivide(
30200 object: *const BNPossibleValueSet,
30201 other: *const BNPossibleValueSet,
30202 size: usize,
30203 ) -> BNPossibleValueSet;
30204}
30205unsafe extern "C" {
30206 pub fn BNPossibleValueSetSignedMod(
30207 object: *const BNPossibleValueSet,
30208 other: *const BNPossibleValueSet,
30209 size: usize,
30210 ) -> BNPossibleValueSet;
30211}
30212unsafe extern "C" {
30213 pub fn BNPossibleValueSetUnsignedMod(
30214 object: *const BNPossibleValueSet,
30215 other: *const BNPossibleValueSet,
30216 size: usize,
30217 ) -> BNPossibleValueSet;
30218}
30219unsafe extern "C" {
30220 pub fn BNPossibleValueSetAnd(
30221 object: *const BNPossibleValueSet,
30222 other: *const BNPossibleValueSet,
30223 size: usize,
30224 ) -> BNPossibleValueSet;
30225}
30226unsafe extern "C" {
30227 pub fn BNPossibleValueSetOr(
30228 object: *const BNPossibleValueSet,
30229 other: *const BNPossibleValueSet,
30230 size: usize,
30231 ) -> BNPossibleValueSet;
30232}
30233unsafe extern "C" {
30234 pub fn BNPossibleValueSetXor(
30235 object: *const BNPossibleValueSet,
30236 other: *const BNPossibleValueSet,
30237 size: usize,
30238 ) -> BNPossibleValueSet;
30239}
30240unsafe extern "C" {
30241 pub fn BNPossibleValueSetShiftLeft(
30242 object: *const BNPossibleValueSet,
30243 other: *const BNPossibleValueSet,
30244 size: usize,
30245 ) -> BNPossibleValueSet;
30246}
30247unsafe extern "C" {
30248 pub fn BNPossibleValueSetLogicalShiftRight(
30249 object: *const BNPossibleValueSet,
30250 other: *const BNPossibleValueSet,
30251 size: usize,
30252 ) -> BNPossibleValueSet;
30253}
30254unsafe extern "C" {
30255 pub fn BNPossibleValueSetArithShiftRight(
30256 object: *const BNPossibleValueSet,
30257 other: *const BNPossibleValueSet,
30258 size: usize,
30259 ) -> BNPossibleValueSet;
30260}
30261unsafe extern "C" {
30262 pub fn BNPossibleValueSetRotateLeft(
30263 object: *const BNPossibleValueSet,
30264 other: *const BNPossibleValueSet,
30265 size: usize,
30266 ) -> BNPossibleValueSet;
30267}
30268unsafe extern "C" {
30269 pub fn BNPossibleValueSetRotateRight(
30270 object: *const BNPossibleValueSet,
30271 other: *const BNPossibleValueSet,
30272 size: usize,
30273 ) -> BNPossibleValueSet;
30274}
30275unsafe extern "C" {
30276 pub fn BNPossibleValueSetNegate(
30277 object: *const BNPossibleValueSet,
30278 size: usize,
30279 ) -> BNPossibleValueSet;
30280}
30281unsafe extern "C" {
30282 pub fn BNPossibleValueSetNot(
30283 object: *const BNPossibleValueSet,
30284 size: usize,
30285 ) -> BNPossibleValueSet;
30286}