1pub const BN_CURRENT_UI_ABI_VERSION: u32 = 18;
4pub const BN_MINIMUM_UI_ABI_VERSION: u32 = 18;
5
6pub const BN_CURRENT_CORE_ABI_VERSION: u32 = 187;
7pub const BN_MINIMUM_CORE_ABI_VERSION: u32 = 187;
8pub const MAX_RELOCATION_SIZE: u32 = 8;
9#[repr(u8)]
10#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11pub enum BNPluginLoadPhase {
12 NativePluginLoadPhase = 0,
13 ScriptingProviderLoadPhase = 1,
14 ScriptPluginLoadPhase = 2,
15}
16#[repr(C)]
17#[derive(Debug, Copy, Clone)]
18pub struct BNDataBuffer {
19 _unused: [u8; 0],
20}
21#[repr(C)]
22#[derive(Debug, Copy, Clone)]
23pub struct BNBinaryView {
24 _unused: [u8; 0],
25}
26#[repr(C)]
27#[derive(Debug, Copy, Clone)]
28pub struct BNBinaryViewType {
29 _unused: [u8; 0],
30}
31#[repr(C)]
32#[derive(Debug, Copy, Clone)]
33pub struct BNBinaryReader {
34 _unused: [u8; 0],
35}
36#[repr(C)]
37#[derive(Debug, Copy, Clone)]
38pub struct BNBinaryWriter {
39 _unused: [u8; 0],
40}
41#[repr(C)]
42#[derive(Debug, Copy, Clone)]
43pub struct BNKeyValueStore {
44 _unused: [u8; 0],
45}
46#[repr(C)]
47#[derive(Debug, Copy, Clone)]
48pub struct BNSnapshot {
49 _unused: [u8; 0],
50}
51#[repr(C)]
52#[derive(Debug, Copy, Clone)]
53pub struct BNDatabase {
54 _unused: [u8; 0],
55}
56#[repr(C)]
57#[derive(Debug, Copy, Clone)]
58pub struct BNFileMetadata {
59 _unused: [u8; 0],
60}
61#[repr(C)]
62#[derive(Debug, Copy, Clone)]
63pub struct BNTransform {
64 _unused: [u8; 0],
65}
66#[repr(C)]
67#[derive(Debug, Copy, Clone)]
68pub struct BNTransformContext {
69 _unused: [u8; 0],
70}
71#[repr(C)]
72#[derive(Debug, Copy, Clone)]
73pub struct BNTransformSession {
74 _unused: [u8; 0],
75}
76#[repr(C)]
77#[derive(Debug, Copy, Clone)]
78pub struct BNArchitecture {
79 _unused: [u8; 0],
80}
81#[repr(C)]
82#[derive(Debug, Copy, Clone)]
83pub struct BNFunction {
84 _unused: [u8; 0],
85}
86#[repr(C)]
87#[derive(Debug, Copy, Clone)]
88pub struct BNBasicBlock {
89 _unused: [u8; 0],
90}
91#[repr(C)]
92#[derive(Debug, Copy, Clone)]
93pub struct BNLifterInstructionData {
94 _unused: [u8; 0],
95}
96#[repr(C)]
97#[derive(Debug, Copy, Clone)]
98pub struct BNDownloadProvider {
99 _unused: [u8; 0],
100}
101#[repr(C)]
102#[derive(Debug, Copy, Clone)]
103pub struct BNDownloadInstance {
104 _unused: [u8; 0],
105}
106#[repr(C)]
107#[derive(Debug, Copy, Clone)]
108pub struct BNWebsocketProvider {
109 _unused: [u8; 0],
110}
111#[repr(C)]
112#[derive(Debug, Copy, Clone)]
113pub struct BNWebsocketClient {
114 _unused: [u8; 0],
115}
116#[repr(C)]
117#[derive(Debug, Copy, Clone)]
118pub struct BNTypeParser {
119 _unused: [u8; 0],
120}
121#[repr(C)]
122#[derive(Debug, Copy, Clone)]
123pub struct BNTypePrinter {
124 _unused: [u8; 0],
125}
126#[repr(C)]
127#[derive(Debug, Copy, Clone)]
128pub struct BNFlowGraph {
129 _unused: [u8; 0],
130}
131#[repr(C)]
132#[derive(Debug, Copy, Clone)]
133pub struct BNFlowGraphNode {
134 _unused: [u8; 0],
135}
136#[repr(C)]
137#[derive(Debug, Copy, Clone)]
138pub struct BNFlowGraphLayout {
139 _unused: [u8; 0],
140}
141#[repr(C)]
142#[derive(Debug, Copy, Clone)]
143pub struct BNFlowGraphLayoutRequest {
144 _unused: [u8; 0],
145}
146#[repr(C)]
147#[derive(Debug, Copy, Clone)]
148pub struct BNSymbol {
149 _unused: [u8; 0],
150}
151#[repr(C)]
152#[derive(Debug, Copy, Clone)]
153pub struct BNTemporaryFile {
154 _unused: [u8; 0],
155}
156#[repr(C)]
157#[derive(Debug, Copy, Clone)]
158pub struct BNLowLevelILFunction {
159 _unused: [u8; 0],
160}
161#[repr(C)]
162#[derive(Debug, Copy, Clone)]
163pub struct BNMediumLevelILFunction {
164 _unused: [u8; 0],
165}
166#[repr(C)]
167#[derive(Debug, Copy, Clone)]
168pub struct BNHighLevelILFunction {
169 _unused: [u8; 0],
170}
171#[repr(C)]
172#[derive(Debug, Copy, Clone)]
173pub struct BNLanguageRepresentationFunction {
174 _unused: [u8; 0],
175}
176#[repr(C)]
177#[derive(Debug, Copy, Clone)]
178pub struct BNLanguageRepresentationFunctionType {
179 _unused: [u8; 0],
180}
181#[repr(C)]
182#[derive(Debug, Copy, Clone)]
183pub struct BNHighLevelILTokenEmitter {
184 _unused: [u8; 0],
185}
186#[repr(C)]
187#[derive(Debug, Copy, Clone)]
188pub struct BNType {
189 _unused: [u8; 0],
190}
191#[repr(C)]
192#[derive(Debug, Copy, Clone)]
193pub struct BNTypeBuilder {
194 _unused: [u8; 0],
195}
196#[repr(C)]
197#[derive(Debug, Copy, Clone)]
198pub struct BNTypeLibrary {
199 _unused: [u8; 0],
200}
201#[repr(C)]
202#[derive(Debug, Copy, Clone)]
203pub struct BNFieldResolutionInfo {
204 _unused: [u8; 0],
205}
206#[repr(C)]
207#[derive(Debug, Copy, Clone)]
208pub struct BNStructure {
209 _unused: [u8; 0],
210}
211#[repr(C)]
212#[derive(Debug, Copy, Clone)]
213pub struct BNStructureBuilder {
214 _unused: [u8; 0],
215}
216#[repr(C)]
217#[derive(Debug, Copy, Clone)]
218pub struct BNTagType {
219 _unused: [u8; 0],
220}
221#[repr(C)]
222#[derive(Debug, Copy, Clone)]
223pub struct BNTag {
224 _unused: [u8; 0],
225}
226#[repr(C)]
227#[derive(Debug, Copy, Clone)]
228pub struct BNUser {
229 _unused: [u8; 0],
230}
231#[repr(C)]
232#[derive(Debug, Copy, Clone)]
233pub struct BNNamedTypeReference {
234 _unused: [u8; 0],
235}
236#[repr(C)]
237#[derive(Debug, Copy, Clone)]
238pub struct BNNamedTypeReferenceBuilder {
239 _unused: [u8; 0],
240}
241#[repr(C)]
242#[derive(Debug, Copy, Clone)]
243pub struct BNEnumeration {
244 _unused: [u8; 0],
245}
246#[repr(C)]
247#[derive(Debug, Copy, Clone)]
248pub struct BNEnumerationBuilder {
249 _unused: [u8; 0],
250}
251#[repr(C)]
252#[derive(Debug, Copy, Clone)]
253pub struct BNCallingConvention {
254 _unused: [u8; 0],
255}
256#[repr(C)]
257#[derive(Debug, Copy, Clone)]
258pub struct BNPlatform {
259 _unused: [u8; 0],
260}
261#[repr(C)]
262#[derive(Debug, Copy, Clone)]
263pub struct BNActivity {
264 _unused: [u8; 0],
265}
266#[repr(C)]
267#[derive(Debug, Copy, Clone)]
268pub struct BNAnalysisContext {
269 _unused: [u8; 0],
270}
271#[repr(C)]
272#[derive(Debug, Copy, Clone)]
273pub struct BNWorkflow {
274 _unused: [u8; 0],
275}
276#[repr(C)]
277#[derive(Debug, Copy, Clone)]
278pub struct BNAnalysisCompletionEvent {
279 _unused: [u8; 0],
280}
281#[repr(C)]
282#[derive(Debug, Copy, Clone)]
283pub struct BNDisassemblySettings {
284 _unused: [u8; 0],
285}
286#[repr(C)]
287#[derive(Debug, Copy, Clone)]
288pub struct BNSaveSettings {
289 _unused: [u8; 0],
290}
291#[repr(C)]
292#[derive(Debug, Copy, Clone)]
293pub struct BNScriptingProvider {
294 _unused: [u8; 0],
295}
296#[repr(C)]
297#[derive(Debug, Copy, Clone)]
298pub struct BNScriptingInstance {
299 _unused: [u8; 0],
300}
301#[repr(C)]
302#[derive(Debug, Copy, Clone)]
303pub struct BNMainThreadAction {
304 _unused: [u8; 0],
305}
306#[repr(C)]
307#[derive(Debug, Copy, Clone)]
308pub struct BNBackgroundTask {
309 _unused: [u8; 0],
310}
311#[repr(C)]
312#[derive(Debug, Copy, Clone)]
313pub struct BNRepository {
314 _unused: [u8; 0],
315}
316#[repr(C)]
317#[derive(Debug, Copy, Clone)]
318pub struct BNPlugin {
319 _unused: [u8; 0],
320}
321#[repr(C)]
322#[derive(Debug, Copy, Clone)]
323pub struct BNComponent {
324 _unused: [u8; 0],
325}
326#[repr(C)]
327#[derive(Debug, Copy, Clone)]
328pub struct BNSettings {
329 _unused: [u8; 0],
330}
331#[repr(C)]
332#[derive(Debug, Copy, Clone)]
333pub struct BNMetadata {
334 _unused: [u8; 0],
335}
336#[repr(C)]
337#[derive(Debug, Copy, Clone)]
338pub struct BNReportCollection {
339 _unused: [u8; 0],
340}
341#[repr(C)]
342#[derive(Debug, Copy, Clone)]
343pub struct BNRelocation {
344 _unused: [u8; 0],
345}
346#[repr(C)]
347#[derive(Debug, Copy, Clone)]
348pub struct BNSegment {
349 _unused: [u8; 0],
350}
351#[repr(C)]
352#[derive(Debug, Copy, Clone)]
353pub struct BNSection {
354 _unused: [u8; 0],
355}
356#[repr(C)]
357#[derive(Debug, Copy, Clone)]
358pub struct BNRelocationHandler {
359 _unused: [u8; 0],
360}
361#[repr(C)]
362#[derive(Debug, Copy, Clone)]
363pub struct BNDataRenderer {
364 _unused: [u8; 0],
365}
366#[repr(C)]
367#[derive(Debug, Copy, Clone)]
368pub struct BNDataRendererContainer {
369 _unused: [u8; 0],
370}
371#[repr(C)]
372#[derive(Debug, Copy, Clone)]
373pub struct BNDisassemblyTextRenderer {
374 _unused: [u8; 0],
375}
376#[repr(C)]
377#[derive(Debug, Copy, Clone)]
378pub struct BNLinearViewObject {
379 _unused: [u8; 0],
380}
381#[repr(C)]
382#[derive(Debug, Copy, Clone)]
383pub struct BNLinearViewCursor {
384 _unused: [u8; 0],
385}
386#[repr(C)]
387#[derive(Debug, Copy, Clone)]
388pub struct BNDebugInfo {
389 _unused: [u8; 0],
390}
391#[repr(C)]
392#[derive(Debug, Copy, Clone)]
393pub struct BNDebugInfoParser {
394 _unused: [u8; 0],
395}
396#[repr(C)]
397#[derive(Debug, Copy, Clone)]
398pub struct BNSecretsProvider {
399 _unused: [u8; 0],
400}
401#[repr(C)]
402#[derive(Debug, Copy, Clone)]
403pub struct BNLogger {
404 _unused: [u8; 0],
405}
406#[repr(C)]
407#[derive(Debug, Copy, Clone)]
408pub struct BNSymbolQueue {
409 _unused: [u8; 0],
410}
411#[repr(C)]
412#[derive(Debug, Copy, Clone)]
413pub struct BNTypeArchive {
414 _unused: [u8; 0],
415}
416#[repr(C)]
417#[derive(Debug, Copy, Clone)]
418pub struct BNTypeContainer {
419 _unused: [u8; 0],
420}
421#[repr(C)]
422#[derive(Debug, Copy, Clone)]
423pub struct BNProject {
424 _unused: [u8; 0],
425}
426#[repr(C)]
427#[derive(Debug, Copy, Clone)]
428pub struct BNProjectFile {
429 _unused: [u8; 0],
430}
431#[repr(C)]
432#[derive(Debug, Copy, Clone)]
433pub struct BNExternalLibrary {
434 _unused: [u8; 0],
435}
436#[repr(C)]
437#[derive(Debug, Copy, Clone)]
438pub struct BNExternalLocation {
439 _unused: [u8; 0],
440}
441#[repr(C)]
442#[derive(Debug, Copy, Clone)]
443pub struct BNProjectFolder {
444 _unused: [u8; 0],
445}
446#[repr(C)]
447#[derive(Debug, Copy, Clone)]
448pub struct BNBaseAddressDetection {
449 _unused: [u8; 0],
450}
451#[repr(C)]
452#[derive(Debug, Copy, Clone)]
453pub struct BNCollaborationChangeset {
454 _unused: [u8; 0],
455}
456#[repr(C)]
457#[derive(Debug, Copy, Clone)]
458pub struct BNRemoteFile {
459 _unused: [u8; 0],
460}
461#[repr(C)]
462#[derive(Debug, Copy, Clone)]
463pub struct BNRemoteFolder {
464 _unused: [u8; 0],
465}
466#[repr(C)]
467#[derive(Debug, Copy, Clone)]
468pub struct BNCollaborationGroup {
469 _unused: [u8; 0],
470}
471#[repr(C)]
472#[derive(Debug, Copy, Clone)]
473pub struct BNCollaborationPermission {
474 _unused: [u8; 0],
475}
476#[repr(C)]
477#[derive(Debug, Copy, Clone)]
478pub struct BNRemoteProject {
479 _unused: [u8; 0],
480}
481#[repr(C)]
482#[derive(Debug, Copy, Clone)]
483pub struct BNRemote {
484 _unused: [u8; 0],
485}
486#[repr(C)]
487#[derive(Debug, Copy, Clone)]
488pub struct BNCollaborationSnapshot {
489 _unused: [u8; 0],
490}
491#[repr(C)]
492#[derive(Debug, Copy, Clone)]
493pub struct BNCollaborationUndoEntry {
494 _unused: [u8; 0],
495}
496#[repr(C)]
497#[derive(Debug, Copy, Clone)]
498pub struct BNCollaborationUser {
499 _unused: [u8; 0],
500}
501#[repr(C)]
502#[derive(Debug, Copy, Clone)]
503pub struct BNAnalysisMergeConflict {
504 _unused: [u8; 0],
505}
506#[repr(C)]
507#[derive(Debug, Copy, Clone)]
508pub struct BNAnalysisMergeConflictSplitter {
509 _unused: [u8; 0],
510}
511#[repr(C)]
512#[derive(Debug, Copy, Clone)]
513pub struct BNTypeArchiveMergeConflict {
514 _unused: [u8; 0],
515}
516#[repr(C)]
517#[derive(Debug, Copy, Clone)]
518pub struct BNCollaborationLazyT {
519 _unused: [u8; 0],
520}
521#[repr(C)]
522#[derive(Debug, Copy, Clone)]
523pub struct BNUndoAction {
524 _unused: [u8; 0],
525}
526#[repr(C)]
527#[derive(Debug, Copy, Clone)]
528pub struct BNUndoEntry {
529 _unused: [u8; 0],
530}
531#[repr(C)]
532#[derive(Debug, Copy, Clone)]
533pub struct BNDemangler {
534 _unused: [u8; 0],
535}
536#[repr(C)]
537#[derive(Debug, Copy, Clone)]
538pub struct BNFirmwareNinja {
539 _unused: [u8; 0],
540}
541#[repr(C)]
542#[derive(Debug, Copy, Clone)]
543pub struct BNFirmwareNinjaReferenceNode {
544 _unused: [u8; 0],
545}
546#[repr(C)]
547#[derive(Debug, Copy, Clone)]
548pub struct BNFirmwareNinjaRelationship {
549 _unused: [u8; 0],
550}
551#[repr(C)]
552#[derive(Debug, Copy, Clone)]
553pub struct BNLineFormatter {
554 _unused: [u8; 0],
555}
556#[repr(C)]
557#[derive(Debug, Copy, Clone)]
558pub struct BNRenderLayer {
559 _unused: [u8; 0],
560}
561#[repr(C)]
562#[derive(Debug, Copy, Clone)]
563pub struct BNStringRef {
564 _unused: [u8; 0],
565}
566#[repr(C)]
567#[derive(Debug, Copy, Clone)]
568pub struct BNStringDetector {
569 _unused: [u8; 0],
570}
571#[repr(C)]
572#[derive(Debug, Copy, Clone)]
573pub struct BNConstantRenderer {
574 _unused: [u8; 0],
575}
576#[repr(C)]
577#[derive(Debug, Copy, Clone)]
578pub struct BNStringRecognizer {
579 _unused: [u8; 0],
580}
581#[repr(C)]
582#[derive(Debug, Copy, Clone)]
583pub struct BNCustomStringType {
584 _unused: [u8; 0],
585}
586#[repr(C)]
587#[derive(Debug, Copy, Clone)]
588pub struct BNSimilarityProviderType {
589 _unused: [u8; 0],
590}
591#[repr(C)]
592#[derive(Debug, Copy, Clone)]
593pub struct BNSimilarityProvider {
594 _unused: [u8; 0],
595}
596#[repr(C)]
597#[derive(Debug, Copy, Clone)]
598pub struct BNSimilarityProviderResults {
599 _unused: [u8; 0],
600}
601#[repr(C)]
602#[derive(Debug, Copy, Clone)]
603pub struct BNSimilarityRenderContext {
604 _unused: [u8; 0],
605}
606#[repr(C)]
607#[derive(Debug, Copy, Clone)]
608pub struct BNSimilarityView {
609 _unused: [u8; 0],
610}
611#[repr(C)]
612#[derive(Debug, Copy, Clone)]
613pub struct BNDiffRenderer {
614 _unused: [u8; 0],
615}
616#[repr(C)]
617#[derive(Debug, Copy, Clone)]
618pub struct BNSimilaritySessionResolverType {
619 _unused: [u8; 0],
620}
621#[repr(C)]
622#[derive(Debug, Copy, Clone)]
623pub struct BNSimilaritySessionResolver {
624 _unused: [u8; 0],
625}
626#[repr(C)]
627#[derive(Debug, Copy, Clone)]
628pub struct BNSimilaritySessionNode {
629 _unused: [u8; 0],
630}
631#[repr(C)]
632#[derive(Debug, Copy, Clone)]
633pub struct BNSimilaritySessionGraph {
634 _unused: [u8; 0],
635}
636#[repr(C)]
637#[derive(Debug, Copy, Clone)]
638pub struct BNSimilaritySessionGraphReceiver {
639 _unused: [u8; 0],
640}
641#[repr(C)]
642#[derive(Debug, Copy, Clone)]
643pub struct BNSimilaritySessionCompletion {
644 _unused: [u8; 0],
645}
646#[repr(C)]
647#[derive(Debug, Copy, Clone)]
648pub struct BNSimilaritySessionReceiver {
649 _unused: [u8; 0],
650}
651#[repr(C)]
652#[derive(Debug, Copy, Clone)]
653pub struct BNSimilaritySession {
654 _unused: [u8; 0],
655}
656#[repr(C)]
657#[derive(Debug, Copy, Clone)]
658pub struct BNVersionInfo {
659 pub major: u32,
660 pub minor: u32,
661 pub build: u32,
662 pub channel: *mut ::std::os::raw::c_char,
663}
664#[allow(clippy::unnecessary_operation, clippy::identity_op)]
665const _: () = {
666 ["Size of BNVersionInfo"][::std::mem::size_of::<BNVersionInfo>() - 24usize];
667 ["Alignment of BNVersionInfo"][::std::mem::align_of::<BNVersionInfo>() - 8usize];
668 ["Offset of field: BNVersionInfo::major"]
669 [::std::mem::offset_of!(BNVersionInfo, major) - 0usize];
670 ["Offset of field: BNVersionInfo::minor"]
671 [::std::mem::offset_of!(BNVersionInfo, minor) - 4usize];
672 ["Offset of field: BNVersionInfo::build"]
673 [::std::mem::offset_of!(BNVersionInfo, build) - 8usize];
674 ["Offset of field: BNVersionInfo::channel"]
675 [::std::mem::offset_of!(BNVersionInfo, channel) - 16usize];
676};
677impl Default for BNVersionInfo {
678 fn default() -> Self {
679 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
680 unsafe {
681 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
682 s.assume_init()
683 }
684 }
685}
686#[repr(C)]
687#[derive(Debug, Copy, Clone)]
688pub struct BNLicenseAddon {
689 pub id: *mut ::std::os::raw::c_char,
690 pub licenseSerial: *mut ::std::os::raw::c_char,
691 pub product: *mut ::std::os::raw::c_char,
692 pub created: *mut ::std::os::raw::c_char,
693 pub createdTimestamp: u64,
694 pub expiration: *mut ::std::os::raw::c_char,
695 pub expirationTimestamp: u64,
696 pub signature: *mut ::std::os::raw::c_char,
697}
698#[allow(clippy::unnecessary_operation, clippy::identity_op)]
699const _: () = {
700 ["Size of BNLicenseAddon"][::std::mem::size_of::<BNLicenseAddon>() - 64usize];
701 ["Alignment of BNLicenseAddon"][::std::mem::align_of::<BNLicenseAddon>() - 8usize];
702 ["Offset of field: BNLicenseAddon::id"][::std::mem::offset_of!(BNLicenseAddon, id) - 0usize];
703 ["Offset of field: BNLicenseAddon::licenseSerial"]
704 [::std::mem::offset_of!(BNLicenseAddon, licenseSerial) - 8usize];
705 ["Offset of field: BNLicenseAddon::product"]
706 [::std::mem::offset_of!(BNLicenseAddon, product) - 16usize];
707 ["Offset of field: BNLicenseAddon::created"]
708 [::std::mem::offset_of!(BNLicenseAddon, created) - 24usize];
709 ["Offset of field: BNLicenseAddon::createdTimestamp"]
710 [::std::mem::offset_of!(BNLicenseAddon, createdTimestamp) - 32usize];
711 ["Offset of field: BNLicenseAddon::expiration"]
712 [::std::mem::offset_of!(BNLicenseAddon, expiration) - 40usize];
713 ["Offset of field: BNLicenseAddon::expirationTimestamp"]
714 [::std::mem::offset_of!(BNLicenseAddon, expirationTimestamp) - 48usize];
715 ["Offset of field: BNLicenseAddon::signature"]
716 [::std::mem::offset_of!(BNLicenseAddon, signature) - 56usize];
717};
718impl Default for BNLicenseAddon {
719 fn default() -> Self {
720 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
721 unsafe {
722 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
723 s.assume_init()
724 }
725 }
726}
727#[repr(C)]
728#[derive(Debug, Copy, Clone)]
729pub struct BNPluginVersionPlatform {
730 pub name: *mut ::std::os::raw::c_char,
731 pub downloadUrl: *mut ::std::os::raw::c_char,
732 pub untrackedDownloadUrl: *mut ::std::os::raw::c_char,
733}
734#[allow(clippy::unnecessary_operation, clippy::identity_op)]
735const _: () = {
736 ["Size of BNPluginVersionPlatform"][::std::mem::size_of::<BNPluginVersionPlatform>() - 24usize];
737 ["Alignment of BNPluginVersionPlatform"]
738 [::std::mem::align_of::<BNPluginVersionPlatform>() - 8usize];
739 ["Offset of field: BNPluginVersionPlatform::name"]
740 [::std::mem::offset_of!(BNPluginVersionPlatform, name) - 0usize];
741 ["Offset of field: BNPluginVersionPlatform::downloadUrl"]
742 [::std::mem::offset_of!(BNPluginVersionPlatform, downloadUrl) - 8usize];
743 ["Offset of field: BNPluginVersionPlatform::untrackedDownloadUrl"]
744 [::std::mem::offset_of!(BNPluginVersionPlatform, untrackedDownloadUrl) - 16usize];
745};
746impl Default for BNPluginVersionPlatform {
747 fn default() -> Self {
748 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
749 unsafe {
750 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
751 s.assume_init()
752 }
753 }
754}
755#[repr(C)]
756#[derive(Debug, Copy, Clone)]
757pub struct BNPluginVersion {
758 pub id: *mut ::std::os::raw::c_char,
759 pub versionString: *mut ::std::os::raw::c_char,
760 pub longDescription: *mut ::std::os::raw::c_char,
761 pub changelog: *mut ::std::os::raw::c_char,
762 pub minimumClientVersion: u64,
763 pub platforms: *mut BNPluginVersionPlatform,
764 pub platformCount: usize,
765 pub created: *mut ::std::os::raw::c_char,
766}
767#[allow(clippy::unnecessary_operation, clippy::identity_op)]
768const _: () = {
769 ["Size of BNPluginVersion"][::std::mem::size_of::<BNPluginVersion>() - 64usize];
770 ["Alignment of BNPluginVersion"][::std::mem::align_of::<BNPluginVersion>() - 8usize];
771 ["Offset of field: BNPluginVersion::id"][::std::mem::offset_of!(BNPluginVersion, id) - 0usize];
772 ["Offset of field: BNPluginVersion::versionString"]
773 [::std::mem::offset_of!(BNPluginVersion, versionString) - 8usize];
774 ["Offset of field: BNPluginVersion::longDescription"]
775 [::std::mem::offset_of!(BNPluginVersion, longDescription) - 16usize];
776 ["Offset of field: BNPluginVersion::changelog"]
777 [::std::mem::offset_of!(BNPluginVersion, changelog) - 24usize];
778 ["Offset of field: BNPluginVersion::minimumClientVersion"]
779 [::std::mem::offset_of!(BNPluginVersion, minimumClientVersion) - 32usize];
780 ["Offset of field: BNPluginVersion::platforms"]
781 [::std::mem::offset_of!(BNPluginVersion, platforms) - 40usize];
782 ["Offset of field: BNPluginVersion::platformCount"]
783 [::std::mem::offset_of!(BNPluginVersion, platformCount) - 48usize];
784 ["Offset of field: BNPluginVersion::created"]
785 [::std::mem::offset_of!(BNPluginVersion, created) - 56usize];
786};
787impl Default for BNPluginVersion {
788 fn default() -> Self {
789 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
790 unsafe {
791 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
792 s.assume_init()
793 }
794 }
795}
796#[repr(C)]
797#[derive(Debug, Copy, Clone)]
798pub struct BNRemoteFileSearchMatch {
799 pub projectId: *mut ::std::os::raw::c_char,
800 pub projectName: *mut ::std::os::raw::c_char,
801 pub fileId: *mut ::std::os::raw::c_char,
802 pub fileName: *mut ::std::os::raw::c_char,
803}
804#[allow(clippy::unnecessary_operation, clippy::identity_op)]
805const _: () = {
806 ["Size of BNRemoteFileSearchMatch"][::std::mem::size_of::<BNRemoteFileSearchMatch>() - 32usize];
807 ["Alignment of BNRemoteFileSearchMatch"]
808 [::std::mem::align_of::<BNRemoteFileSearchMatch>() - 8usize];
809 ["Offset of field: BNRemoteFileSearchMatch::projectId"]
810 [::std::mem::offset_of!(BNRemoteFileSearchMatch, projectId) - 0usize];
811 ["Offset of field: BNRemoteFileSearchMatch::projectName"]
812 [::std::mem::offset_of!(BNRemoteFileSearchMatch, projectName) - 8usize];
813 ["Offset of field: BNRemoteFileSearchMatch::fileId"]
814 [::std::mem::offset_of!(BNRemoteFileSearchMatch, fileId) - 16usize];
815 ["Offset of field: BNRemoteFileSearchMatch::fileName"]
816 [::std::mem::offset_of!(BNRemoteFileSearchMatch, fileName) - 24usize];
817};
818impl Default for BNRemoteFileSearchMatch {
819 fn default() -> Self {
820 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
821 unsafe {
822 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
823 s.assume_init()
824 }
825 }
826}
827pub type BNProgressFunction = ::std::option::Option<
828 unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void, arg2: usize, arg3: usize) -> bool,
829>;
830#[repr(u8)]
831#[doc = "! Console log levels"]
832#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
833pub enum BNLogLevel {
834 DebugLog = 0,
835 #[doc = "! Debug logging level, most verbose logging level"]
836 InfoLog = 1,
837 #[doc = "! Information logging level, default logging level"]
838 WarningLog = 2,
839 #[doc = "! Warning logging level, messages show with warning icon in the UI"]
840 ErrorLog = 3,
841 #[doc = "! Error logging level, messages show with error icon in the UI"]
842 AlertLog = 4,
843}
844#[repr(u8)]
845#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
846pub enum BNEndianness {
847 LittleEndian = 0,
848 BigEndian = 1,
849}
850#[repr(u8)]
851#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
852pub enum BNModificationStatus {
853 Original = 0,
854 Changed = 1,
855 Inserted = 2,
856}
857#[repr(u16)]
858#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
859pub enum BNTransformType {
860 #[doc = " Two-way transform of data, binary input/output"]
861 BinaryCodecTransform = 0,
862 #[doc = " Two-way transform of data, encoder output is text"]
863 TextCodecTransform = 1,
864 #[doc = " Two-way transform of data, encoder output is Unicode string (as UTF8)"]
865 UnicodeCodecTransform = 2,
866 #[doc = " One-way decode only"]
867 DecodeTransform = 3,
868 #[doc = " One-way encode only, output is binary"]
869 BinaryEncodeTransform = 4,
870 #[doc = " One-way encode only, output is text"]
871 TextEncodeTransform = 5,
872 #[doc = " Two-way encryption"]
873 EncryptTransform = 6,
874 #[doc = " Transform that can be undone by performing twice"]
875 InvertingTransform = 7,
876 #[doc = " Hash function"]
877 HashTransform = 8,
878}
879#[repr(u8)]
880#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
881pub enum BNTransformSessionMode {
882 #[doc = " Open the root file as-is (no unwrapping)"]
883 TransformSessionModeDisabled = 0,
884 #[doc = " Discover all paths (build the full context tree)"]
885 TransformSessionModeFull = 1,
886 #[doc = " Interactively request selection at each level of the container hierarchy"]
887 TransformSessionModeInteractive = 2,
888}
889#[repr(u8)]
890#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
891pub enum BNTransformResult {
892 TransformSuccess = 0,
893 TransformNotAttempted = 1,
894 TransformFailure = 2,
895 TransformRequiresPassword = 3,
896}
897#[repr(u8)]
898#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
899pub enum BNBranchType {
900 UnconditionalBranch = 0,
901 FalseBranch = 1,
902 TrueBranch = 2,
903 CallDestination = 3,
904 FunctionReturn = 4,
905 SystemCall = 5,
906 IndirectBranch = 6,
907 ExceptionBranch = 7,
908 UnresolvedBranch = 127,
909 UserDefinedBranch = 128,
910}
911#[repr(u8)]
912#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
913pub enum BNInstructionTextTokenType {
914 TextToken = 0,
915 InstructionToken = 1,
916 OperandSeparatorToken = 2,
917 RegisterToken = 3,
918 IntegerToken = 4,
919 PossibleAddressToken = 5,
920 BeginMemoryOperandToken = 6,
921 EndMemoryOperandToken = 7,
922 FloatingPointToken = 8,
923 AnnotationToken = 9,
924 CodeRelativeAddressToken = 10,
925 ArgumentNameToken = 11,
926 HexDumpByteValueToken = 12,
927 HexDumpSkippedByteToken = 13,
928 HexDumpInvalidByteToken = 14,
929 HexDumpTextToken = 15,
930 OpcodeToken = 16,
931 StringToken = 17,
932 CharacterConstantToken = 18,
933 KeywordToken = 19,
934 TypeNameToken = 20,
935 FieldNameToken = 21,
936 NameSpaceToken = 22,
937 NameSpaceSeparatorToken = 23,
938 TagToken = 24,
939 StructOffsetToken = 25,
940 StructOffsetByteValueToken = 26,
941 StructureHexDumpTextToken = 27,
942 GotoLabelToken = 28,
943 CommentToken = 29,
944 PossibleValueToken = 30,
945 PossibleValueTypeToken = 31,
946 ArrayIndexToken = 32,
947 IndentationToken = 33,
948 UnknownMemoryToken = 34,
949 EnumerationMemberToken = 35,
950 OperationToken = 36,
951 BaseStructureNameToken = 37,
952 BaseStructureSeparatorToken = 38,
953 BraceToken = 39,
954 ValueLocationToken = 40,
955 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
956 CodeSymbolToken = 64,
957 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
958 DataSymbolToken = 65,
959 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
960 LocalVariableToken = 66,
961 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
962 ImportToken = 67,
963 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
964 AddressDisplayToken = 68,
965 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
966 IndirectImportToken = 69,
967 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
968 ExternalSymbolToken = 70,
969 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
970 StackVariableToken = 71,
971 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
972 AddressSeparatorToken = 72,
973 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
974 CollapsedInformationToken = 73,
975 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
976 CollapseStateIndicatorToken = 74,
977 #[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
978 NewLineToken = 75,
979}
980#[repr(u8)]
981#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
982pub enum BNInstructionTextTokenContext {
983 NoTokenContext = 0,
984 LocalVariableTokenContext = 1,
985 DataVariableTokenContext = 2,
986 FunctionReturnTokenContext = 3,
987 InstructionAddressTokenContext = 4,
988 ILInstructionIndexTokenContext = 5,
989 #[doc = " For Const Data arrays"]
990 ConstDataTokenContext = 6,
991 #[doc = " For ConstData strings"]
992 ConstStringDataTokenContext = 7,
993 #[doc = " For References to strings"]
994 StringReferenceTokenContext = 8,
995 #[doc = " For String DataVariables"]
996 StringDataVariableTokenContext = 9,
997 #[doc = " For displaying strings which aren't associated with an address"]
998 StringDisplayTokenContext = 10,
999 ContentCollapsedContext = 11,
1000 ContentExpandedContext = 12,
1001 ContentCollapsiblePadding = 13,
1002 DerivedStringReferenceTokenContext = 14,
1003}
1004#[repr(u8)]
1005#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1006pub enum BNLinearDisassemblyLineType {
1007 BlankLineType = 0,
1008 BasicLineType = 1,
1009 CodeDisassemblyLineType = 2,
1010 DataVariableLineType = 3,
1011 HexDumpLineType = 4,
1012 FunctionHeaderLineType = 5,
1013 FunctionHeaderStartLineType = 6,
1014 FunctionHeaderEndLineType = 7,
1015 FunctionContinuationLineType = 8,
1016 LocalVariableLineType = 9,
1017 LocalVariableListEndLineType = 10,
1018 FunctionEndLineType = 11,
1019 NoteStartLineType = 12,
1020 NoteLineType = 13,
1021 NoteEndLineType = 14,
1022 SectionStartLineType = 15,
1023 SectionEndLineType = 16,
1024 SectionSeparatorLineType = 17,
1025 NonContiguousSeparatorLineType = 18,
1026 AnalysisWarningLineType = 19,
1027 CollapsedFunctionEndLineType = 20,
1028}
1029#[repr(u8)]
1030#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1031pub enum BNTokenEscapingType {
1032 NoTokenEscapingType = 0,
1033 BackticksTokenEscapingType = 1,
1034 QuotedStringEscapingType = 2,
1035 ReplaceInvalidCharsEscapingType = 3,
1036}
1037#[repr(u8)]
1038#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1039pub enum BNSymbolType {
1040 FunctionSymbol = 0,
1041 ImportAddressSymbol = 1,
1042 ImportedFunctionSymbol = 2,
1043 DataSymbol = 3,
1044 ImportedDataSymbol = 4,
1045 ExternalSymbol = 5,
1046 LibraryFunctionSymbol = 6,
1047 SymbolicFunctionSymbol = 7,
1048 LocalLabelSymbol = 8,
1049}
1050#[repr(u8)]
1051#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1052pub enum BNSymbolBinding {
1053 NoBinding = 0,
1054 LocalBinding = 1,
1055 GlobalBinding = 2,
1056 WeakBinding = 3,
1057}
1058#[repr(u8)]
1059#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1060pub enum BNLowLevelILOperation {
1061 LLIL_NOP = 0,
1062 #[doc = " Not valid in SSA form (see LLIL_SET_REG_SSA)"]
1063 LLIL_SET_REG = 1,
1064 #[doc = " Not valid in SSA form (see LLIL_SET_REG_SPLIT_SSA)"]
1065 LLIL_SET_REG_SPLIT = 2,
1066 #[doc = " Not valid in SSA form (see LLIL_SET_FLAG_SSA)"]
1067 LLIL_SET_FLAG = 3,
1068 #[doc = " Not valid in SSA form (see LLIL_SET_REG_STACK_REL_SSA)"]
1069 LLIL_SET_REG_STACK_REL = 4,
1070 #[doc = " Not valid in SSA form (expanded)"]
1071 LLIL_REG_STACK_PUSH = 5,
1072 LLIL_ASSERT = 6,
1073 LLIL_FORCE_VER = 7,
1074 #[doc = " Not valid in SSA form (see LLIL_LOAD_SSA)"]
1075 LLIL_LOAD = 8,
1076 #[doc = " Not valid in SSA form (see LLIL_STORE_SSA)"]
1077 LLIL_STORE = 9,
1078 #[doc = " Not valid in SSA form (expanded)"]
1079 LLIL_PUSH = 10,
1080 #[doc = " Not valid in SSA form (expanded)"]
1081 LLIL_POP = 11,
1082 #[doc = " Not valid in SSA form (see LLIL_REG_SSA)"]
1083 LLIL_REG = 12,
1084 #[doc = " Not valid in SSA form (see LLIL_REG_SPLIT_SSA)"]
1085 LLIL_REG_SPLIT = 13,
1086 #[doc = " Not valid in SSA form (see LLIL_REG_STACK_REL_SSA)"]
1087 LLIL_REG_STACK_REL = 14,
1088 #[doc = " Not valid in SSA form (expanded)"]
1089 LLIL_REG_STACK_POP = 15,
1090 #[doc = " Not valid in SSA form (see LLIL_REG_STACK_FREE_REL_SSA,\n LLIL_REG_STACK_FREE_ABS_SSA)"]
1091 LLIL_REG_STACK_FREE_REG = 16,
1092 #[doc = " Not valid in SSA from (see LLIL_REG_STACK_FREE_REL_SSA)"]
1093 LLIL_REG_STACK_FREE_REL = 17,
1094 LLIL_CONST = 18,
1095 LLIL_CONST_PTR = 19,
1096 LLIL_EXTERN_PTR = 20,
1097 LLIL_FLOAT_CONST = 21,
1098 #[doc = " Not valid in SSA form (see LLIL_FLAG_SSA)"]
1099 LLIL_FLAG = 22,
1100 #[doc = " Not valid in SSA form (see LLIL_FLAG_BIT_SSA)"]
1101 LLIL_FLAG_BIT = 23,
1102 LLIL_ADD = 24,
1103 LLIL_ADC = 25,
1104 LLIL_SUB = 26,
1105 LLIL_SBB = 27,
1106 LLIL_AND = 28,
1107 LLIL_OR = 29,
1108 LLIL_XOR = 30,
1109 LLIL_LSL = 31,
1110 LLIL_LSR = 32,
1111 LLIL_ASR = 33,
1112 LLIL_ROL = 34,
1113 LLIL_RLC = 35,
1114 LLIL_ROR = 36,
1115 LLIL_RRC = 37,
1116 LLIL_MUL = 38,
1117 LLIL_MULU_DP = 39,
1118 LLIL_MULS_DP = 40,
1119 LLIL_DIVU = 41,
1120 LLIL_DIVU_DP = 42,
1121 LLIL_DIVS = 43,
1122 LLIL_DIVS_DP = 44,
1123 LLIL_MODU = 45,
1124 LLIL_MODU_DP = 46,
1125 LLIL_MODS = 47,
1126 LLIL_MODS_DP = 48,
1127 LLIL_NEG = 49,
1128 LLIL_NOT = 50,
1129 LLIL_SX = 51,
1130 LLIL_ZX = 52,
1131 LLIL_LOW_PART = 53,
1132 LLIL_JUMP = 54,
1133 LLIL_JUMP_TO = 55,
1134 LLIL_CALL = 56,
1135 LLIL_CALL_STACK_ADJUST = 57,
1136 LLIL_TAILCALL = 58,
1137 LLIL_RET = 59,
1138 LLIL_NORET = 60,
1139 LLIL_IF = 61,
1140 LLIL_GOTO = 62,
1141 #[doc = " Valid only in Lifted IL"]
1142 LLIL_FLAG_COND = 63,
1143 #[doc = " Valid only in Lifted IL"]
1144 LLIL_FLAG_GROUP = 64,
1145 LLIL_CMP_E = 65,
1146 LLIL_CMP_NE = 66,
1147 LLIL_CMP_SLT = 67,
1148 LLIL_CMP_ULT = 68,
1149 LLIL_CMP_SLE = 69,
1150 LLIL_CMP_ULE = 70,
1151 LLIL_CMP_SGE = 71,
1152 LLIL_CMP_UGE = 72,
1153 LLIL_CMP_SGT = 73,
1154 LLIL_CMP_UGT = 74,
1155 LLIL_TEST_BIT = 75,
1156 LLIL_BOOL_TO_INT = 76,
1157 LLIL_ADD_OVERFLOW = 77,
1158 LLIL_SYSCALL = 78,
1159 LLIL_BP = 79,
1160 LLIL_TRAP = 80,
1161 LLIL_INTRINSIC = 81,
1162 LLIL_UNDEF = 82,
1163 LLIL_UNIMPL = 83,
1164 LLIL_UNIMPL_MEM = 84,
1165 #[doc = " Floating point"]
1166 LLIL_FADD = 85,
1167 #[doc = " Floating point"]
1168 LLIL_FSUB = 86,
1169 #[doc = " Floating point"]
1170 LLIL_FMUL = 87,
1171 #[doc = " Floating point"]
1172 LLIL_FDIV = 88,
1173 #[doc = " Floating point"]
1174 LLIL_FSQRT = 89,
1175 #[doc = " Floating point"]
1176 LLIL_FNEG = 90,
1177 #[doc = " Floating point"]
1178 LLIL_FABS = 91,
1179 #[doc = " Floating point"]
1180 LLIL_FLOAT_TO_INT = 92,
1181 #[doc = " Floating point"]
1182 LLIL_INT_TO_FLOAT = 93,
1183 #[doc = " Floating point"]
1184 LLIL_FLOAT_CONV = 94,
1185 #[doc = " Floating point"]
1186 LLIL_ROUND_TO_INT = 95,
1187 #[doc = " Floating point"]
1188 LLIL_FLOOR = 96,
1189 #[doc = " Floating point"]
1190 LLIL_CEIL = 97,
1191 #[doc = " Floating point"]
1192 LLIL_FTRUNC = 98,
1193 #[doc = " Floating point"]
1194 LLIL_FCMP_E = 99,
1195 #[doc = " Floating point"]
1196 LLIL_FCMP_NE = 100,
1197 #[doc = " Floating point"]
1198 LLIL_FCMP_LT = 101,
1199 #[doc = " Floating point"]
1200 LLIL_FCMP_LE = 102,
1201 #[doc = " Floating point"]
1202 LLIL_FCMP_GE = 103,
1203 #[doc = " Floating point"]
1204 LLIL_FCMP_GT = 104,
1205 #[doc = " Floating point"]
1206 LLIL_FCMP_O = 105,
1207 #[doc = " Floating point"]
1208 LLIL_FCMP_UO = 106,
1209 #[doc = " The following instructions are only used in SSA form"]
1210 LLIL_SET_REG_SSA = 107,
1211 #[doc = " The following instructions are only used in SSA form"]
1212 LLIL_SET_REG_SSA_PARTIAL = 108,
1213 #[doc = " The following instructions are only used in SSA form"]
1214 LLIL_SET_REG_SPLIT_SSA = 109,
1215 #[doc = " The following instructions are only used in SSA form"]
1216 LLIL_SET_REG_STACK_REL_SSA = 110,
1217 #[doc = " The following instructions are only used in SSA form"]
1218 LLIL_SET_REG_STACK_ABS_SSA = 111,
1219 #[doc = " Only valid within an LLIL_SET_REG_SPLIT_SSA instruction"]
1220 LLIL_REG_SPLIT_DEST_SSA = 112,
1221 #[doc = " Only valid within LLIL_SET_REG_STACK_REL_SSA or LLIL_SET_REG_STACK_ABS_SSA"]
1222 LLIL_REG_STACK_DEST_SSA = 113,
1223 LLIL_REG_SSA = 114,
1224 LLIL_REG_SSA_PARTIAL = 115,
1225 LLIL_REG_SPLIT_SSA = 116,
1226 LLIL_REG_STACK_REL_SSA = 117,
1227 LLIL_REG_STACK_ABS_SSA = 118,
1228 LLIL_REG_STACK_FREE_REL_SSA = 119,
1229 LLIL_REG_STACK_FREE_ABS_SSA = 120,
1230 LLIL_SET_FLAG_SSA = 121,
1231 LLIL_ASSERT_SSA = 122,
1232 LLIL_FORCE_VER_SSA = 123,
1233 LLIL_FLAG_SSA = 124,
1234 LLIL_FLAG_BIT_SSA = 125,
1235 LLIL_CALL_SSA = 126,
1236 LLIL_SYSCALL_SSA = 127,
1237 LLIL_TAILCALL_SSA = 128,
1238 #[doc = " Only valid within the LLIL_CALL_SSA, LLIL_SYSCALL_SSA, LLIL_INTRINSIC, LLIL_INTRINSIC_SSA,\n LLIL_MEMORY_INTRINSIC_SSA, LLIL_TAILCALL, LLIL_TAILCALL_SSA instructions"]
1239 LLIL_CALL_PARAM = 129,
1240 #[doc = " Only valid within the LLIL_CALL_SSA or LLIL_SYSCALL_SSA instructions"]
1241 LLIL_CALL_STACK_SSA = 130,
1242 #[doc = " Only valid within the LLIL_CALL_SSA or LLIL_SYSCALL_SSA instructions"]
1243 LLIL_CALL_OUTPUT_SSA = 131,
1244 #[doc = " Only valid within the LLIL_CALL_PARAM instruction"]
1245 LLIL_SEPARATE_PARAM_LIST_SSA = 132,
1246 #[doc = " Only valid within the LLIL_CALL_PARAM or LLIL_SEPARATE_PARAM_LIST_SSA instructions"]
1247 LLIL_SHARED_PARAM_SLOT_SSA = 133,
1248 #[doc = " Only valid within the LLIL_MEMORY_INTRINSIC_SSA instruction"]
1249 LLIL_MEMORY_INTRINSIC_OUTPUT_SSA = 134,
1250 LLIL_LOAD_SSA = 135,
1251 LLIL_STORE_SSA = 136,
1252 LLIL_INTRINSIC_SSA = 137,
1253 LLIL_MEMORY_INTRINSIC_SSA = 138,
1254 LLIL_REG_PHI = 139,
1255 LLIL_REG_STACK_PHI = 140,
1256 LLIL_FLAG_PHI = 141,
1257 LLIL_MEM_PHI = 142,
1258 #[doc = " Reverse byte order of the whole value"]
1259 LLIL_BSWAP = 143,
1260 #[doc = " Population count (number of set bits)"]
1261 LLIL_POPCNT = 144,
1262 #[doc = " Count leading zero bits; clz(0) == 8 * size"]
1263 LLIL_CLZ = 145,
1264 #[doc = " Count trailing zero bits; ctz(0) == 8 * size"]
1265 LLIL_CTZ = 146,
1266 #[doc = " Reverse bit order of the whole value"]
1267 LLIL_RBIT = 147,
1268 #[doc = " Count leading sign bits; number of bits below the sign bit that match it"]
1269 LLIL_CLS = 148,
1270 #[doc = " Signed minimum of left and right"]
1271 LLIL_MINS = 149,
1272 #[doc = " Signed maximum of left and right"]
1273 LLIL_MAXS = 150,
1274 #[doc = " Unsigned minimum of left and right"]
1275 LLIL_MINU = 151,
1276 #[doc = " Unsigned maximum of left and right"]
1277 LLIL_MAXU = 152,
1278 #[doc = " Signed absolute value of src; abs(INT_MIN) == INT_MIN"]
1279 LLIL_ABS = 153,
1280}
1281#[repr(u8)]
1282#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1283pub enum BNLowLevelILFlagCondition {
1284 LLFC_E = 0,
1285 LLFC_NE = 1,
1286 LLFC_SLT = 2,
1287 LLFC_ULT = 3,
1288 LLFC_SLE = 4,
1289 LLFC_ULE = 5,
1290 LLFC_SGE = 6,
1291 LLFC_UGE = 7,
1292 LLFC_SGT = 8,
1293 LLFC_UGT = 9,
1294 LLFC_NEG = 10,
1295 LLFC_POS = 11,
1296 LLFC_O = 12,
1297 LLFC_NO = 13,
1298 LLFC_FE = 14,
1299 LLFC_FNE = 15,
1300 LLFC_FLT = 16,
1301 LLFC_FLE = 17,
1302 LLFC_FGE = 18,
1303 LLFC_FGT = 19,
1304 LLFC_FO = 20,
1305 LLFC_FUO = 21,
1306}
1307#[repr(u8)]
1308#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1309pub enum BNFlagRole {
1310 SpecialFlagRole = 0,
1311 ZeroFlagRole = 1,
1312 PositiveSignFlagRole = 2,
1313 NegativeSignFlagRole = 3,
1314 CarryFlagRole = 4,
1315 OverflowFlagRole = 5,
1316 HalfCarryFlagRole = 6,
1317 EvenParityFlagRole = 7,
1318 OddParityFlagRole = 8,
1319 OrderedFlagRole = 9,
1320 UnorderedFlagRole = 10,
1321 CarryFlagWithInvertedSubtractRole = 11,
1322}
1323#[repr(i8)]
1324#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1325pub enum BNFunctionGraphType {
1326 InvalidILViewType = -1,
1327 NormalFunctionGraph = 0,
1328 LowLevelILFunctionGraph = 1,
1329 LiftedILFunctionGraph = 2,
1330 LowLevelILSSAFormFunctionGraph = 3,
1331 MediumLevelILFunctionGraph = 4,
1332 MediumLevelILSSAFormFunctionGraph = 5,
1333 MappedMediumLevelILFunctionGraph = 6,
1334 MappedMediumLevelILSSAFormFunctionGraph = 7,
1335 HighLevelILFunctionGraph = 8,
1336 HighLevelILSSAFormFunctionGraph = 9,
1337 HighLevelLanguageRepresentationFunctionGraph = 10,
1338}
1339#[repr(C)]
1340#[derive(Debug, Copy, Clone)]
1341pub struct BNFunctionViewType {
1342 pub type_: BNFunctionGraphType,
1343 #[doc = " Only used for HighLevelLanguageRepresentationFunctionGraph"]
1344 pub name: *const ::std::os::raw::c_char,
1345}
1346#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1347const _: () = {
1348 ["Size of BNFunctionViewType"][::std::mem::size_of::<BNFunctionViewType>() - 16usize];
1349 ["Alignment of BNFunctionViewType"][::std::mem::align_of::<BNFunctionViewType>() - 8usize];
1350 ["Offset of field: BNFunctionViewType::type_"]
1351 [::std::mem::offset_of!(BNFunctionViewType, type_) - 0usize];
1352 ["Offset of field: BNFunctionViewType::name"]
1353 [::std::mem::offset_of!(BNFunctionViewType, name) - 8usize];
1354};
1355impl Default for BNFunctionViewType {
1356 fn default() -> Self {
1357 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1358 unsafe {
1359 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1360 s.assume_init()
1361 }
1362 }
1363}
1364#[repr(u8)]
1365#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1366pub enum BNDisassemblyOption {
1367 ShowAddress = 0,
1368 ShowOpcode = 1,
1369 ExpandLongOpcode = 2,
1370 ShowVariablesAtTopOfGraph = 3,
1371 ShowVariableTypesWhenAssigned = 4,
1372 ShowRegisterHighlight = 7,
1373 ShowFunctionAddress = 8,
1374 ShowFunctionHeader = 9,
1375 ShowTypeCasts = 10,
1376 #[doc = " Linear disassembly options"]
1377 GroupLinearDisassemblyFunctions = 64,
1378 #[doc = " Linear disassembly options"]
1379 HighLevelILLinearDisassembly = 65,
1380 #[doc = " Linear disassembly options"]
1381 WaitForIL = 66,
1382 #[doc = " Linear disassembly options"]
1383 IndentHLILBody = 67,
1384 #[doc = " Linear disassembly options"]
1385 DisableLineFormatting = 68,
1386 #[doc = " Debugging options"]
1387 ShowFlagUsage = 128,
1388 #[doc = " Debugging options"]
1389 ShowStackPointer = 129,
1390 #[doc = " Debugging options"]
1391 ShowILTypes = 130,
1392 #[doc = " Debugging options"]
1393 ShowILOpcodes = 131,
1394 #[doc = " Debugging options"]
1395 ShowCollapseIndicators = 132,
1396}
1397#[repr(u32)]
1398#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1399pub enum BNDisassemblyAddressMode {
1400 AbsoluteDisassemblyAddressMode = 0,
1401 RelativeToBinaryStartDisassemblyAddressMode = 1,
1402 RelativeToSegmentStartDisassemblyAddressMode = 2,
1403 RelativeToSectionStartDisassemblyAddressMode = 3,
1404 RelativeToFunctionStartDisassemblyAddressMode = 4,
1405 RelativeToAddressBaseOffsetDisassemblyAddressMode = 5,
1406 RelativeToDataStartDisassemblyAddressMode = 6,
1407 DisassemblyAddressModeMask = 65535,
1408 IncludeNameDisassemblyAddressModeFlag = 65536,
1409 DecimalDisassemblyAddressModeFlag = 131072,
1410 DisassemblyAddressModeFlagsMask = 4294901760,
1411}
1412#[repr(u8)]
1413#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1414pub enum BNDisassemblyCallParameterHints {
1415 NeverShowMatchingParameterHints = 0,
1416 AlwaysShowParameterHints = 1,
1417 NeverShowParameterHints = 2,
1418}
1419#[repr(u8)]
1420#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1421pub enum BNDisassemblyBlockLabels {
1422 NeverShowDefaultBlockLabels = 0,
1423 AlwaysShowBlockLabels = 1,
1424 NeverShowBlockLabels = 2,
1425}
1426#[repr(u8)]
1427#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1428pub enum BNTypeClass {
1429 VoidTypeClass = 0,
1430 BoolTypeClass = 1,
1431 IntegerTypeClass = 2,
1432 FloatTypeClass = 3,
1433 StructureTypeClass = 4,
1434 EnumerationTypeClass = 5,
1435 PointerTypeClass = 6,
1436 ArrayTypeClass = 7,
1437 FunctionTypeClass = 8,
1438 VarArgsTypeClass = 9,
1439 ValueTypeClass = 10,
1440 NamedTypeReferenceClass = 11,
1441 WideCharTypeClass = 12,
1442 FragmentTypeClass = 13,
1443}
1444#[repr(u8)]
1445#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1446pub enum BNNamedTypeReferenceClass {
1447 UnknownNamedTypeClass = 0,
1448 TypedefNamedTypeClass = 1,
1449 ClassNamedTypeClass = 2,
1450 StructNamedTypeClass = 3,
1451 UnionNamedTypeClass = 4,
1452 EnumNamedTypeClass = 5,
1453}
1454#[repr(u8)]
1455#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1456pub enum BNStructureVariant {
1457 ClassStructureType = 0,
1458 StructStructureType = 1,
1459 UnionStructureType = 2,
1460}
1461#[repr(u8)]
1462#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1463pub enum BNMemberScope {
1464 NoScope = 0,
1465 StaticScope = 1,
1466 VirtualScope = 2,
1467 ThunkScope = 3,
1468 FriendScope = 4,
1469}
1470#[repr(u8)]
1471#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1472pub enum BNMemberAccess {
1473 NoAccess = 0,
1474 PrivateAccess = 1,
1475 ProtectedAccess = 2,
1476 PublicAccess = 3,
1477}
1478#[repr(u8)]
1479#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1480pub enum BNReferenceType {
1481 PointerReferenceType = 0,
1482 ReferenceReferenceType = 1,
1483 RValueReferenceType = 2,
1484 NoReference = 3,
1485}
1486#[repr(u8)]
1487#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1488pub enum BNPointerSuffix {
1489 Ptr64Suffix = 0,
1490 UnalignedSuffix = 1,
1491 RestrictSuffix = 2,
1492 ReferenceSuffix = 3,
1493 LvalueSuffix = 4,
1494}
1495#[repr(u8)]
1496#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1497pub enum BNPointerBaseType {
1498 AbsolutePointerBaseType = 0,
1499 RelativeToConstantPointerBaseType = 1,
1500 RelativeToBinaryStartPointerBaseType = 2,
1501 RelativeToVariableAddressPointerBaseType = 3,
1502}
1503#[repr(u8)]
1504#[doc = " Caution: these enumeration values are used a lookups into the static NameTypeStrings in the core\n if you modify this you must also modify the string lookups as well"]
1505#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1506pub enum BNNameType {
1507 NoNameType = 0,
1508 ConstructorNameType = 1,
1509 DestructorNameType = 2,
1510 OperatorNewNameType = 3,
1511 OperatorDeleteNameType = 4,
1512 OperatorAssignNameType = 5,
1513 OperatorRightShiftNameType = 6,
1514 OperatorLeftShiftNameType = 7,
1515 OperatorNotNameType = 8,
1516 OperatorEqualNameType = 9,
1517 OperatorNotEqualNameType = 10,
1518 OperatorArrayNameType = 11,
1519 OperatorArrowNameType = 12,
1520 OperatorStarNameType = 13,
1521 OperatorIncrementNameType = 14,
1522 OperatorDecrementNameType = 15,
1523 OperatorMinusNameType = 16,
1524 OperatorPlusNameType = 17,
1525 OperatorBitAndNameType = 18,
1526 OperatorArrowStarNameType = 19,
1527 OperatorDivideNameType = 20,
1528 OperatorModulusNameType = 21,
1529 OperatorLessThanNameType = 22,
1530 OperatorLessThanEqualNameType = 23,
1531 OperatorGreaterThanNameType = 24,
1532 OperatorGreaterThanEqualNameType = 25,
1533 OperatorCommaNameType = 26,
1534 OperatorParenthesesNameType = 27,
1535 OperatorTildeNameType = 28,
1536 OperatorXorNameType = 29,
1537 OperatorBitOrNameType = 30,
1538 OperatorLogicalAndNameType = 31,
1539 OperatorLogicalOrNameType = 32,
1540 OperatorStarEqualNameType = 33,
1541 OperatorPlusEqualNameType = 34,
1542 OperatorMinusEqualNameType = 35,
1543 OperatorDivideEqualNameType = 36,
1544 OperatorModulusEqualNameType = 37,
1545 OperatorRightShiftEqualNameType = 38,
1546 OperatorLeftShiftEqualNameType = 39,
1547 OperatorAndEqualNameType = 40,
1548 OperatorOrEqualNameType = 41,
1549 OperatorXorEqualNameType = 42,
1550 VFTableNameType = 43,
1551 VBTableNameType = 44,
1552 VCallNameType = 45,
1553 TypeofNameType = 46,
1554 LocalStaticGuardNameType = 47,
1555 StringNameType = 48,
1556 VBaseDestructorNameType = 49,
1557 VectorDeletingDestructorNameType = 50,
1558 DefaultConstructorClosureNameType = 51,
1559 ScalarDeletingDestructorNameType = 52,
1560 VectorConstructorIteratorNameType = 53,
1561 VectorDestructorIteratorNameType = 54,
1562 VectorVBaseConstructorIteratorNameType = 55,
1563 VirtualDisplacementMapNameType = 56,
1564 EHVectorConstructorIteratorNameType = 57,
1565 EHVectorDestructorIteratorNameType = 58,
1566 EHVectorVBaseConstructorIteratorNameType = 59,
1567 CopyConstructorClosureNameType = 60,
1568 UDTReturningNameType = 61,
1569 LocalVFTableNameType = 62,
1570 LocalVFTableConstructorClosureNameType = 63,
1571 OperatorNewArrayNameType = 64,
1572 OperatorDeleteArrayNameType = 65,
1573 PlacementDeleteClosureNameType = 66,
1574 PlacementDeleteClosureArrayNameType = 67,
1575 OperatorReturnTypeNameType = 68,
1576 RttiTypeDescriptor = 69,
1577 RttiBaseClassDescriptor = 70,
1578 RttiBaseClassArray = 71,
1579 RttiClassHierarchyDescriptor = 72,
1580 RttiCompleteObjectLocator = 73,
1581 OperatorUnaryMinusNameType = 74,
1582 OperatorUnaryPlusNameType = 75,
1583 OperatorUnaryBitAndNameType = 76,
1584 OperatorUnaryStarNameType = 77,
1585 OmniCallSigNameType = 78,
1586 ManagedVectorConstructorIteratorNameType = 79,
1587 ManagedVectorDestructorIteratorNameType = 80,
1588 EHVectorCopyConstructorIteratorNameType = 81,
1589 EHVectorVBaseCopyConstructorIteratorNameType = 82,
1590 DynamicInitializerNameType = 83,
1591 DynamicAtExitDestructorNameType = 84,
1592 VectorCopyConstructorIteratorNameType = 85,
1593 VectorVBaseCopyConstructorIteratorNameType = 86,
1594 ManagedVectorCopyConstructorIteratorNameType = 87,
1595 LocalStaticThreadGuardNameType = 88,
1596 UserDefinedLiteralOperatorNameType = 89,
1597}
1598#[repr(u8)]
1599#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1600pub enum BNCallingConventionName {
1601 NoCallingConvention = 0,
1602 CdeclCallingConvention = 1,
1603 PascalCallingConvention = 2,
1604 ThisCallCallingConvention = 3,
1605 STDCallCallingConvention = 4,
1606 FastcallCallingConvention = 5,
1607 CLRCallCallingConvention = 6,
1608 EabiCallCallingConvention = 7,
1609 VectorCallCallingConvention = 8,
1610 SwiftCallingConvention = 9,
1611 SwiftAsyncCallingConvention = 10,
1612}
1613#[repr(u8)]
1614#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1615pub enum BNStringType {
1616 AsciiString = 0,
1617 Utf16String = 1,
1618 Utf32String = 2,
1619 Utf8String = 3,
1620}
1621#[repr(u8)]
1622#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1623pub enum BNIntegerDisplayType {
1624 DefaultIntegerDisplayType = 0,
1625 BinaryDisplayType = 1,
1626 SignedOctalDisplayType = 2,
1627 UnsignedOctalDisplayType = 3,
1628 SignedDecimalDisplayType = 4,
1629 UnsignedDecimalDisplayType = 5,
1630 SignedHexadecimalDisplayType = 6,
1631 UnsignedHexadecimalDisplayType = 7,
1632 CharacterConstantDisplayType = 8,
1633 PointerDisplayType = 9,
1634 FloatDisplayType = 10,
1635 DoubleDisplayType = 11,
1636 EnumerationDisplayType = 12,
1637 InvertedCharacterConstantDisplayType = 13,
1638 UnsignedComplementDecimalDisplayType = 14,
1639 UnsignedComplementHexadecimalDisplayType = 15,
1640}
1641#[repr(u8)]
1642#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1643pub enum BNFlowGraphOption {
1644 FlowGraphUsesBlockHighlights = 0,
1645 FlowGraphUsesInstructionHighlights = 1,
1646 FlowGraphIncludesUserComments = 2,
1647 FlowGraphAllowsPatching = 3,
1648 FlowGraphAllowsInlineInstructionEditing = 4,
1649 FlowGraphShowsSecondaryRegisterHighlighting = 5,
1650 FlowGraphIsAddressable = 6,
1651 FlowGraphIsWorkflowGraph = 7,
1652}
1653#[repr(u8)]
1654#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1655pub enum BNIntrinsicClass {
1656 GeneralIntrinsicClass = 0,
1657 MemoryIntrinsicClass = 1,
1658}
1659#[repr(u8)]
1660#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1661pub enum BNInlineDuringAnalysis {
1662 #[doc = " The called function should not be inlined."]
1663 DoNotInlineCall = 0,
1664 #[doc = " The called function should be inlined, with the inlined\n instructions preserving their original addresses.\n This was the only behavior available up through Binary Ninja 5.2."]
1665 InlinePreservingTargetInstructionAddresses = 1,
1666 #[doc = " The called function should be inlined, with the inlined\n instructions using the call site address as their address.\n This ensures that when the function is inlined into a caller\n multiple times, each occurrence can have different adjustments\n applied to it. The trade-off is that the instructions inlined\n at a given call site have the same address, which in turn\n prevents applying adjustments that depend on instruction\n address to only a subset of those instructions."]
1667 InlineUsingCallAddress = 2,
1668}
1669#[repr(C)]
1670#[derive(Debug, Copy, Clone)]
1671pub struct BNInlineDuringAnalysisWithConfidence {
1672 pub value: BNInlineDuringAnalysis,
1673 pub confidence: u8,
1674}
1675#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1676const _: () = {
1677 ["Size of BNInlineDuringAnalysisWithConfidence"]
1678 [::std::mem::size_of::<BNInlineDuringAnalysisWithConfidence>() - 2usize];
1679 ["Alignment of BNInlineDuringAnalysisWithConfidence"]
1680 [::std::mem::align_of::<BNInlineDuringAnalysisWithConfidence>() - 1usize];
1681 ["Offset of field: BNInlineDuringAnalysisWithConfidence::value"]
1682 [::std::mem::offset_of!(BNInlineDuringAnalysisWithConfidence, value) - 0usize];
1683 ["Offset of field: BNInlineDuringAnalysisWithConfidence::confidence"]
1684 [::std::mem::offset_of!(BNInlineDuringAnalysisWithConfidence, confidence) - 1usize];
1685};
1686impl Default for BNInlineDuringAnalysisWithConfidence {
1687 fn default() -> Self {
1688 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1689 unsafe {
1690 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1691 s.assume_init()
1692 }
1693 }
1694}
1695#[repr(C)]
1696#[derive(Debug, Copy, Clone)]
1697pub struct BNLowLevelILInstruction {
1698 pub operation: BNLowLevelILOperation,
1699 pub attributes: u32,
1700 pub size: usize,
1701 pub flags: u32,
1702 pub sourceOperand: u32,
1703 pub operands: [u64; 4usize],
1704 pub address: u64,
1705}
1706#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1707const _: () = {
1708 ["Size of BNLowLevelILInstruction"][::std::mem::size_of::<BNLowLevelILInstruction>() - 64usize];
1709 ["Alignment of BNLowLevelILInstruction"]
1710 [::std::mem::align_of::<BNLowLevelILInstruction>() - 8usize];
1711 ["Offset of field: BNLowLevelILInstruction::operation"]
1712 [::std::mem::offset_of!(BNLowLevelILInstruction, operation) - 0usize];
1713 ["Offset of field: BNLowLevelILInstruction::attributes"]
1714 [::std::mem::offset_of!(BNLowLevelILInstruction, attributes) - 4usize];
1715 ["Offset of field: BNLowLevelILInstruction::size"]
1716 [::std::mem::offset_of!(BNLowLevelILInstruction, size) - 8usize];
1717 ["Offset of field: BNLowLevelILInstruction::flags"]
1718 [::std::mem::offset_of!(BNLowLevelILInstruction, flags) - 16usize];
1719 ["Offset of field: BNLowLevelILInstruction::sourceOperand"]
1720 [::std::mem::offset_of!(BNLowLevelILInstruction, sourceOperand) - 20usize];
1721 ["Offset of field: BNLowLevelILInstruction::operands"]
1722 [::std::mem::offset_of!(BNLowLevelILInstruction, operands) - 24usize];
1723 ["Offset of field: BNLowLevelILInstruction::address"]
1724 [::std::mem::offset_of!(BNLowLevelILInstruction, address) - 56usize];
1725};
1726impl Default for BNLowLevelILInstruction {
1727 fn default() -> Self {
1728 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1729 unsafe {
1730 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1731 s.assume_init()
1732 }
1733 }
1734}
1735#[repr(C)]
1736#[derive(Debug, Default, Copy, Clone)]
1737pub struct BNLowLevelILLabel {
1738 pub resolved: bool,
1739 pub ref_: usize,
1740 pub operand: usize,
1741}
1742#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1743const _: () = {
1744 ["Size of BNLowLevelILLabel"][::std::mem::size_of::<BNLowLevelILLabel>() - 24usize];
1745 ["Alignment of BNLowLevelILLabel"][::std::mem::align_of::<BNLowLevelILLabel>() - 8usize];
1746 ["Offset of field: BNLowLevelILLabel::resolved"]
1747 [::std::mem::offset_of!(BNLowLevelILLabel, resolved) - 0usize];
1748 ["Offset of field: BNLowLevelILLabel::ref_"]
1749 [::std::mem::offset_of!(BNLowLevelILLabel, ref_) - 8usize];
1750 ["Offset of field: BNLowLevelILLabel::operand"]
1751 [::std::mem::offset_of!(BNLowLevelILLabel, operand) - 16usize];
1752};
1753#[repr(u8)]
1754#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1755pub enum BNImplicitRegisterExtend {
1756 NoExtend = 0,
1757 ZeroExtendToFullWidth = 1,
1758 SignExtendToFullWidth = 2,
1759}
1760#[repr(C)]
1761#[derive(Debug, Copy, Clone)]
1762pub struct BNRegisterInfo {
1763 pub fullWidthRegister: u32,
1764 pub offset: usize,
1765 pub size: usize,
1766 pub extend: BNImplicitRegisterExtend,
1767}
1768#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1769const _: () = {
1770 ["Size of BNRegisterInfo"][::std::mem::size_of::<BNRegisterInfo>() - 32usize];
1771 ["Alignment of BNRegisterInfo"][::std::mem::align_of::<BNRegisterInfo>() - 8usize];
1772 ["Offset of field: BNRegisterInfo::fullWidthRegister"]
1773 [::std::mem::offset_of!(BNRegisterInfo, fullWidthRegister) - 0usize];
1774 ["Offset of field: BNRegisterInfo::offset"]
1775 [::std::mem::offset_of!(BNRegisterInfo, offset) - 8usize];
1776 ["Offset of field: BNRegisterInfo::size"]
1777 [::std::mem::offset_of!(BNRegisterInfo, size) - 16usize];
1778 ["Offset of field: BNRegisterInfo::extend"]
1779 [::std::mem::offset_of!(BNRegisterInfo, extend) - 24usize];
1780};
1781impl Default for BNRegisterInfo {
1782 fn default() -> Self {
1783 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1784 unsafe {
1785 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1786 s.assume_init()
1787 }
1788 }
1789}
1790#[repr(C)]
1791#[derive(Debug, Default, Copy, Clone)]
1792pub struct BNRegisterStackInfo {
1793 pub firstStorageReg: u32,
1794 pub firstTopRelativeReg: u32,
1795 pub storageCount: u32,
1796 pub topRelativeCount: u32,
1797 pub stackTopReg: u32,
1798}
1799#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1800const _: () = {
1801 ["Size of BNRegisterStackInfo"][::std::mem::size_of::<BNRegisterStackInfo>() - 20usize];
1802 ["Alignment of BNRegisterStackInfo"][::std::mem::align_of::<BNRegisterStackInfo>() - 4usize];
1803 ["Offset of field: BNRegisterStackInfo::firstStorageReg"]
1804 [::std::mem::offset_of!(BNRegisterStackInfo, firstStorageReg) - 0usize];
1805 ["Offset of field: BNRegisterStackInfo::firstTopRelativeReg"]
1806 [::std::mem::offset_of!(BNRegisterStackInfo, firstTopRelativeReg) - 4usize];
1807 ["Offset of field: BNRegisterStackInfo::storageCount"]
1808 [::std::mem::offset_of!(BNRegisterStackInfo, storageCount) - 8usize];
1809 ["Offset of field: BNRegisterStackInfo::topRelativeCount"]
1810 [::std::mem::offset_of!(BNRegisterStackInfo, topRelativeCount) - 12usize];
1811 ["Offset of field: BNRegisterStackInfo::stackTopReg"]
1812 [::std::mem::offset_of!(BNRegisterStackInfo, stackTopReg) - 16usize];
1813};
1814#[repr(u32)]
1815#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1816pub enum BNRegisterValueType {
1817 UndeterminedValue = 0,
1818 EntryValue = 1,
1819 ConstantValue = 2,
1820 ConstantPointerValue = 3,
1821 ExternalPointerValue = 4,
1822 StackFrameOffset = 5,
1823 ReturnAddressValue = 6,
1824 ImportedAddressValue = 7,
1825 ResultPointerValue = 8,
1826 ParameterPointerValue = 9,
1827 #[doc = " The following are only valid in BNPossibleValueSet"]
1828 SignedRangeValue = 10,
1829 #[doc = " The following are only valid in BNPossibleValueSet"]
1830 UnsignedRangeValue = 11,
1831 #[doc = " The following are only valid in BNPossibleValueSet"]
1832 LookupTableValue = 12,
1833 #[doc = " The following are only valid in BNPossibleValueSet"]
1834 InSetOfValues = 13,
1835 #[doc = " The following are only valid in BNPossibleValueSet"]
1836 NotInSetOfValues = 14,
1837 #[doc = " The following support constant data and values larger than 8 bytes"]
1838 ConstantDataValue = 32768,
1839 #[doc = " The following support constant data and values larger than 8 bytes"]
1840 ConstantDataZeroExtendValue = 32769,
1841 #[doc = " The following support constant data and values larger than 8 bytes"]
1842 ConstantDataSignExtendValue = 32770,
1843 #[doc = " The following support constant data and values larger than 8 bytes"]
1844 ConstantDataAggregateValue = 32771,
1845}
1846#[repr(u8)]
1847#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1848pub enum BNDataFlowQueryOption {
1849 #[doc = " Use addresses instead of index in the from list within\n LookupTableValue results"]
1850 FromAddressesInLookupTableQueryOption = 0,
1851 AllowReadingWritableMemoryQueryOption = 1,
1852}
1853#[repr(u32)]
1854#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1855pub enum BNPluginStatus {
1856 NotInstalledPluginStatus = 0,
1857 InstalledPluginStatus = 1,
1858 EnabledPluginStatus = 2,
1859 UpdateAvailablePluginStatus = 16,
1860 DeletePendingPluginStatus = 32,
1861 UpdatePendingPluginStatus = 64,
1862 DisablePendingPluginStatus = 128,
1863 PendingRestartPluginStatus = 512,
1864 BeingUpdatedPluginStatus = 1024,
1865 BeingDeletedPluginStatus = 2048,
1866 DependenciesBeingInstalledStatus = 4096,
1867}
1868#[repr(u8)]
1869#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1870pub enum BNPluginType {
1871 CorePluginType = 0,
1872 UiPluginType = 1,
1873 ArchitecturePluginType = 2,
1874 BinaryViewPluginType = 3,
1875 HelperPluginType = 4,
1876 SyncPluginType = 5,
1877}
1878#[repr(C)]
1879#[derive(Debug, Copy, Clone)]
1880pub struct BNLookupTableEntry {
1881 pub fromValues: *mut i64,
1882 pub fromCount: usize,
1883 pub toValue: i64,
1884}
1885#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1886const _: () = {
1887 ["Size of BNLookupTableEntry"][::std::mem::size_of::<BNLookupTableEntry>() - 24usize];
1888 ["Alignment of BNLookupTableEntry"][::std::mem::align_of::<BNLookupTableEntry>() - 8usize];
1889 ["Offset of field: BNLookupTableEntry::fromValues"]
1890 [::std::mem::offset_of!(BNLookupTableEntry, fromValues) - 0usize];
1891 ["Offset of field: BNLookupTableEntry::fromCount"]
1892 [::std::mem::offset_of!(BNLookupTableEntry, fromCount) - 8usize];
1893 ["Offset of field: BNLookupTableEntry::toValue"]
1894 [::std::mem::offset_of!(BNLookupTableEntry, toValue) - 16usize];
1895};
1896impl Default for BNLookupTableEntry {
1897 fn default() -> Self {
1898 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1899 unsafe {
1900 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1901 s.assume_init()
1902 }
1903 }
1904}
1905#[repr(C)]
1906#[derive(Debug, Copy, Clone)]
1907pub struct BNRegisterValue {
1908 pub state: BNRegisterValueType,
1909 pub value: i64,
1910 pub offset: i64,
1911 pub size: usize,
1912}
1913#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1914const _: () = {
1915 ["Size of BNRegisterValue"][::std::mem::size_of::<BNRegisterValue>() - 32usize];
1916 ["Alignment of BNRegisterValue"][::std::mem::align_of::<BNRegisterValue>() - 8usize];
1917 ["Offset of field: BNRegisterValue::state"]
1918 [::std::mem::offset_of!(BNRegisterValue, state) - 0usize];
1919 ["Offset of field: BNRegisterValue::value"]
1920 [::std::mem::offset_of!(BNRegisterValue, value) - 8usize];
1921 ["Offset of field: BNRegisterValue::offset"]
1922 [::std::mem::offset_of!(BNRegisterValue, offset) - 16usize];
1923 ["Offset of field: BNRegisterValue::size"]
1924 [::std::mem::offset_of!(BNRegisterValue, size) - 24usize];
1925};
1926impl Default for BNRegisterValue {
1927 fn default() -> Self {
1928 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1929 unsafe {
1930 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1931 s.assume_init()
1932 }
1933 }
1934}
1935#[repr(C)]
1936#[derive(Debug, Copy, Clone)]
1937pub struct BNRegisterValueWithConfidence {
1938 pub value: BNRegisterValue,
1939 pub confidence: u8,
1940}
1941#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1942const _: () = {
1943 ["Size of BNRegisterValueWithConfidence"]
1944 [::std::mem::size_of::<BNRegisterValueWithConfidence>() - 40usize];
1945 ["Alignment of BNRegisterValueWithConfidence"]
1946 [::std::mem::align_of::<BNRegisterValueWithConfidence>() - 8usize];
1947 ["Offset of field: BNRegisterValueWithConfidence::value"]
1948 [::std::mem::offset_of!(BNRegisterValueWithConfidence, value) - 0usize];
1949 ["Offset of field: BNRegisterValueWithConfidence::confidence"]
1950 [::std::mem::offset_of!(BNRegisterValueWithConfidence, confidence) - 32usize];
1951};
1952impl Default for BNRegisterValueWithConfidence {
1953 fn default() -> Self {
1954 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1955 unsafe {
1956 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1957 s.assume_init()
1958 }
1959 }
1960}
1961#[repr(C)]
1962#[derive(Debug, Copy, Clone)]
1963pub struct BNRegisterValueWithConfidenceAndRegister {
1964 pub reg: u32,
1965 pub value: BNRegisterValueWithConfidence,
1966}
1967#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1968const _: () = {
1969 ["Size of BNRegisterValueWithConfidenceAndRegister"]
1970 [::std::mem::size_of::<BNRegisterValueWithConfidenceAndRegister>() - 48usize];
1971 ["Alignment of BNRegisterValueWithConfidenceAndRegister"]
1972 [::std::mem::align_of::<BNRegisterValueWithConfidenceAndRegister>() - 8usize];
1973 ["Offset of field: BNRegisterValueWithConfidenceAndRegister::reg"]
1974 [::std::mem::offset_of!(BNRegisterValueWithConfidenceAndRegister, reg) - 0usize];
1975 ["Offset of field: BNRegisterValueWithConfidenceAndRegister::value"]
1976 [::std::mem::offset_of!(BNRegisterValueWithConfidenceAndRegister, value) - 8usize];
1977};
1978impl Default for BNRegisterValueWithConfidenceAndRegister {
1979 fn default() -> Self {
1980 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1981 unsafe {
1982 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1983 s.assume_init()
1984 }
1985 }
1986}
1987#[repr(C)]
1988#[derive(Debug, Default, Copy, Clone)]
1989pub struct BNValueRange {
1990 pub start: u64,
1991 pub end: u64,
1992 pub step: u64,
1993}
1994#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1995const _: () = {
1996 ["Size of BNValueRange"][::std::mem::size_of::<BNValueRange>() - 24usize];
1997 ["Alignment of BNValueRange"][::std::mem::align_of::<BNValueRange>() - 8usize];
1998 ["Offset of field: BNValueRange::start"][::std::mem::offset_of!(BNValueRange, start) - 0usize];
1999 ["Offset of field: BNValueRange::end"][::std::mem::offset_of!(BNValueRange, end) - 8usize];
2000 ["Offset of field: BNValueRange::step"][::std::mem::offset_of!(BNValueRange, step) - 16usize];
2001};
2002#[repr(C)]
2003#[derive(Debug, Copy, Clone)]
2004pub struct BNPossibleValueSet {
2005 pub state: BNRegisterValueType,
2006 pub value: i64,
2007 pub offset: i64,
2008 pub size: usize,
2009 pub ranges: *mut BNValueRange,
2010 pub valueSet: *mut i64,
2011 pub table: *mut BNLookupTableEntry,
2012 pub count: usize,
2013}
2014#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2015const _: () = {
2016 ["Size of BNPossibleValueSet"][::std::mem::size_of::<BNPossibleValueSet>() - 64usize];
2017 ["Alignment of BNPossibleValueSet"][::std::mem::align_of::<BNPossibleValueSet>() - 8usize];
2018 ["Offset of field: BNPossibleValueSet::state"]
2019 [::std::mem::offset_of!(BNPossibleValueSet, state) - 0usize];
2020 ["Offset of field: BNPossibleValueSet::value"]
2021 [::std::mem::offset_of!(BNPossibleValueSet, value) - 8usize];
2022 ["Offset of field: BNPossibleValueSet::offset"]
2023 [::std::mem::offset_of!(BNPossibleValueSet, offset) - 16usize];
2024 ["Offset of field: BNPossibleValueSet::size"]
2025 [::std::mem::offset_of!(BNPossibleValueSet, size) - 24usize];
2026 ["Offset of field: BNPossibleValueSet::ranges"]
2027 [::std::mem::offset_of!(BNPossibleValueSet, ranges) - 32usize];
2028 ["Offset of field: BNPossibleValueSet::valueSet"]
2029 [::std::mem::offset_of!(BNPossibleValueSet, valueSet) - 40usize];
2030 ["Offset of field: BNPossibleValueSet::table"]
2031 [::std::mem::offset_of!(BNPossibleValueSet, table) - 48usize];
2032 ["Offset of field: BNPossibleValueSet::count"]
2033 [::std::mem::offset_of!(BNPossibleValueSet, count) - 56usize];
2034};
2035impl Default for BNPossibleValueSet {
2036 fn default() -> Self {
2037 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2038 unsafe {
2039 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2040 s.assume_init()
2041 }
2042 }
2043}
2044#[repr(C)]
2045#[derive(Debug, Default, Copy, Clone)]
2046pub struct BNRegisterOrConstant {
2047 pub constant: bool,
2048 pub reg: u32,
2049 pub value: u64,
2050}
2051#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2052const _: () = {
2053 ["Size of BNRegisterOrConstant"][::std::mem::size_of::<BNRegisterOrConstant>() - 16usize];
2054 ["Alignment of BNRegisterOrConstant"][::std::mem::align_of::<BNRegisterOrConstant>() - 8usize];
2055 ["Offset of field: BNRegisterOrConstant::constant"]
2056 [::std::mem::offset_of!(BNRegisterOrConstant, constant) - 0usize];
2057 ["Offset of field: BNRegisterOrConstant::reg"]
2058 [::std::mem::offset_of!(BNRegisterOrConstant, reg) - 4usize];
2059 ["Offset of field: BNRegisterOrConstant::value"]
2060 [::std::mem::offset_of!(BNRegisterOrConstant, value) - 8usize];
2061};
2062#[repr(C)]
2063#[derive(Debug, Copy, Clone)]
2064pub struct BNDataVariable {
2065 pub address: u64,
2066 pub type_: *mut BNType,
2067 pub autoDiscovered: bool,
2068 pub typeConfidence: u8,
2069}
2070#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2071const _: () = {
2072 ["Size of BNDataVariable"][::std::mem::size_of::<BNDataVariable>() - 24usize];
2073 ["Alignment of BNDataVariable"][::std::mem::align_of::<BNDataVariable>() - 8usize];
2074 ["Offset of field: BNDataVariable::address"]
2075 [::std::mem::offset_of!(BNDataVariable, address) - 0usize];
2076 ["Offset of field: BNDataVariable::type_"]
2077 [::std::mem::offset_of!(BNDataVariable, type_) - 8usize];
2078 ["Offset of field: BNDataVariable::autoDiscovered"]
2079 [::std::mem::offset_of!(BNDataVariable, autoDiscovered) - 16usize];
2080 ["Offset of field: BNDataVariable::typeConfidence"]
2081 [::std::mem::offset_of!(BNDataVariable, typeConfidence) - 17usize];
2082};
2083impl Default for BNDataVariable {
2084 fn default() -> Self {
2085 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2086 unsafe {
2087 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2088 s.assume_init()
2089 }
2090 }
2091}
2092#[repr(C)]
2093#[derive(Debug, Copy, Clone)]
2094pub struct BNDataVariableAndName {
2095 pub address: u64,
2096 pub type_: *mut BNType,
2097 pub name: *mut ::std::os::raw::c_char,
2098 pub autoDiscovered: bool,
2099 pub typeConfidence: u8,
2100}
2101#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2102const _: () = {
2103 ["Size of BNDataVariableAndName"][::std::mem::size_of::<BNDataVariableAndName>() - 32usize];
2104 ["Alignment of BNDataVariableAndName"]
2105 [::std::mem::align_of::<BNDataVariableAndName>() - 8usize];
2106 ["Offset of field: BNDataVariableAndName::address"]
2107 [::std::mem::offset_of!(BNDataVariableAndName, address) - 0usize];
2108 ["Offset of field: BNDataVariableAndName::type_"]
2109 [::std::mem::offset_of!(BNDataVariableAndName, type_) - 8usize];
2110 ["Offset of field: BNDataVariableAndName::name"]
2111 [::std::mem::offset_of!(BNDataVariableAndName, name) - 16usize];
2112 ["Offset of field: BNDataVariableAndName::autoDiscovered"]
2113 [::std::mem::offset_of!(BNDataVariableAndName, autoDiscovered) - 24usize];
2114 ["Offset of field: BNDataVariableAndName::typeConfidence"]
2115 [::std::mem::offset_of!(BNDataVariableAndName, typeConfidence) - 25usize];
2116};
2117impl Default for BNDataVariableAndName {
2118 fn default() -> Self {
2119 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2120 unsafe {
2121 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2122 s.assume_init()
2123 }
2124 }
2125}
2126#[repr(C)]
2127#[derive(Debug, Copy, Clone)]
2128pub struct BNDataVariableAndNameAndDebugParser {
2129 pub address: u64,
2130 pub type_: *mut BNType,
2131 pub name: *mut ::std::os::raw::c_char,
2132 pub parser: *mut ::std::os::raw::c_char,
2133 pub autoDiscovered: bool,
2134 pub typeConfidence: u8,
2135}
2136#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2137const _: () = {
2138 ["Size of BNDataVariableAndNameAndDebugParser"]
2139 [::std::mem::size_of::<BNDataVariableAndNameAndDebugParser>() - 40usize];
2140 ["Alignment of BNDataVariableAndNameAndDebugParser"]
2141 [::std::mem::align_of::<BNDataVariableAndNameAndDebugParser>() - 8usize];
2142 ["Offset of field: BNDataVariableAndNameAndDebugParser::address"]
2143 [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, address) - 0usize];
2144 ["Offset of field: BNDataVariableAndNameAndDebugParser::type_"]
2145 [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, type_) - 8usize];
2146 ["Offset of field: BNDataVariableAndNameAndDebugParser::name"]
2147 [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, name) - 16usize];
2148 ["Offset of field: BNDataVariableAndNameAndDebugParser::parser"]
2149 [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, parser) - 24usize];
2150 ["Offset of field: BNDataVariableAndNameAndDebugParser::autoDiscovered"]
2151 [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, autoDiscovered) - 32usize];
2152 ["Offset of field: BNDataVariableAndNameAndDebugParser::typeConfidence"]
2153 [::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, typeConfidence) - 33usize];
2154};
2155impl Default for BNDataVariableAndNameAndDebugParser {
2156 fn default() -> Self {
2157 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2158 unsafe {
2159 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2160 s.assume_init()
2161 }
2162 }
2163}
2164#[repr(u8)]
2165#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2166pub enum BNMediumLevelILOperation {
2167 MLIL_NOP = 0,
2168 #[doc = " Not valid in SSA form (see MLIL_SET_VAR_SSA)"]
2169 MLIL_SET_VAR = 1,
2170 #[doc = " Not valid in SSA form (see MLIL_SET_VAR_FIELD)"]
2171 MLIL_SET_VAR_FIELD = 2,
2172 #[doc = " Not valid in SSA form (see MLIL_SET_VAR_SPLIT_SSA)"]
2173 MLIL_SET_VAR_SPLIT = 3,
2174 MLIL_ASSERT = 4,
2175 MLIL_FORCE_VER = 5,
2176 #[doc = " Not valid in SSA form (see MLIL_LOAD_SSA)"]
2177 MLIL_LOAD = 6,
2178 #[doc = " Not valid in SSA form (see MLIL_LOAD_STRUCT_SSA)"]
2179 MLIL_LOAD_STRUCT = 7,
2180 #[doc = " Not valid in SSA form (see MLIL_STORE_SSA)"]
2181 MLIL_STORE = 8,
2182 #[doc = " Not valid in SSA form (see MLIL_STORE_STRUCT_SSA)"]
2183 MLIL_STORE_STRUCT = 9,
2184 #[doc = " Not valid in SSA form (see MLIL_VAR_SSA)"]
2185 MLIL_VAR = 10,
2186 #[doc = " Not valid in SSA form (see MLIL_VAR_SSA_FIELD)"]
2187 MLIL_VAR_FIELD = 11,
2188 #[doc = " Not valid in SSA form (see MLIL_VAR_SPLIT_SSA)"]
2189 MLIL_VAR_SPLIT = 12,
2190 MLIL_ADDRESS_OF = 13,
2191 MLIL_ADDRESS_OF_FIELD = 14,
2192 MLIL_PASS_BY_REF = 15,
2193 MLIL_RETURN_BY_REF = 16,
2194 MLIL_CONST = 17,
2195 MLIL_CONST_DATA = 18,
2196 MLIL_CONST_PTR = 19,
2197 MLIL_EXTERN_PTR = 20,
2198 MLIL_FLOAT_CONST = 21,
2199 MLIL_IMPORT = 22,
2200 MLIL_ADD = 23,
2201 MLIL_ADC = 24,
2202 MLIL_SUB = 25,
2203 MLIL_SBB = 26,
2204 MLIL_AND = 27,
2205 MLIL_OR = 28,
2206 MLIL_XOR = 29,
2207 MLIL_LSL = 30,
2208 MLIL_LSR = 31,
2209 MLIL_ASR = 32,
2210 MLIL_ROL = 33,
2211 MLIL_RLC = 34,
2212 MLIL_ROR = 35,
2213 MLIL_RRC = 36,
2214 MLIL_MUL = 37,
2215 MLIL_MULU_DP = 38,
2216 MLIL_MULS_DP = 39,
2217 MLIL_DIVU = 40,
2218 MLIL_DIVU_DP = 41,
2219 MLIL_DIVS = 42,
2220 MLIL_DIVS_DP = 43,
2221 MLIL_MODU = 44,
2222 MLIL_MODU_DP = 45,
2223 MLIL_MODS = 46,
2224 MLIL_MODS_DP = 47,
2225 MLIL_NEG = 48,
2226 MLIL_NOT = 49,
2227 MLIL_SX = 50,
2228 MLIL_ZX = 51,
2229 MLIL_LOW_PART = 52,
2230 MLIL_JUMP = 53,
2231 MLIL_JUMP_TO = 54,
2232 #[doc = " Intermediate stages, does not appear in final forms"]
2233 MLIL_RET_HINT = 55,
2234 #[doc = " Not valid in SSA form (see MLIL_CALL_SSA)"]
2235 MLIL_CALL = 56,
2236 #[doc = " Not valid in SSA form (see MLIL_CALL_UNTYPED_SSA)"]
2237 MLIL_CALL_UNTYPED = 57,
2238 #[doc = " Only valid within MLIL_CALL, MLIL_SYSCALL, MLIL_TAILCALL family instructions"]
2239 MLIL_CALL_PARAM = 58,
2240 #[doc = " Only valid within the MLIL_CALL_PARAM or MLIL_CALL_PARAM_SSA instructions inside\n untyped call variants"]
2241 MLIL_SEPARATE_PARAM_LIST = 59,
2242 #[doc = " Only valid within the MLIL_CALL_PARAM, MLIL_CALL_PARAM_SSA, or\n MLIL_SEPARATE_PARAM_LIST instructions inside untyped call variants"]
2243 MLIL_SHARED_PARAM_SLOT = 60,
2244 #[doc = " Only valid within MLIL_CALL, MLIL_SYSCALL, MLIL_TAILCALL family instructions"]
2245 MLIL_VAR_OUTPUT = 61,
2246 #[doc = " Only valid within MLIL_CALL, MLIL_SYSCALL, MLIL_TAILCALL family instructions"]
2247 MLIL_VAR_OUTPUT_FIELD = 62,
2248 #[doc = " Only valid within MLIL_CALL, MLIL_SYSCALL, MLIL_TAILCALL family instructions"]
2249 MLIL_STORE_OUTPUT = 63,
2250 MLIL_RET = 64,
2251 MLIL_NORET = 65,
2252 MLIL_IF = 66,
2253 MLIL_GOTO = 67,
2254 MLIL_CMP_E = 68,
2255 MLIL_CMP_NE = 69,
2256 MLIL_CMP_SLT = 70,
2257 MLIL_CMP_ULT = 71,
2258 MLIL_CMP_SLE = 72,
2259 MLIL_CMP_ULE = 73,
2260 MLIL_CMP_SGE = 74,
2261 MLIL_CMP_UGE = 75,
2262 MLIL_CMP_SGT = 76,
2263 MLIL_CMP_UGT = 77,
2264 MLIL_TEST_BIT = 78,
2265 MLIL_BOOL_TO_INT = 79,
2266 MLIL_ADD_OVERFLOW = 80,
2267 #[doc = " Not valid in SSA form (see MLIL_SYSCALL_SSA)"]
2268 MLIL_SYSCALL = 81,
2269 #[doc = " Not valid in SSA form (see MLIL_SYSCALL_UNTYPED_SSA)"]
2270 MLIL_SYSCALL_UNTYPED = 82,
2271 #[doc = " Not valid in SSA form (see MLIL_TAILCALL_SSA)"]
2272 MLIL_TAILCALL = 83,
2273 #[doc = " Not valid in SSA form (see MLIL_TAILCALL_UNTYPED_SSA)"]
2274 MLIL_TAILCALL_UNTYPED = 84,
2275 #[doc = " Not valid in SSA form (see MLIL_INTRINSIC_SSA)"]
2276 MLIL_INTRINSIC = 85,
2277 #[doc = " Not valid in SSA from (see MLIL_FREE_VAR_SLOT_SSA)"]
2278 MLIL_FREE_VAR_SLOT = 86,
2279 MLIL_BP = 87,
2280 MLIL_TRAP = 88,
2281 MLIL_UNDEF = 89,
2282 MLIL_UNIMPL = 90,
2283 MLIL_UNIMPL_MEM = 91,
2284 #[doc = " Floating point"]
2285 MLIL_FADD = 92,
2286 #[doc = " Floating point"]
2287 MLIL_FSUB = 93,
2288 #[doc = " Floating point"]
2289 MLIL_FMUL = 94,
2290 #[doc = " Floating point"]
2291 MLIL_FDIV = 95,
2292 #[doc = " Floating point"]
2293 MLIL_FSQRT = 96,
2294 #[doc = " Floating point"]
2295 MLIL_FNEG = 97,
2296 #[doc = " Floating point"]
2297 MLIL_FABS = 98,
2298 #[doc = " Floating point"]
2299 MLIL_FLOAT_TO_INT = 99,
2300 #[doc = " Floating point"]
2301 MLIL_INT_TO_FLOAT = 100,
2302 #[doc = " Floating point"]
2303 MLIL_FLOAT_CONV = 101,
2304 #[doc = " Floating point"]
2305 MLIL_ROUND_TO_INT = 102,
2306 #[doc = " Floating point"]
2307 MLIL_FLOOR = 103,
2308 #[doc = " Floating point"]
2309 MLIL_CEIL = 104,
2310 #[doc = " Floating point"]
2311 MLIL_FTRUNC = 105,
2312 #[doc = " Floating point"]
2313 MLIL_FCMP_E = 106,
2314 #[doc = " Floating point"]
2315 MLIL_FCMP_NE = 107,
2316 #[doc = " Floating point"]
2317 MLIL_FCMP_LT = 108,
2318 #[doc = " Floating point"]
2319 MLIL_FCMP_LE = 109,
2320 #[doc = " Floating point"]
2321 MLIL_FCMP_GE = 110,
2322 #[doc = " Floating point"]
2323 MLIL_FCMP_GT = 111,
2324 #[doc = " Floating point"]
2325 MLIL_FCMP_O = 112,
2326 #[doc = " Floating point"]
2327 MLIL_FCMP_UO = 113,
2328 #[doc = " The following instructions are only used in SSA form"]
2329 MLIL_SET_VAR_SSA = 114,
2330 #[doc = " The following instructions are only used in SSA form"]
2331 MLIL_SET_VAR_SSA_FIELD = 115,
2332 #[doc = " The following instructions are only used in SSA form"]
2333 MLIL_SET_VAR_SPLIT_SSA = 116,
2334 #[doc = " The following instructions are only used in SSA form"]
2335 MLIL_SET_VAR_ALIASED = 117,
2336 #[doc = " The following instructions are only used in SSA form"]
2337 MLIL_SET_VAR_ALIASED_FIELD = 118,
2338 #[doc = " The following instructions are only used in SSA form"]
2339 MLIL_VAR_SSA = 119,
2340 #[doc = " The following instructions are only used in SSA form"]
2341 MLIL_VAR_SSA_FIELD = 120,
2342 #[doc = " The following instructions are only used in SSA form"]
2343 MLIL_VAR_ALIASED = 121,
2344 #[doc = " The following instructions are only used in SSA form"]
2345 MLIL_VAR_ALIASED_FIELD = 122,
2346 #[doc = " The following instructions are only used in SSA form"]
2347 MLIL_VAR_SPLIT_SSA = 123,
2348 #[doc = " The following instructions are only used in SSA form"]
2349 MLIL_ASSERT_SSA = 124,
2350 #[doc = " The following instructions are only used in SSA form"]
2351 MLIL_FORCE_VER_SSA = 125,
2352 #[doc = " The following instructions are only used in SSA form"]
2353 MLIL_CALL_SSA = 126,
2354 #[doc = " The following instructions are only used in SSA form"]
2355 MLIL_CALL_UNTYPED_SSA = 127,
2356 #[doc = " The following instructions are only used in SSA form"]
2357 MLIL_SYSCALL_SSA = 128,
2358 #[doc = " The following instructions are only used in SSA form"]
2359 MLIL_SYSCALL_UNTYPED_SSA = 129,
2360 #[doc = " The following instructions are only used in SSA form"]
2361 MLIL_TAILCALL_SSA = 130,
2362 #[doc = " The following instructions are only used in SSA form"]
2363 MLIL_TAILCALL_UNTYPED_SSA = 131,
2364 #[doc = " Only valid within the MLIL_CALL_SSA, MLIL_SYSCALL_SSA, MLIL_TAILCALL_SSA, MLIL_INTRINSIC_SSA family\n instructions"]
2365 MLIL_CALL_PARAM_SSA = 132,
2366 #[doc = " Only valid within the MLIL_CALL_SSA or MLIL_SYSCALL_SSA, MLIL_TAILCALL_SSA family\n instructions"]
2367 MLIL_CALL_OUTPUT_SSA = 133,
2368 #[doc = " Only valid within the MLIL_CALL_OUTPUT_SSA instruction"]
2369 MLIL_VAR_OUTPUT_SSA = 134,
2370 #[doc = " Only valid within the MLIL_CALL_OUTPUT_SSA instruction"]
2371 MLIL_VAR_OUTPUT_SSA_FIELD = 135,
2372 #[doc = " Only valid within the MLIL_CALL_OUTPUT_SSA instruction"]
2373 MLIL_VAR_OUTPUT_ALIASED = 136,
2374 #[doc = " Only valid within the MLIL_CALL_OUTPUT_SSA instruction"]
2375 MLIL_VAR_OUTPUT_ALIASED_FIELD = 137,
2376 #[doc = " Only valid within the MLIL_MEMORY_INTRINSIC_SSA instruction"]
2377 MLIL_MEMORY_INTRINSIC_OUTPUT_SSA = 138,
2378 MLIL_LOAD_SSA = 139,
2379 MLIL_LOAD_STRUCT_SSA = 140,
2380 MLIL_STORE_SSA = 141,
2381 MLIL_STORE_STRUCT_SSA = 142,
2382 MLIL_INTRINSIC_SSA = 143,
2383 MLIL_MEMORY_INTRINSIC_SSA = 144,
2384 MLIL_FREE_VAR_SLOT_SSA = 145,
2385 MLIL_VAR_PHI = 146,
2386 MLIL_MEM_PHI = 147,
2387 #[doc = " Must be expanded by a future workflow step, used temporarily to insert instructions"]
2388 MLIL_BLOCK_TO_EXPAND = 148,
2389 #[doc = " Reverse byte order of the whole value"]
2390 MLIL_BSWAP = 149,
2391 #[doc = " Population count (number of set bits)"]
2392 MLIL_POPCNT = 150,
2393 #[doc = " Count leading zero bits; clz(0) == 8 * size"]
2394 MLIL_CLZ = 151,
2395 #[doc = " Count trailing zero bits; ctz(0) == 8 * size"]
2396 MLIL_CTZ = 152,
2397 #[doc = " Reverse bit order of the whole value"]
2398 MLIL_RBIT = 153,
2399 #[doc = " Count leading sign bits; number of bits below the sign bit that match it"]
2400 MLIL_CLS = 154,
2401 #[doc = " Signed minimum of left and right"]
2402 MLIL_MINS = 155,
2403 #[doc = " Signed maximum of left and right"]
2404 MLIL_MAXS = 156,
2405 #[doc = " Unsigned minimum of left and right"]
2406 MLIL_MINU = 157,
2407 #[doc = " Unsigned maximum of left and right"]
2408 MLIL_MAXU = 158,
2409 #[doc = " Signed absolute value of src; abs(INT_MIN) == INT_MIN"]
2410 MLIL_ABS = 159,
2411}
2412#[repr(C)]
2413#[derive(Debug, Copy, Clone)]
2414pub struct BNMediumLevelILInstruction {
2415 pub operation: BNMediumLevelILOperation,
2416 pub attributes: u32,
2417 pub sourceOperand: u32,
2418 pub size: usize,
2419 pub operands: [u64; 5usize],
2420 pub address: u64,
2421}
2422#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2423const _: () = {
2424 ["Size of BNMediumLevelILInstruction"]
2425 [::std::mem::size_of::<BNMediumLevelILInstruction>() - 72usize];
2426 ["Alignment of BNMediumLevelILInstruction"]
2427 [::std::mem::align_of::<BNMediumLevelILInstruction>() - 8usize];
2428 ["Offset of field: BNMediumLevelILInstruction::operation"]
2429 [::std::mem::offset_of!(BNMediumLevelILInstruction, operation) - 0usize];
2430 ["Offset of field: BNMediumLevelILInstruction::attributes"]
2431 [::std::mem::offset_of!(BNMediumLevelILInstruction, attributes) - 4usize];
2432 ["Offset of field: BNMediumLevelILInstruction::sourceOperand"]
2433 [::std::mem::offset_of!(BNMediumLevelILInstruction, sourceOperand) - 8usize];
2434 ["Offset of field: BNMediumLevelILInstruction::size"]
2435 [::std::mem::offset_of!(BNMediumLevelILInstruction, size) - 16usize];
2436 ["Offset of field: BNMediumLevelILInstruction::operands"]
2437 [::std::mem::offset_of!(BNMediumLevelILInstruction, operands) - 24usize];
2438 ["Offset of field: BNMediumLevelILInstruction::address"]
2439 [::std::mem::offset_of!(BNMediumLevelILInstruction, address) - 64usize];
2440};
2441impl Default for BNMediumLevelILInstruction {
2442 fn default() -> Self {
2443 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2444 unsafe {
2445 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2446 s.assume_init()
2447 }
2448 }
2449}
2450#[repr(C)]
2451#[derive(Debug, Default, Copy, Clone)]
2452pub struct BNMediumLevelILLabel {
2453 pub resolved: bool,
2454 pub ref_: usize,
2455 pub operand: usize,
2456}
2457#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2458const _: () = {
2459 ["Size of BNMediumLevelILLabel"][::std::mem::size_of::<BNMediumLevelILLabel>() - 24usize];
2460 ["Alignment of BNMediumLevelILLabel"][::std::mem::align_of::<BNMediumLevelILLabel>() - 8usize];
2461 ["Offset of field: BNMediumLevelILLabel::resolved"]
2462 [::std::mem::offset_of!(BNMediumLevelILLabel, resolved) - 0usize];
2463 ["Offset of field: BNMediumLevelILLabel::ref_"]
2464 [::std::mem::offset_of!(BNMediumLevelILLabel, ref_) - 8usize];
2465 ["Offset of field: BNMediumLevelILLabel::operand"]
2466 [::std::mem::offset_of!(BNMediumLevelILLabel, operand) - 16usize];
2467};
2468#[repr(u8)]
2469#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2470pub enum BNVariableSourceType {
2471 StackVariableSourceType = 0,
2472 RegisterVariableSourceType = 1,
2473 FlagVariableSourceType = 2,
2474 CompositeReturnValueSourceType = 3,
2475 CompositeParameterSourceType = 4,
2476}
2477#[repr(C)]
2478#[derive(Debug, Copy, Clone)]
2479pub struct BNVariable {
2480 pub type_: BNVariableSourceType,
2481 pub index: u32,
2482 pub storage: i64,
2483}
2484#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2485const _: () = {
2486 ["Size of BNVariable"][::std::mem::size_of::<BNVariable>() - 16usize];
2487 ["Alignment of BNVariable"][::std::mem::align_of::<BNVariable>() - 8usize];
2488 ["Offset of field: BNVariable::type_"][::std::mem::offset_of!(BNVariable, type_) - 0usize];
2489 ["Offset of field: BNVariable::index"][::std::mem::offset_of!(BNVariable, index) - 4usize];
2490 ["Offset of field: BNVariable::storage"][::std::mem::offset_of!(BNVariable, storage) - 8usize];
2491};
2492impl Default for BNVariable {
2493 fn default() -> Self {
2494 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2495 unsafe {
2496 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2497 s.assume_init()
2498 }
2499 }
2500}
2501#[repr(u8)]
2502#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2503pub enum BNHighLevelILOperation {
2504 HLIL_NOP = 0,
2505 HLIL_BLOCK = 1,
2506 HLIL_IF = 2,
2507 HLIL_WHILE = 3,
2508 HLIL_DO_WHILE = 4,
2509 HLIL_FOR = 5,
2510 HLIL_SWITCH = 6,
2511 HLIL_CASE = 7,
2512 HLIL_BREAK = 8,
2513 HLIL_CONTINUE = 9,
2514 HLIL_JUMP = 10,
2515 HLIL_RET = 11,
2516 HLIL_NORET = 12,
2517 HLIL_GOTO = 13,
2518 HLIL_LABEL = 14,
2519 HLIL_VAR_DECLARE = 15,
2520 HLIL_VAR_INIT = 16,
2521 HLIL_ASSIGN = 17,
2522 HLIL_ASSIGN_UNPACK = 18,
2523 HLIL_FORCE_VER = 19,
2524 HLIL_ASSERT = 20,
2525 HLIL_VAR = 21,
2526 HLIL_STRUCT_FIELD = 22,
2527 HLIL_ARRAY_INDEX = 23,
2528 HLIL_SPLIT = 24,
2529 HLIL_DEREF = 25,
2530 HLIL_DEREF_FIELD = 26,
2531 HLIL_ADDRESS_OF = 27,
2532 HLIL_PASS_BY_REF = 28,
2533 HLIL_RETURN_BY_REF = 29,
2534 HLIL_CONST = 30,
2535 HLIL_CONST_DATA = 31,
2536 HLIL_CONST_PTR = 32,
2537 HLIL_EXTERN_PTR = 33,
2538 HLIL_FLOAT_CONST = 34,
2539 HLIL_IMPORT = 35,
2540 HLIL_ADD = 36,
2541 HLIL_ADC = 37,
2542 HLIL_SUB = 38,
2543 HLIL_SBB = 39,
2544 HLIL_AND = 40,
2545 HLIL_OR = 41,
2546 HLIL_XOR = 42,
2547 HLIL_LSL = 43,
2548 HLIL_LSR = 44,
2549 HLIL_ASR = 45,
2550 HLIL_ROL = 46,
2551 HLIL_RLC = 47,
2552 HLIL_ROR = 48,
2553 HLIL_RRC = 49,
2554 HLIL_MUL = 50,
2555 HLIL_MULU_DP = 51,
2556 HLIL_MULS_DP = 52,
2557 HLIL_DIVU = 53,
2558 HLIL_DIVU_DP = 54,
2559 HLIL_DIVS = 55,
2560 HLIL_DIVS_DP = 56,
2561 HLIL_MODU = 57,
2562 HLIL_MODU_DP = 58,
2563 HLIL_MODS = 59,
2564 HLIL_MODS_DP = 60,
2565 HLIL_NEG = 61,
2566 HLIL_NOT = 62,
2567 HLIL_SX = 63,
2568 HLIL_ZX = 64,
2569 HLIL_LOW_PART = 65,
2570 HLIL_CALL = 66,
2571 HLIL_CMP_E = 67,
2572 HLIL_CMP_NE = 68,
2573 HLIL_CMP_SLT = 69,
2574 HLIL_CMP_ULT = 70,
2575 HLIL_CMP_SLE = 71,
2576 HLIL_CMP_ULE = 72,
2577 HLIL_CMP_SGE = 73,
2578 HLIL_CMP_UGE = 74,
2579 HLIL_CMP_SGT = 75,
2580 HLIL_CMP_UGT = 76,
2581 HLIL_TEST_BIT = 77,
2582 HLIL_BOOL_TO_INT = 78,
2583 HLIL_ADD_OVERFLOW = 79,
2584 HLIL_SYSCALL = 80,
2585 HLIL_TAILCALL = 81,
2586 HLIL_INTRINSIC = 82,
2587 HLIL_BP = 83,
2588 HLIL_TRAP = 84,
2589 HLIL_UNDEF = 85,
2590 HLIL_UNIMPL = 86,
2591 HLIL_UNIMPL_MEM = 87,
2592 HLIL_STRUCT_INIT = 88,
2593 #[doc = " Only valid in HLIL_STRUCT_INIT"]
2594 HLIL_STRUCT_INIT_FIELD = 89,
2595 #[doc = " Floating point"]
2596 HLIL_FADD = 90,
2597 #[doc = " Floating point"]
2598 HLIL_FSUB = 91,
2599 #[doc = " Floating point"]
2600 HLIL_FMUL = 92,
2601 #[doc = " Floating point"]
2602 HLIL_FDIV = 93,
2603 #[doc = " Floating point"]
2604 HLIL_FSQRT = 94,
2605 #[doc = " Floating point"]
2606 HLIL_FNEG = 95,
2607 #[doc = " Floating point"]
2608 HLIL_FABS = 96,
2609 #[doc = " Floating point"]
2610 HLIL_FLOAT_TO_INT = 97,
2611 #[doc = " Floating point"]
2612 HLIL_INT_TO_FLOAT = 98,
2613 #[doc = " Floating point"]
2614 HLIL_FLOAT_CONV = 99,
2615 #[doc = " Floating point"]
2616 HLIL_ROUND_TO_INT = 100,
2617 #[doc = " Floating point"]
2618 HLIL_FLOOR = 101,
2619 #[doc = " Floating point"]
2620 HLIL_CEIL = 102,
2621 #[doc = " Floating point"]
2622 HLIL_FTRUNC = 103,
2623 #[doc = " Floating point"]
2624 HLIL_FCMP_E = 104,
2625 #[doc = " Floating point"]
2626 HLIL_FCMP_NE = 105,
2627 #[doc = " Floating point"]
2628 HLIL_FCMP_LT = 106,
2629 #[doc = " Floating point"]
2630 HLIL_FCMP_LE = 107,
2631 #[doc = " Floating point"]
2632 HLIL_FCMP_GE = 108,
2633 #[doc = " Floating point"]
2634 HLIL_FCMP_GT = 109,
2635 #[doc = " Floating point"]
2636 HLIL_FCMP_O = 110,
2637 #[doc = " Floating point"]
2638 HLIL_FCMP_UO = 111,
2639 #[doc = " Unreachable hint, typically used in switch statements that analysis knows\n has an unreachable default."]
2640 HLIL_UNREACHABLE = 112,
2641 #[doc = " The following instructions are only used in SSA form"]
2642 HLIL_WHILE_SSA = 113,
2643 #[doc = " The following instructions are only used in SSA form"]
2644 HLIL_DO_WHILE_SSA = 114,
2645 #[doc = " The following instructions are only used in SSA form"]
2646 HLIL_FOR_SSA = 115,
2647 #[doc = " The following instructions are only used in SSA form"]
2648 HLIL_VAR_INIT_SSA = 116,
2649 #[doc = " The following instructions are only used in SSA form"]
2650 HLIL_ASSIGN_MEM_SSA = 117,
2651 #[doc = " The following instructions are only used in SSA form"]
2652 HLIL_ASSIGN_UNPACK_MEM_SSA = 118,
2653 #[doc = " The following instructions are only used in SSA form"]
2654 HLIL_FORCE_VER_SSA = 119,
2655 #[doc = " The following instructions are only used in SSA form"]
2656 HLIL_ASSERT_SSA = 120,
2657 #[doc = " The following instructions are only used in SSA form"]
2658 HLIL_VAR_SSA = 121,
2659 #[doc = " The following instructions are only used in SSA form"]
2660 HLIL_VAR_SSA_PARTIAL = 122,
2661 #[doc = " The following instructions are only used in SSA form"]
2662 HLIL_ARRAY_INDEX_SSA = 123,
2663 #[doc = " The following instructions are only used in SSA form"]
2664 HLIL_DEREF_SSA = 124,
2665 #[doc = " The following instructions are only used in SSA form"]
2666 HLIL_DEREF_FIELD_SSA = 125,
2667 #[doc = " The following instructions are only used in SSA form"]
2668 HLIL_CALL_SSA = 126,
2669 #[doc = " The following instructions are only used in SSA form"]
2670 HLIL_SYSCALL_SSA = 127,
2671 #[doc = " The following instructions are only used in SSA form"]
2672 HLIL_INTRINSIC_SSA = 128,
2673 #[doc = " The following instructions are only used in SSA form"]
2674 HLIL_VAR_PHI = 129,
2675 #[doc = " The following instructions are only used in SSA form"]
2676 HLIL_MEM_PHI = 130,
2677 #[doc = " Reverse byte order of the whole value"]
2678 HLIL_BSWAP = 131,
2679 #[doc = " Population count (number of set bits)"]
2680 HLIL_POPCNT = 132,
2681 #[doc = " Count leading zero bits; clz(0) == 8 * size"]
2682 HLIL_CLZ = 133,
2683 #[doc = " Count trailing zero bits; ctz(0) == 8 * size"]
2684 HLIL_CTZ = 134,
2685 #[doc = " Reverse bit order of the whole value"]
2686 HLIL_RBIT = 135,
2687 #[doc = " Count leading sign bits; number of bits below the sign bit that match it"]
2688 HLIL_CLS = 136,
2689 #[doc = " Signed minimum of left and right"]
2690 HLIL_MINS = 137,
2691 #[doc = " Signed maximum of left and right"]
2692 HLIL_MAXS = 138,
2693 #[doc = " Unsigned minimum of left and right"]
2694 HLIL_MINU = 139,
2695 #[doc = " Unsigned maximum of left and right"]
2696 HLIL_MAXU = 140,
2697 #[doc = " Signed absolute value of src; abs(INT_MIN) == INT_MIN"]
2698 HLIL_ABS = 141,
2699}
2700#[repr(C)]
2701#[derive(Debug, Copy, Clone)]
2702pub struct BNHighLevelILInstruction {
2703 pub operation: BNHighLevelILOperation,
2704 pub attributes: u32,
2705 pub sourceOperand: u32,
2706 pub size: usize,
2707 pub operands: [u64; 5usize],
2708 pub address: u64,
2709 pub parent: usize,
2710}
2711#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2712const _: () = {
2713 ["Size of BNHighLevelILInstruction"]
2714 [::std::mem::size_of::<BNHighLevelILInstruction>() - 80usize];
2715 ["Alignment of BNHighLevelILInstruction"]
2716 [::std::mem::align_of::<BNHighLevelILInstruction>() - 8usize];
2717 ["Offset of field: BNHighLevelILInstruction::operation"]
2718 [::std::mem::offset_of!(BNHighLevelILInstruction, operation) - 0usize];
2719 ["Offset of field: BNHighLevelILInstruction::attributes"]
2720 [::std::mem::offset_of!(BNHighLevelILInstruction, attributes) - 4usize];
2721 ["Offset of field: BNHighLevelILInstruction::sourceOperand"]
2722 [::std::mem::offset_of!(BNHighLevelILInstruction, sourceOperand) - 8usize];
2723 ["Offset of field: BNHighLevelILInstruction::size"]
2724 [::std::mem::offset_of!(BNHighLevelILInstruction, size) - 16usize];
2725 ["Offset of field: BNHighLevelILInstruction::operands"]
2726 [::std::mem::offset_of!(BNHighLevelILInstruction, operands) - 24usize];
2727 ["Offset of field: BNHighLevelILInstruction::address"]
2728 [::std::mem::offset_of!(BNHighLevelILInstruction, address) - 64usize];
2729 ["Offset of field: BNHighLevelILInstruction::parent"]
2730 [::std::mem::offset_of!(BNHighLevelILInstruction, parent) - 72usize];
2731};
2732impl Default for BNHighLevelILInstruction {
2733 fn default() -> Self {
2734 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2735 unsafe {
2736 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2737 s.assume_init()
2738 }
2739 }
2740}
2741#[doc = " Callbacks"]
2742#[repr(C)]
2743#[derive(Debug, Copy, Clone)]
2744pub struct BNLogListener {
2745 pub context: *mut ::std::os::raw::c_void,
2746 pub log: ::std::option::Option<
2747 unsafe extern "C" fn(
2748 ctxt: *mut ::std::os::raw::c_void,
2749 sessionId: usize,
2750 level: BNLogLevel,
2751 msg: *const ::std::os::raw::c_char,
2752 logger_name: *const ::std::os::raw::c_char,
2753 tid: usize,
2754 ),
2755 >,
2756 pub logWithStackTrace: ::std::option::Option<
2757 unsafe extern "C" fn(
2758 ctxt: *mut ::std::os::raw::c_void,
2759 sessionId: usize,
2760 level: BNLogLevel,
2761 stackTrace: *const ::std::os::raw::c_char,
2762 msg: *const ::std::os::raw::c_char,
2763 logger_name: *const ::std::os::raw::c_char,
2764 tid: usize,
2765 ),
2766 >,
2767 pub close: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
2768 pub getLogLevel: ::std::option::Option<
2769 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> BNLogLevel,
2770 >,
2771}
2772#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2773const _: () = {
2774 ["Size of BNLogListener"][::std::mem::size_of::<BNLogListener>() - 40usize];
2775 ["Alignment of BNLogListener"][::std::mem::align_of::<BNLogListener>() - 8usize];
2776 ["Offset of field: BNLogListener::context"]
2777 [::std::mem::offset_of!(BNLogListener, context) - 0usize];
2778 ["Offset of field: BNLogListener::log"][::std::mem::offset_of!(BNLogListener, log) - 8usize];
2779 ["Offset of field: BNLogListener::logWithStackTrace"]
2780 [::std::mem::offset_of!(BNLogListener, logWithStackTrace) - 16usize];
2781 ["Offset of field: BNLogListener::close"]
2782 [::std::mem::offset_of!(BNLogListener, close) - 24usize];
2783 ["Offset of field: BNLogListener::getLogLevel"]
2784 [::std::mem::offset_of!(BNLogListener, getLogLevel) - 32usize];
2785};
2786impl Default for BNLogListener {
2787 fn default() -> Self {
2788 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2789 unsafe {
2790 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2791 s.assume_init()
2792 }
2793 }
2794}
2795#[repr(C)]
2796#[derive(Debug, Copy, Clone)]
2797pub struct BNNavigationHandler {
2798 pub context: *mut ::std::os::raw::c_void,
2799 pub getCurrentView: ::std::option::Option<
2800 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
2801 >,
2802 pub getCurrentOffset:
2803 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u64>,
2804 pub navigate: ::std::option::Option<
2805 unsafe extern "C" fn(
2806 ctxt: *mut ::std::os::raw::c_void,
2807 view: *const ::std::os::raw::c_char,
2808 offset: u64,
2809 ) -> bool,
2810 >,
2811}
2812#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2813const _: () = {
2814 ["Size of BNNavigationHandler"][::std::mem::size_of::<BNNavigationHandler>() - 32usize];
2815 ["Alignment of BNNavigationHandler"][::std::mem::align_of::<BNNavigationHandler>() - 8usize];
2816 ["Offset of field: BNNavigationHandler::context"]
2817 [::std::mem::offset_of!(BNNavigationHandler, context) - 0usize];
2818 ["Offset of field: BNNavigationHandler::getCurrentView"]
2819 [::std::mem::offset_of!(BNNavigationHandler, getCurrentView) - 8usize];
2820 ["Offset of field: BNNavigationHandler::getCurrentOffset"]
2821 [::std::mem::offset_of!(BNNavigationHandler, getCurrentOffset) - 16usize];
2822 ["Offset of field: BNNavigationHandler::navigate"]
2823 [::std::mem::offset_of!(BNNavigationHandler, navigate) - 24usize];
2824};
2825impl Default for BNNavigationHandler {
2826 fn default() -> Self {
2827 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2828 unsafe {
2829 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2830 s.assume_init()
2831 }
2832 }
2833}
2834#[repr(C)]
2835#[derive(Debug, Copy, Clone)]
2836pub struct BNNameSpace {
2837 pub name: *mut *mut ::std::os::raw::c_char,
2838 pub join: *mut ::std::os::raw::c_char,
2839 pub nameCount: usize,
2840}
2841#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2842const _: () = {
2843 ["Size of BNNameSpace"][::std::mem::size_of::<BNNameSpace>() - 24usize];
2844 ["Alignment of BNNameSpace"][::std::mem::align_of::<BNNameSpace>() - 8usize];
2845 ["Offset of field: BNNameSpace::name"][::std::mem::offset_of!(BNNameSpace, name) - 0usize];
2846 ["Offset of field: BNNameSpace::join"][::std::mem::offset_of!(BNNameSpace, join) - 8usize];
2847 ["Offset of field: BNNameSpace::nameCount"]
2848 [::std::mem::offset_of!(BNNameSpace, nameCount) - 16usize];
2849};
2850impl Default for BNNameSpace {
2851 fn default() -> Self {
2852 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2853 unsafe {
2854 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2855 s.assume_init()
2856 }
2857 }
2858}
2859#[repr(C)]
2860#[derive(Debug, Copy, Clone)]
2861pub struct BNQualifiedName {
2862 pub name: *mut *mut ::std::os::raw::c_char,
2863 pub join: *mut ::std::os::raw::c_char,
2864 pub nameCount: usize,
2865}
2866#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2867const _: () = {
2868 ["Size of BNQualifiedName"][::std::mem::size_of::<BNQualifiedName>() - 24usize];
2869 ["Alignment of BNQualifiedName"][::std::mem::align_of::<BNQualifiedName>() - 8usize];
2870 ["Offset of field: BNQualifiedName::name"]
2871 [::std::mem::offset_of!(BNQualifiedName, name) - 0usize];
2872 ["Offset of field: BNQualifiedName::join"]
2873 [::std::mem::offset_of!(BNQualifiedName, join) - 8usize];
2874 ["Offset of field: BNQualifiedName::nameCount"]
2875 [::std::mem::offset_of!(BNQualifiedName, nameCount) - 16usize];
2876};
2877impl Default for BNQualifiedName {
2878 fn default() -> Self {
2879 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2880 unsafe {
2881 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2882 s.assume_init()
2883 }
2884 }
2885}
2886#[repr(u8)]
2887#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2888pub enum BNDerivedStringLocationType {
2889 DataBackedStringLocation = 0,
2890 CodeStringLocation = 1,
2891}
2892#[repr(C)]
2893#[derive(Debug, Copy, Clone)]
2894pub struct BNDerivedStringLocation {
2895 pub locationType: BNDerivedStringLocationType,
2896 pub addr: u64,
2897 pub len: u64,
2898}
2899#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2900const _: () = {
2901 ["Size of BNDerivedStringLocation"][::std::mem::size_of::<BNDerivedStringLocation>() - 24usize];
2902 ["Alignment of BNDerivedStringLocation"]
2903 [::std::mem::align_of::<BNDerivedStringLocation>() - 8usize];
2904 ["Offset of field: BNDerivedStringLocation::locationType"]
2905 [::std::mem::offset_of!(BNDerivedStringLocation, locationType) - 0usize];
2906 ["Offset of field: BNDerivedStringLocation::addr"]
2907 [::std::mem::offset_of!(BNDerivedStringLocation, addr) - 8usize];
2908 ["Offset of field: BNDerivedStringLocation::len"]
2909 [::std::mem::offset_of!(BNDerivedStringLocation, len) - 16usize];
2910};
2911impl Default for BNDerivedStringLocation {
2912 fn default() -> Self {
2913 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2914 unsafe {
2915 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2916 s.assume_init()
2917 }
2918 }
2919}
2920#[repr(C)]
2921#[derive(Debug, Copy, Clone)]
2922pub struct BNDerivedString {
2923 pub value: *mut BNStringRef,
2924 pub locationValid: bool,
2925 pub location: BNDerivedStringLocation,
2926 pub customType: *mut BNCustomStringType,
2927}
2928#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2929const _: () = {
2930 ["Size of BNDerivedString"][::std::mem::size_of::<BNDerivedString>() - 48usize];
2931 ["Alignment of BNDerivedString"][::std::mem::align_of::<BNDerivedString>() - 8usize];
2932 ["Offset of field: BNDerivedString::value"]
2933 [::std::mem::offset_of!(BNDerivedString, value) - 0usize];
2934 ["Offset of field: BNDerivedString::locationValid"]
2935 [::std::mem::offset_of!(BNDerivedString, locationValid) - 8usize];
2936 ["Offset of field: BNDerivedString::location"]
2937 [::std::mem::offset_of!(BNDerivedString, location) - 16usize];
2938 ["Offset of field: BNDerivedString::customType"]
2939 [::std::mem::offset_of!(BNDerivedString, customType) - 40usize];
2940};
2941impl Default for BNDerivedString {
2942 fn default() -> Self {
2943 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2944 unsafe {
2945 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2946 s.assume_init()
2947 }
2948 }
2949}
2950#[repr(C)]
2951#[derive(Debug, Copy, Clone)]
2952pub struct BNBinaryDataNotification {
2953 pub context: *mut ::std::os::raw::c_void,
2954 pub notificationBarrier: ::std::option::Option<
2955 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView) -> u64,
2956 >,
2957 pub dataWritten: ::std::option::Option<
2958 unsafe extern "C" fn(
2959 ctxt: *mut ::std::os::raw::c_void,
2960 view: *mut BNBinaryView,
2961 offset: u64,
2962 len: usize,
2963 ),
2964 >,
2965 pub dataInserted: ::std::option::Option<
2966 unsafe extern "C" fn(
2967 ctxt: *mut ::std::os::raw::c_void,
2968 view: *mut BNBinaryView,
2969 offset: u64,
2970 len: usize,
2971 ),
2972 >,
2973 pub dataRemoved: ::std::option::Option<
2974 unsafe extern "C" fn(
2975 ctxt: *mut ::std::os::raw::c_void,
2976 view: *mut BNBinaryView,
2977 offset: u64,
2978 len: u64,
2979 ),
2980 >,
2981 pub functionAdded: ::std::option::Option<
2982 unsafe extern "C" fn(
2983 ctxt: *mut ::std::os::raw::c_void,
2984 view: *mut BNBinaryView,
2985 func: *mut BNFunction,
2986 ),
2987 >,
2988 pub functionRemoved: ::std::option::Option<
2989 unsafe extern "C" fn(
2990 ctxt: *mut ::std::os::raw::c_void,
2991 view: *mut BNBinaryView,
2992 func: *mut BNFunction,
2993 ),
2994 >,
2995 pub functionUpdated: ::std::option::Option<
2996 unsafe extern "C" fn(
2997 ctxt: *mut ::std::os::raw::c_void,
2998 view: *mut BNBinaryView,
2999 func: *mut BNFunction,
3000 ),
3001 >,
3002 pub functionUpdateRequested: ::std::option::Option<
3003 unsafe extern "C" fn(
3004 ctxt: *mut ::std::os::raw::c_void,
3005 view: *mut BNBinaryView,
3006 func: *mut BNFunction,
3007 ),
3008 >,
3009 pub dataVariableAdded: ::std::option::Option<
3010 unsafe extern "C" fn(
3011 ctxt: *mut ::std::os::raw::c_void,
3012 view: *mut BNBinaryView,
3013 var: *mut BNDataVariable,
3014 ),
3015 >,
3016 pub dataVariableRemoved: ::std::option::Option<
3017 unsafe extern "C" fn(
3018 ctxt: *mut ::std::os::raw::c_void,
3019 view: *mut BNBinaryView,
3020 var: *mut BNDataVariable,
3021 ),
3022 >,
3023 pub dataVariableUpdated: ::std::option::Option<
3024 unsafe extern "C" fn(
3025 ctxt: *mut ::std::os::raw::c_void,
3026 view: *mut BNBinaryView,
3027 var: *mut BNDataVariable,
3028 ),
3029 >,
3030 pub dataMetadataUpdated: ::std::option::Option<
3031 unsafe extern "C" fn(
3032 ctxt: *mut ::std::os::raw::c_void,
3033 view: *mut BNBinaryView,
3034 offset: u64,
3035 ),
3036 >,
3037 pub tagTypeUpdated: ::std::option::Option<
3038 unsafe extern "C" fn(
3039 ctxt: *mut ::std::os::raw::c_void,
3040 view: *mut BNBinaryView,
3041 tagType: *mut BNTagType,
3042 ),
3043 >,
3044 pub tagAdded: ::std::option::Option<
3045 unsafe extern "C" fn(
3046 ctxt: *mut ::std::os::raw::c_void,
3047 view: *mut BNBinaryView,
3048 tagRef: *mut BNTagReference,
3049 ),
3050 >,
3051 pub tagRemoved: ::std::option::Option<
3052 unsafe extern "C" fn(
3053 ctxt: *mut ::std::os::raw::c_void,
3054 view: *mut BNBinaryView,
3055 tagRef: *mut BNTagReference,
3056 ),
3057 >,
3058 pub tagUpdated: ::std::option::Option<
3059 unsafe extern "C" fn(
3060 ctxt: *mut ::std::os::raw::c_void,
3061 view: *mut BNBinaryView,
3062 tagRef: *mut BNTagReference,
3063 ),
3064 >,
3065 pub symbolAdded: ::std::option::Option<
3066 unsafe extern "C" fn(
3067 ctxt: *mut ::std::os::raw::c_void,
3068 view: *mut BNBinaryView,
3069 sym: *mut BNSymbol,
3070 ),
3071 >,
3072 pub symbolRemoved: ::std::option::Option<
3073 unsafe extern "C" fn(
3074 ctxt: *mut ::std::os::raw::c_void,
3075 view: *mut BNBinaryView,
3076 sym: *mut BNSymbol,
3077 ),
3078 >,
3079 pub symbolUpdated: ::std::option::Option<
3080 unsafe extern "C" fn(
3081 ctxt: *mut ::std::os::raw::c_void,
3082 view: *mut BNBinaryView,
3083 sym: *mut BNSymbol,
3084 ),
3085 >,
3086 pub stringFound: ::std::option::Option<
3087 unsafe extern "C" fn(
3088 ctxt: *mut ::std::os::raw::c_void,
3089 view: *mut BNBinaryView,
3090 type_: BNStringType,
3091 offset: u64,
3092 len: usize,
3093 ),
3094 >,
3095 pub stringRemoved: ::std::option::Option<
3096 unsafe extern "C" fn(
3097 ctxt: *mut ::std::os::raw::c_void,
3098 view: *mut BNBinaryView,
3099 type_: BNStringType,
3100 offset: u64,
3101 len: usize,
3102 ),
3103 >,
3104 pub derivedStringFound: ::std::option::Option<
3105 unsafe extern "C" fn(
3106 ctxt: *mut ::std::os::raw::c_void,
3107 view: *mut BNBinaryView,
3108 str_: *mut BNDerivedString,
3109 ),
3110 >,
3111 pub derivedStringRemoved: ::std::option::Option<
3112 unsafe extern "C" fn(
3113 ctxt: *mut ::std::os::raw::c_void,
3114 view: *mut BNBinaryView,
3115 str_: *mut BNDerivedString,
3116 ),
3117 >,
3118 pub typeDefined: ::std::option::Option<
3119 unsafe extern "C" fn(
3120 ctxt: *mut ::std::os::raw::c_void,
3121 view: *mut BNBinaryView,
3122 name: *mut BNQualifiedName,
3123 type_: *mut BNType,
3124 ),
3125 >,
3126 pub typeUndefined: ::std::option::Option<
3127 unsafe extern "C" fn(
3128 ctxt: *mut ::std::os::raw::c_void,
3129 view: *mut BNBinaryView,
3130 name: *mut BNQualifiedName,
3131 type_: *mut BNType,
3132 ),
3133 >,
3134 pub typeReferenceChanged: ::std::option::Option<
3135 unsafe extern "C" fn(
3136 ctxt: *mut ::std::os::raw::c_void,
3137 view: *mut BNBinaryView,
3138 name: *mut BNQualifiedName,
3139 type_: *mut BNType,
3140 ),
3141 >,
3142 pub typeFieldReferenceChanged: ::std::option::Option<
3143 unsafe extern "C" fn(
3144 ctxt: *mut ::std::os::raw::c_void,
3145 view: *mut BNBinaryView,
3146 name: *mut BNQualifiedName,
3147 offset: u64,
3148 ),
3149 >,
3150 pub segmentAdded: ::std::option::Option<
3151 unsafe extern "C" fn(
3152 ctxt: *mut ::std::os::raw::c_void,
3153 view: *mut BNBinaryView,
3154 segment: *mut BNSegment,
3155 ),
3156 >,
3157 pub segmentRemoved: ::std::option::Option<
3158 unsafe extern "C" fn(
3159 ctxt: *mut ::std::os::raw::c_void,
3160 view: *mut BNBinaryView,
3161 segment: *mut BNSegment,
3162 ),
3163 >,
3164 pub segmentUpdated: ::std::option::Option<
3165 unsafe extern "C" fn(
3166 ctxt: *mut ::std::os::raw::c_void,
3167 view: *mut BNBinaryView,
3168 segment: *mut BNSegment,
3169 ),
3170 >,
3171 pub sectionAdded: ::std::option::Option<
3172 unsafe extern "C" fn(
3173 ctxt: *mut ::std::os::raw::c_void,
3174 view: *mut BNBinaryView,
3175 section: *mut BNSection,
3176 ),
3177 >,
3178 pub sectionRemoved: ::std::option::Option<
3179 unsafe extern "C" fn(
3180 ctxt: *mut ::std::os::raw::c_void,
3181 view: *mut BNBinaryView,
3182 section: *mut BNSection,
3183 ),
3184 >,
3185 pub sectionUpdated: ::std::option::Option<
3186 unsafe extern "C" fn(
3187 ctxt: *mut ::std::os::raw::c_void,
3188 view: *mut BNBinaryView,
3189 section: *mut BNSection,
3190 ),
3191 >,
3192 pub componentNameUpdated: ::std::option::Option<
3193 unsafe extern "C" fn(
3194 ctxt: *mut ::std::os::raw::c_void,
3195 view: *mut BNBinaryView,
3196 previousName: *mut ::std::os::raw::c_char,
3197 component: *mut BNComponent,
3198 ),
3199 >,
3200 pub componentAdded: ::std::option::Option<
3201 unsafe extern "C" fn(
3202 ctxt: *mut ::std::os::raw::c_void,
3203 view: *mut BNBinaryView,
3204 component: *mut BNComponent,
3205 ),
3206 >,
3207 pub componentMoved: ::std::option::Option<
3208 unsafe extern "C" fn(
3209 ctxt: *mut ::std::os::raw::c_void,
3210 view: *mut BNBinaryView,
3211 formerParent: *mut BNComponent,
3212 newParent: *mut BNComponent,
3213 component: *mut BNComponent,
3214 ),
3215 >,
3216 pub componentRemoved: ::std::option::Option<
3217 unsafe extern "C" fn(
3218 ctxt: *mut ::std::os::raw::c_void,
3219 view: *mut BNBinaryView,
3220 formerParent: *mut BNComponent,
3221 component: *mut BNComponent,
3222 ),
3223 >,
3224 pub componentFunctionAdded: ::std::option::Option<
3225 unsafe extern "C" fn(
3226 ctxt: *mut ::std::os::raw::c_void,
3227 view: *mut BNBinaryView,
3228 component: *mut BNComponent,
3229 function: *mut BNFunction,
3230 ),
3231 >,
3232 pub componentFunctionRemoved: ::std::option::Option<
3233 unsafe extern "C" fn(
3234 ctxt: *mut ::std::os::raw::c_void,
3235 view: *mut BNBinaryView,
3236 component: *mut BNComponent,
3237 function: *mut BNFunction,
3238 ),
3239 >,
3240 pub componentDataVariableAdded: ::std::option::Option<
3241 unsafe extern "C" fn(
3242 ctxt: *mut ::std::os::raw::c_void,
3243 view: *mut BNBinaryView,
3244 component: *mut BNComponent,
3245 var: *mut BNDataVariable,
3246 ),
3247 >,
3248 pub componentDataVariableRemoved: ::std::option::Option<
3249 unsafe extern "C" fn(
3250 ctxt: *mut ::std::os::raw::c_void,
3251 view: *mut BNBinaryView,
3252 component: *mut BNComponent,
3253 var: *mut BNDataVariable,
3254 ),
3255 >,
3256 pub externalLibraryAdded: ::std::option::Option<
3257 unsafe extern "C" fn(
3258 ctxt: *mut ::std::os::raw::c_void,
3259 data: *mut BNBinaryView,
3260 library: *mut BNExternalLibrary,
3261 ),
3262 >,
3263 pub externalLibraryUpdated: ::std::option::Option<
3264 unsafe extern "C" fn(
3265 ctxt: *mut ::std::os::raw::c_void,
3266 data: *mut BNBinaryView,
3267 library: *mut BNExternalLibrary,
3268 ),
3269 >,
3270 pub externalLibraryRemoved: ::std::option::Option<
3271 unsafe extern "C" fn(
3272 ctxt: *mut ::std::os::raw::c_void,
3273 data: *mut BNBinaryView,
3274 library: *mut BNExternalLibrary,
3275 ),
3276 >,
3277 pub externalLocationAdded: ::std::option::Option<
3278 unsafe extern "C" fn(
3279 ctxt: *mut ::std::os::raw::c_void,
3280 data: *mut BNBinaryView,
3281 location: *mut BNExternalLocation,
3282 ),
3283 >,
3284 pub externalLocationUpdated: ::std::option::Option<
3285 unsafe extern "C" fn(
3286 ctxt: *mut ::std::os::raw::c_void,
3287 data: *mut BNBinaryView,
3288 location: *mut BNExternalLocation,
3289 ),
3290 >,
3291 pub externalLocationRemoved: ::std::option::Option<
3292 unsafe extern "C" fn(
3293 ctxt: *mut ::std::os::raw::c_void,
3294 data: *mut BNBinaryView,
3295 location: *mut BNExternalLocation,
3296 ),
3297 >,
3298 pub typeArchiveAttached: ::std::option::Option<
3299 unsafe extern "C" fn(
3300 ctxt: *mut ::std::os::raw::c_void,
3301 view: *mut BNBinaryView,
3302 id: *const ::std::os::raw::c_char,
3303 path: *const ::std::os::raw::c_char,
3304 ),
3305 >,
3306 pub typeArchiveDetached: ::std::option::Option<
3307 unsafe extern "C" fn(
3308 ctxt: *mut ::std::os::raw::c_void,
3309 view: *mut BNBinaryView,
3310 id: *const ::std::os::raw::c_char,
3311 path: *const ::std::os::raw::c_char,
3312 ),
3313 >,
3314 pub typeArchiveConnected: ::std::option::Option<
3315 unsafe extern "C" fn(
3316 ctxt: *mut ::std::os::raw::c_void,
3317 view: *mut BNBinaryView,
3318 archive: *mut BNTypeArchive,
3319 ),
3320 >,
3321 pub typeArchiveDisconnected: ::std::option::Option<
3322 unsafe extern "C" fn(
3323 ctxt: *mut ::std::os::raw::c_void,
3324 view: *mut BNBinaryView,
3325 archive: *mut BNTypeArchive,
3326 ),
3327 >,
3328 pub undoEntryAdded: ::std::option::Option<
3329 unsafe extern "C" fn(
3330 ctxt: *mut ::std::os::raw::c_void,
3331 view: *mut BNBinaryView,
3332 entry: *mut BNUndoEntry,
3333 ),
3334 >,
3335 pub undoEntryTaken: ::std::option::Option<
3336 unsafe extern "C" fn(
3337 ctxt: *mut ::std::os::raw::c_void,
3338 view: *mut BNBinaryView,
3339 entry: *mut BNUndoEntry,
3340 ),
3341 >,
3342 pub redoEntryTaken: ::std::option::Option<
3343 unsafe extern "C" fn(
3344 ctxt: *mut ::std::os::raw::c_void,
3345 view: *mut BNBinaryView,
3346 entry: *mut BNUndoEntry,
3347 ),
3348 >,
3349 pub rebased: ::std::option::Option<
3350 unsafe extern "C" fn(
3351 ctxt: *mut ::std::os::raw::c_void,
3352 oldView: *mut BNBinaryView,
3353 newView: *mut BNBinaryView,
3354 ),
3355 >,
3356}
3357#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3358const _: () = {
3359 ["Size of BNBinaryDataNotification"]
3360 [::std::mem::size_of::<BNBinaryDataNotification>() - 448usize];
3361 ["Alignment of BNBinaryDataNotification"]
3362 [::std::mem::align_of::<BNBinaryDataNotification>() - 8usize];
3363 ["Offset of field: BNBinaryDataNotification::context"]
3364 [::std::mem::offset_of!(BNBinaryDataNotification, context) - 0usize];
3365 ["Offset of field: BNBinaryDataNotification::notificationBarrier"]
3366 [::std::mem::offset_of!(BNBinaryDataNotification, notificationBarrier) - 8usize];
3367 ["Offset of field: BNBinaryDataNotification::dataWritten"]
3368 [::std::mem::offset_of!(BNBinaryDataNotification, dataWritten) - 16usize];
3369 ["Offset of field: BNBinaryDataNotification::dataInserted"]
3370 [::std::mem::offset_of!(BNBinaryDataNotification, dataInserted) - 24usize];
3371 ["Offset of field: BNBinaryDataNotification::dataRemoved"]
3372 [::std::mem::offset_of!(BNBinaryDataNotification, dataRemoved) - 32usize];
3373 ["Offset of field: BNBinaryDataNotification::functionAdded"]
3374 [::std::mem::offset_of!(BNBinaryDataNotification, functionAdded) - 40usize];
3375 ["Offset of field: BNBinaryDataNotification::functionRemoved"]
3376 [::std::mem::offset_of!(BNBinaryDataNotification, functionRemoved) - 48usize];
3377 ["Offset of field: BNBinaryDataNotification::functionUpdated"]
3378 [::std::mem::offset_of!(BNBinaryDataNotification, functionUpdated) - 56usize];
3379 ["Offset of field: BNBinaryDataNotification::functionUpdateRequested"]
3380 [::std::mem::offset_of!(BNBinaryDataNotification, functionUpdateRequested) - 64usize];
3381 ["Offset of field: BNBinaryDataNotification::dataVariableAdded"]
3382 [::std::mem::offset_of!(BNBinaryDataNotification, dataVariableAdded) - 72usize];
3383 ["Offset of field: BNBinaryDataNotification::dataVariableRemoved"]
3384 [::std::mem::offset_of!(BNBinaryDataNotification, dataVariableRemoved) - 80usize];
3385 ["Offset of field: BNBinaryDataNotification::dataVariableUpdated"]
3386 [::std::mem::offset_of!(BNBinaryDataNotification, dataVariableUpdated) - 88usize];
3387 ["Offset of field: BNBinaryDataNotification::dataMetadataUpdated"]
3388 [::std::mem::offset_of!(BNBinaryDataNotification, dataMetadataUpdated) - 96usize];
3389 ["Offset of field: BNBinaryDataNotification::tagTypeUpdated"]
3390 [::std::mem::offset_of!(BNBinaryDataNotification, tagTypeUpdated) - 104usize];
3391 ["Offset of field: BNBinaryDataNotification::tagAdded"]
3392 [::std::mem::offset_of!(BNBinaryDataNotification, tagAdded) - 112usize];
3393 ["Offset of field: BNBinaryDataNotification::tagRemoved"]
3394 [::std::mem::offset_of!(BNBinaryDataNotification, tagRemoved) - 120usize];
3395 ["Offset of field: BNBinaryDataNotification::tagUpdated"]
3396 [::std::mem::offset_of!(BNBinaryDataNotification, tagUpdated) - 128usize];
3397 ["Offset of field: BNBinaryDataNotification::symbolAdded"]
3398 [::std::mem::offset_of!(BNBinaryDataNotification, symbolAdded) - 136usize];
3399 ["Offset of field: BNBinaryDataNotification::symbolRemoved"]
3400 [::std::mem::offset_of!(BNBinaryDataNotification, symbolRemoved) - 144usize];
3401 ["Offset of field: BNBinaryDataNotification::symbolUpdated"]
3402 [::std::mem::offset_of!(BNBinaryDataNotification, symbolUpdated) - 152usize];
3403 ["Offset of field: BNBinaryDataNotification::stringFound"]
3404 [::std::mem::offset_of!(BNBinaryDataNotification, stringFound) - 160usize];
3405 ["Offset of field: BNBinaryDataNotification::stringRemoved"]
3406 [::std::mem::offset_of!(BNBinaryDataNotification, stringRemoved) - 168usize];
3407 ["Offset of field: BNBinaryDataNotification::derivedStringFound"]
3408 [::std::mem::offset_of!(BNBinaryDataNotification, derivedStringFound) - 176usize];
3409 ["Offset of field: BNBinaryDataNotification::derivedStringRemoved"]
3410 [::std::mem::offset_of!(BNBinaryDataNotification, derivedStringRemoved) - 184usize];
3411 ["Offset of field: BNBinaryDataNotification::typeDefined"]
3412 [::std::mem::offset_of!(BNBinaryDataNotification, typeDefined) - 192usize];
3413 ["Offset of field: BNBinaryDataNotification::typeUndefined"]
3414 [::std::mem::offset_of!(BNBinaryDataNotification, typeUndefined) - 200usize];
3415 ["Offset of field: BNBinaryDataNotification::typeReferenceChanged"]
3416 [::std::mem::offset_of!(BNBinaryDataNotification, typeReferenceChanged) - 208usize];
3417 ["Offset of field: BNBinaryDataNotification::typeFieldReferenceChanged"]
3418 [::std::mem::offset_of!(BNBinaryDataNotification, typeFieldReferenceChanged) - 216usize];
3419 ["Offset of field: BNBinaryDataNotification::segmentAdded"]
3420 [::std::mem::offset_of!(BNBinaryDataNotification, segmentAdded) - 224usize];
3421 ["Offset of field: BNBinaryDataNotification::segmentRemoved"]
3422 [::std::mem::offset_of!(BNBinaryDataNotification, segmentRemoved) - 232usize];
3423 ["Offset of field: BNBinaryDataNotification::segmentUpdated"]
3424 [::std::mem::offset_of!(BNBinaryDataNotification, segmentUpdated) - 240usize];
3425 ["Offset of field: BNBinaryDataNotification::sectionAdded"]
3426 [::std::mem::offset_of!(BNBinaryDataNotification, sectionAdded) - 248usize];
3427 ["Offset of field: BNBinaryDataNotification::sectionRemoved"]
3428 [::std::mem::offset_of!(BNBinaryDataNotification, sectionRemoved) - 256usize];
3429 ["Offset of field: BNBinaryDataNotification::sectionUpdated"]
3430 [::std::mem::offset_of!(BNBinaryDataNotification, sectionUpdated) - 264usize];
3431 ["Offset of field: BNBinaryDataNotification::componentNameUpdated"]
3432 [::std::mem::offset_of!(BNBinaryDataNotification, componentNameUpdated) - 272usize];
3433 ["Offset of field: BNBinaryDataNotification::componentAdded"]
3434 [::std::mem::offset_of!(BNBinaryDataNotification, componentAdded) - 280usize];
3435 ["Offset of field: BNBinaryDataNotification::componentMoved"]
3436 [::std::mem::offset_of!(BNBinaryDataNotification, componentMoved) - 288usize];
3437 ["Offset of field: BNBinaryDataNotification::componentRemoved"]
3438 [::std::mem::offset_of!(BNBinaryDataNotification, componentRemoved) - 296usize];
3439 ["Offset of field: BNBinaryDataNotification::componentFunctionAdded"]
3440 [::std::mem::offset_of!(BNBinaryDataNotification, componentFunctionAdded) - 304usize];
3441 ["Offset of field: BNBinaryDataNotification::componentFunctionRemoved"]
3442 [::std::mem::offset_of!(BNBinaryDataNotification, componentFunctionRemoved) - 312usize];
3443 ["Offset of field: BNBinaryDataNotification::componentDataVariableAdded"]
3444 [::std::mem::offset_of!(BNBinaryDataNotification, componentDataVariableAdded) - 320usize];
3445 ["Offset of field: BNBinaryDataNotification::componentDataVariableRemoved"]
3446 [::std::mem::offset_of!(BNBinaryDataNotification, componentDataVariableRemoved) - 328usize];
3447 ["Offset of field: BNBinaryDataNotification::externalLibraryAdded"]
3448 [::std::mem::offset_of!(BNBinaryDataNotification, externalLibraryAdded) - 336usize];
3449 ["Offset of field: BNBinaryDataNotification::externalLibraryUpdated"]
3450 [::std::mem::offset_of!(BNBinaryDataNotification, externalLibraryUpdated) - 344usize];
3451 ["Offset of field: BNBinaryDataNotification::externalLibraryRemoved"]
3452 [::std::mem::offset_of!(BNBinaryDataNotification, externalLibraryRemoved) - 352usize];
3453 ["Offset of field: BNBinaryDataNotification::externalLocationAdded"]
3454 [::std::mem::offset_of!(BNBinaryDataNotification, externalLocationAdded) - 360usize];
3455 ["Offset of field: BNBinaryDataNotification::externalLocationUpdated"]
3456 [::std::mem::offset_of!(BNBinaryDataNotification, externalLocationUpdated) - 368usize];
3457 ["Offset of field: BNBinaryDataNotification::externalLocationRemoved"]
3458 [::std::mem::offset_of!(BNBinaryDataNotification, externalLocationRemoved) - 376usize];
3459 ["Offset of field: BNBinaryDataNotification::typeArchiveAttached"]
3460 [::std::mem::offset_of!(BNBinaryDataNotification, typeArchiveAttached) - 384usize];
3461 ["Offset of field: BNBinaryDataNotification::typeArchiveDetached"]
3462 [::std::mem::offset_of!(BNBinaryDataNotification, typeArchiveDetached) - 392usize];
3463 ["Offset of field: BNBinaryDataNotification::typeArchiveConnected"]
3464 [::std::mem::offset_of!(BNBinaryDataNotification, typeArchiveConnected) - 400usize];
3465 ["Offset of field: BNBinaryDataNotification::typeArchiveDisconnected"]
3466 [::std::mem::offset_of!(BNBinaryDataNotification, typeArchiveDisconnected) - 408usize];
3467 ["Offset of field: BNBinaryDataNotification::undoEntryAdded"]
3468 [::std::mem::offset_of!(BNBinaryDataNotification, undoEntryAdded) - 416usize];
3469 ["Offset of field: BNBinaryDataNotification::undoEntryTaken"]
3470 [::std::mem::offset_of!(BNBinaryDataNotification, undoEntryTaken) - 424usize];
3471 ["Offset of field: BNBinaryDataNotification::redoEntryTaken"]
3472 [::std::mem::offset_of!(BNBinaryDataNotification, redoEntryTaken) - 432usize];
3473 ["Offset of field: BNBinaryDataNotification::rebased"]
3474 [::std::mem::offset_of!(BNBinaryDataNotification, rebased) - 440usize];
3475};
3476impl Default for BNBinaryDataNotification {
3477 fn default() -> Self {
3478 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3479 unsafe {
3480 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3481 s.assume_init()
3482 }
3483 }
3484}
3485#[repr(C)]
3486#[derive(Debug, Copy, Clone)]
3487pub struct BNProjectNotification {
3488 pub context: *mut ::std::os::raw::c_void,
3489 pub beforeOpenProject: ::std::option::Option<
3490 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, project: *mut BNProject) -> bool,
3491 >,
3492 pub afterOpenProject: ::std::option::Option<
3493 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, project: *mut BNProject),
3494 >,
3495 pub beforeCloseProject: ::std::option::Option<
3496 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, project: *mut BNProject) -> bool,
3497 >,
3498 pub afterCloseProject: ::std::option::Option<
3499 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, project: *mut BNProject),
3500 >,
3501 pub beforeProjectMetadataWritten: ::std::option::Option<
3502 unsafe extern "C" fn(
3503 ctxt: *mut ::std::os::raw::c_void,
3504 project: *mut BNProject,
3505 key: *mut ::std::os::raw::c_char,
3506 value: *mut BNMetadata,
3507 ) -> bool,
3508 >,
3509 pub afterProjectMetadataWritten: ::std::option::Option<
3510 unsafe extern "C" fn(
3511 ctxt: *mut ::std::os::raw::c_void,
3512 project: *mut BNProject,
3513 key: *mut ::std::os::raw::c_char,
3514 value: *mut BNMetadata,
3515 ),
3516 >,
3517 pub beforeProjectFileCreated: ::std::option::Option<
3518 unsafe extern "C" fn(
3519 ctxt: *mut ::std::os::raw::c_void,
3520 project: *mut BNProject,
3521 projectFile: *mut BNProjectFile,
3522 ) -> bool,
3523 >,
3524 pub afterProjectFileCreated: ::std::option::Option<
3525 unsafe extern "C" fn(
3526 ctxt: *mut ::std::os::raw::c_void,
3527 project: *mut BNProject,
3528 projectFile: *mut BNProjectFile,
3529 ),
3530 >,
3531 pub beforeProjectFileUpdated: ::std::option::Option<
3532 unsafe extern "C" fn(
3533 ctxt: *mut ::std::os::raw::c_void,
3534 project: *mut BNProject,
3535 projectFile: *mut BNProjectFile,
3536 ) -> bool,
3537 >,
3538 pub afterProjectFileUpdated: ::std::option::Option<
3539 unsafe extern "C" fn(
3540 ctxt: *mut ::std::os::raw::c_void,
3541 project: *mut BNProject,
3542 projectFile: *mut BNProjectFile,
3543 ),
3544 >,
3545 pub beforeProjectFileDeleted: ::std::option::Option<
3546 unsafe extern "C" fn(
3547 ctxt: *mut ::std::os::raw::c_void,
3548 project: *mut BNProject,
3549 projectFile: *mut BNProjectFile,
3550 ) -> bool,
3551 >,
3552 pub afterProjectFileDeleted: ::std::option::Option<
3553 unsafe extern "C" fn(
3554 ctxt: *mut ::std::os::raw::c_void,
3555 project: *mut BNProject,
3556 projectFile: *mut BNProjectFile,
3557 ),
3558 >,
3559 pub beforeProjectFolderCreated: ::std::option::Option<
3560 unsafe extern "C" fn(
3561 ctxt: *mut ::std::os::raw::c_void,
3562 project: *mut BNProject,
3563 projectFolder: *mut BNProjectFolder,
3564 ) -> bool,
3565 >,
3566 pub afterProjectFolderCreated: ::std::option::Option<
3567 unsafe extern "C" fn(
3568 ctxt: *mut ::std::os::raw::c_void,
3569 project: *mut BNProject,
3570 projectFolder: *mut BNProjectFolder,
3571 ),
3572 >,
3573 pub beforeProjectFolderUpdated: ::std::option::Option<
3574 unsafe extern "C" fn(
3575 ctxt: *mut ::std::os::raw::c_void,
3576 project: *mut BNProject,
3577 projectFolder: *mut BNProjectFolder,
3578 ) -> bool,
3579 >,
3580 pub afterProjectFolderUpdated: ::std::option::Option<
3581 unsafe extern "C" fn(
3582 ctxt: *mut ::std::os::raw::c_void,
3583 project: *mut BNProject,
3584 projectFolder: *mut BNProjectFolder,
3585 ),
3586 >,
3587 pub beforeProjectFolderDeleted: ::std::option::Option<
3588 unsafe extern "C" fn(
3589 ctxt: *mut ::std::os::raw::c_void,
3590 project: *mut BNProject,
3591 projectFolder: *mut BNProjectFolder,
3592 ) -> bool,
3593 >,
3594 pub afterProjectFolderDeleted: ::std::option::Option<
3595 unsafe extern "C" fn(
3596 ctxt: *mut ::std::os::raw::c_void,
3597 project: *mut BNProject,
3598 projectFolder: *mut BNProjectFolder,
3599 ),
3600 >,
3601}
3602#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3603const _: () = {
3604 ["Size of BNProjectNotification"][::std::mem::size_of::<BNProjectNotification>() - 152usize];
3605 ["Alignment of BNProjectNotification"]
3606 [::std::mem::align_of::<BNProjectNotification>() - 8usize];
3607 ["Offset of field: BNProjectNotification::context"]
3608 [::std::mem::offset_of!(BNProjectNotification, context) - 0usize];
3609 ["Offset of field: BNProjectNotification::beforeOpenProject"]
3610 [::std::mem::offset_of!(BNProjectNotification, beforeOpenProject) - 8usize];
3611 ["Offset of field: BNProjectNotification::afterOpenProject"]
3612 [::std::mem::offset_of!(BNProjectNotification, afterOpenProject) - 16usize];
3613 ["Offset of field: BNProjectNotification::beforeCloseProject"]
3614 [::std::mem::offset_of!(BNProjectNotification, beforeCloseProject) - 24usize];
3615 ["Offset of field: BNProjectNotification::afterCloseProject"]
3616 [::std::mem::offset_of!(BNProjectNotification, afterCloseProject) - 32usize];
3617 ["Offset of field: BNProjectNotification::beforeProjectMetadataWritten"]
3618 [::std::mem::offset_of!(BNProjectNotification, beforeProjectMetadataWritten) - 40usize];
3619 ["Offset of field: BNProjectNotification::afterProjectMetadataWritten"]
3620 [::std::mem::offset_of!(BNProjectNotification, afterProjectMetadataWritten) - 48usize];
3621 ["Offset of field: BNProjectNotification::beforeProjectFileCreated"]
3622 [::std::mem::offset_of!(BNProjectNotification, beforeProjectFileCreated) - 56usize];
3623 ["Offset of field: BNProjectNotification::afterProjectFileCreated"]
3624 [::std::mem::offset_of!(BNProjectNotification, afterProjectFileCreated) - 64usize];
3625 ["Offset of field: BNProjectNotification::beforeProjectFileUpdated"]
3626 [::std::mem::offset_of!(BNProjectNotification, beforeProjectFileUpdated) - 72usize];
3627 ["Offset of field: BNProjectNotification::afterProjectFileUpdated"]
3628 [::std::mem::offset_of!(BNProjectNotification, afterProjectFileUpdated) - 80usize];
3629 ["Offset of field: BNProjectNotification::beforeProjectFileDeleted"]
3630 [::std::mem::offset_of!(BNProjectNotification, beforeProjectFileDeleted) - 88usize];
3631 ["Offset of field: BNProjectNotification::afterProjectFileDeleted"]
3632 [::std::mem::offset_of!(BNProjectNotification, afterProjectFileDeleted) - 96usize];
3633 ["Offset of field: BNProjectNotification::beforeProjectFolderCreated"]
3634 [::std::mem::offset_of!(BNProjectNotification, beforeProjectFolderCreated) - 104usize];
3635 ["Offset of field: BNProjectNotification::afterProjectFolderCreated"]
3636 [::std::mem::offset_of!(BNProjectNotification, afterProjectFolderCreated) - 112usize];
3637 ["Offset of field: BNProjectNotification::beforeProjectFolderUpdated"]
3638 [::std::mem::offset_of!(BNProjectNotification, beforeProjectFolderUpdated) - 120usize];
3639 ["Offset of field: BNProjectNotification::afterProjectFolderUpdated"]
3640 [::std::mem::offset_of!(BNProjectNotification, afterProjectFolderUpdated) - 128usize];
3641 ["Offset of field: BNProjectNotification::beforeProjectFolderDeleted"]
3642 [::std::mem::offset_of!(BNProjectNotification, beforeProjectFolderDeleted) - 136usize];
3643 ["Offset of field: BNProjectNotification::afterProjectFolderDeleted"]
3644 [::std::mem::offset_of!(BNProjectNotification, afterProjectFolderDeleted) - 144usize];
3645};
3646impl Default for BNProjectNotification {
3647 fn default() -> Self {
3648 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3649 unsafe {
3650 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3651 s.assume_init()
3652 }
3653 }
3654}
3655#[repr(C)]
3656#[derive(Debug, Copy, Clone)]
3657pub struct BNFileAccessor {
3658 pub context: *mut ::std::os::raw::c_void,
3659 pub getLength:
3660 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u64>,
3661 pub read: ::std::option::Option<
3662 unsafe extern "C" fn(
3663 ctxt: *mut ::std::os::raw::c_void,
3664 dest: *mut ::std::os::raw::c_void,
3665 offset: u64,
3666 len: usize,
3667 ) -> usize,
3668 >,
3669 pub write: ::std::option::Option<
3670 unsafe extern "C" fn(
3671 ctxt: *mut ::std::os::raw::c_void,
3672 offset: u64,
3673 src: *const ::std::os::raw::c_void,
3674 len: usize,
3675 ) -> usize,
3676 >,
3677}
3678#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3679const _: () = {
3680 ["Size of BNFileAccessor"][::std::mem::size_of::<BNFileAccessor>() - 32usize];
3681 ["Alignment of BNFileAccessor"][::std::mem::align_of::<BNFileAccessor>() - 8usize];
3682 ["Offset of field: BNFileAccessor::context"]
3683 [::std::mem::offset_of!(BNFileAccessor, context) - 0usize];
3684 ["Offset of field: BNFileAccessor::getLength"]
3685 [::std::mem::offset_of!(BNFileAccessor, getLength) - 8usize];
3686 ["Offset of field: BNFileAccessor::read"]
3687 [::std::mem::offset_of!(BNFileAccessor, read) - 16usize];
3688 ["Offset of field: BNFileAccessor::write"]
3689 [::std::mem::offset_of!(BNFileAccessor, write) - 24usize];
3690};
3691impl Default for BNFileAccessor {
3692 fn default() -> Self {
3693 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3694 unsafe {
3695 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3696 s.assume_init()
3697 }
3698 }
3699}
3700#[repr(C)]
3701#[derive(Debug, Copy, Clone)]
3702pub struct BNCustomBinaryView {
3703 pub context: *mut ::std::os::raw::c_void,
3704 pub init:
3705 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
3706 pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
3707 pub externalRefTaken:
3708 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
3709 pub externalRefReleased:
3710 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
3711 pub read: ::std::option::Option<
3712 unsafe extern "C" fn(
3713 ctxt: *mut ::std::os::raw::c_void,
3714 dest: *mut ::std::os::raw::c_void,
3715 offset: u64,
3716 len: usize,
3717 ) -> usize,
3718 >,
3719 pub write: ::std::option::Option<
3720 unsafe extern "C" fn(
3721 ctxt: *mut ::std::os::raw::c_void,
3722 offset: u64,
3723 src: *const ::std::os::raw::c_void,
3724 len: usize,
3725 ) -> usize,
3726 >,
3727 pub insert: ::std::option::Option<
3728 unsafe extern "C" fn(
3729 ctxt: *mut ::std::os::raw::c_void,
3730 offset: u64,
3731 src: *const ::std::os::raw::c_void,
3732 len: usize,
3733 ) -> usize,
3734 >,
3735 pub remove: ::std::option::Option<
3736 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64, len: u64) -> usize,
3737 >,
3738 pub getModification: ::std::option::Option<
3739 unsafe extern "C" fn(
3740 ctxt: *mut ::std::os::raw::c_void,
3741 offset: u64,
3742 ) -> BNModificationStatus,
3743 >,
3744 pub isValidOffset: ::std::option::Option<
3745 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> bool,
3746 >,
3747 pub isOffsetReadable: ::std::option::Option<
3748 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> bool,
3749 >,
3750 pub isOffsetWritable: ::std::option::Option<
3751 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> bool,
3752 >,
3753 pub isOffsetExecutable: ::std::option::Option<
3754 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> bool,
3755 >,
3756 pub isOffsetBackedByFile: ::std::option::Option<
3757 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> bool,
3758 >,
3759 pub getNextValidOffset: ::std::option::Option<
3760 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> u64,
3761 >,
3762 pub getStart:
3763 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u64>,
3764 pub getLength:
3765 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u64>,
3766 pub getEntryPoint:
3767 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u64>,
3768 pub isExecutable:
3769 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
3770 pub getDefaultEndianness: ::std::option::Option<
3771 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> BNEndianness,
3772 >,
3773 pub isRelocatable:
3774 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
3775 pub getAddressSize:
3776 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
3777 pub save: ::std::option::Option<
3778 unsafe extern "C" fn(
3779 ctxt: *mut ::std::os::raw::c_void,
3780 accessor: *mut BNFileAccessor,
3781 ) -> bool,
3782 >,
3783 pub onAfterSnapshotDataApplied:
3784 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
3785}
3786#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3787const _: () = {
3788 ["Size of BNCustomBinaryView"][::std::mem::size_of::<BNCustomBinaryView>() - 200usize];
3789 ["Alignment of BNCustomBinaryView"][::std::mem::align_of::<BNCustomBinaryView>() - 8usize];
3790 ["Offset of field: BNCustomBinaryView::context"]
3791 [::std::mem::offset_of!(BNCustomBinaryView, context) - 0usize];
3792 ["Offset of field: BNCustomBinaryView::init"]
3793 [::std::mem::offset_of!(BNCustomBinaryView, init) - 8usize];
3794 ["Offset of field: BNCustomBinaryView::freeObject"]
3795 [::std::mem::offset_of!(BNCustomBinaryView, freeObject) - 16usize];
3796 ["Offset of field: BNCustomBinaryView::externalRefTaken"]
3797 [::std::mem::offset_of!(BNCustomBinaryView, externalRefTaken) - 24usize];
3798 ["Offset of field: BNCustomBinaryView::externalRefReleased"]
3799 [::std::mem::offset_of!(BNCustomBinaryView, externalRefReleased) - 32usize];
3800 ["Offset of field: BNCustomBinaryView::read"]
3801 [::std::mem::offset_of!(BNCustomBinaryView, read) - 40usize];
3802 ["Offset of field: BNCustomBinaryView::write"]
3803 [::std::mem::offset_of!(BNCustomBinaryView, write) - 48usize];
3804 ["Offset of field: BNCustomBinaryView::insert"]
3805 [::std::mem::offset_of!(BNCustomBinaryView, insert) - 56usize];
3806 ["Offset of field: BNCustomBinaryView::remove"]
3807 [::std::mem::offset_of!(BNCustomBinaryView, remove) - 64usize];
3808 ["Offset of field: BNCustomBinaryView::getModification"]
3809 [::std::mem::offset_of!(BNCustomBinaryView, getModification) - 72usize];
3810 ["Offset of field: BNCustomBinaryView::isValidOffset"]
3811 [::std::mem::offset_of!(BNCustomBinaryView, isValidOffset) - 80usize];
3812 ["Offset of field: BNCustomBinaryView::isOffsetReadable"]
3813 [::std::mem::offset_of!(BNCustomBinaryView, isOffsetReadable) - 88usize];
3814 ["Offset of field: BNCustomBinaryView::isOffsetWritable"]
3815 [::std::mem::offset_of!(BNCustomBinaryView, isOffsetWritable) - 96usize];
3816 ["Offset of field: BNCustomBinaryView::isOffsetExecutable"]
3817 [::std::mem::offset_of!(BNCustomBinaryView, isOffsetExecutable) - 104usize];
3818 ["Offset of field: BNCustomBinaryView::isOffsetBackedByFile"]
3819 [::std::mem::offset_of!(BNCustomBinaryView, isOffsetBackedByFile) - 112usize];
3820 ["Offset of field: BNCustomBinaryView::getNextValidOffset"]
3821 [::std::mem::offset_of!(BNCustomBinaryView, getNextValidOffset) - 120usize];
3822 ["Offset of field: BNCustomBinaryView::getStart"]
3823 [::std::mem::offset_of!(BNCustomBinaryView, getStart) - 128usize];
3824 ["Offset of field: BNCustomBinaryView::getLength"]
3825 [::std::mem::offset_of!(BNCustomBinaryView, getLength) - 136usize];
3826 ["Offset of field: BNCustomBinaryView::getEntryPoint"]
3827 [::std::mem::offset_of!(BNCustomBinaryView, getEntryPoint) - 144usize];
3828 ["Offset of field: BNCustomBinaryView::isExecutable"]
3829 [::std::mem::offset_of!(BNCustomBinaryView, isExecutable) - 152usize];
3830 ["Offset of field: BNCustomBinaryView::getDefaultEndianness"]
3831 [::std::mem::offset_of!(BNCustomBinaryView, getDefaultEndianness) - 160usize];
3832 ["Offset of field: BNCustomBinaryView::isRelocatable"]
3833 [::std::mem::offset_of!(BNCustomBinaryView, isRelocatable) - 168usize];
3834 ["Offset of field: BNCustomBinaryView::getAddressSize"]
3835 [::std::mem::offset_of!(BNCustomBinaryView, getAddressSize) - 176usize];
3836 ["Offset of field: BNCustomBinaryView::save"]
3837 [::std::mem::offset_of!(BNCustomBinaryView, save) - 184usize];
3838 ["Offset of field: BNCustomBinaryView::onAfterSnapshotDataApplied"]
3839 [::std::mem::offset_of!(BNCustomBinaryView, onAfterSnapshotDataApplied) - 192usize];
3840};
3841impl Default for BNCustomBinaryView {
3842 fn default() -> Self {
3843 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3844 unsafe {
3845 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3846 s.assume_init()
3847 }
3848 }
3849}
3850#[repr(C)]
3851#[derive(Debug, Copy, Clone)]
3852pub struct BNCustomBinaryViewType {
3853 pub context: *mut ::std::os::raw::c_void,
3854 pub create: ::std::option::Option<
3855 unsafe extern "C" fn(
3856 ctxt: *mut ::std::os::raw::c_void,
3857 data: *mut BNBinaryView,
3858 ) -> *mut BNBinaryView,
3859 >,
3860 pub parse: ::std::option::Option<
3861 unsafe extern "C" fn(
3862 ctxt: *mut ::std::os::raw::c_void,
3863 data: *mut BNBinaryView,
3864 ) -> *mut BNBinaryView,
3865 >,
3866 pub isValidForData: ::std::option::Option<
3867 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, data: *mut BNBinaryView) -> bool,
3868 >,
3869 pub isDeprecated:
3870 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
3871 pub isForceLoadable:
3872 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
3873 pub getLoadSettingsForData: ::std::option::Option<
3874 unsafe extern "C" fn(
3875 ctxt: *mut ::std::os::raw::c_void,
3876 data: *mut BNBinaryView,
3877 ) -> *mut BNSettings,
3878 >,
3879 pub hasNoInitialContent:
3880 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
3881}
3882#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3883const _: () = {
3884 ["Size of BNCustomBinaryViewType"][::std::mem::size_of::<BNCustomBinaryViewType>() - 64usize];
3885 ["Alignment of BNCustomBinaryViewType"]
3886 [::std::mem::align_of::<BNCustomBinaryViewType>() - 8usize];
3887 ["Offset of field: BNCustomBinaryViewType::context"]
3888 [::std::mem::offset_of!(BNCustomBinaryViewType, context) - 0usize];
3889 ["Offset of field: BNCustomBinaryViewType::create"]
3890 [::std::mem::offset_of!(BNCustomBinaryViewType, create) - 8usize];
3891 ["Offset of field: BNCustomBinaryViewType::parse"]
3892 [::std::mem::offset_of!(BNCustomBinaryViewType, parse) - 16usize];
3893 ["Offset of field: BNCustomBinaryViewType::isValidForData"]
3894 [::std::mem::offset_of!(BNCustomBinaryViewType, isValidForData) - 24usize];
3895 ["Offset of field: BNCustomBinaryViewType::isDeprecated"]
3896 [::std::mem::offset_of!(BNCustomBinaryViewType, isDeprecated) - 32usize];
3897 ["Offset of field: BNCustomBinaryViewType::isForceLoadable"]
3898 [::std::mem::offset_of!(BNCustomBinaryViewType, isForceLoadable) - 40usize];
3899 ["Offset of field: BNCustomBinaryViewType::getLoadSettingsForData"]
3900 [::std::mem::offset_of!(BNCustomBinaryViewType, getLoadSettingsForData) - 48usize];
3901 ["Offset of field: BNCustomBinaryViewType::hasNoInitialContent"]
3902 [::std::mem::offset_of!(BNCustomBinaryViewType, hasNoInitialContent) - 56usize];
3903};
3904impl Default for BNCustomBinaryViewType {
3905 fn default() -> Self {
3906 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3907 unsafe {
3908 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3909 s.assume_init()
3910 }
3911 }
3912}
3913#[repr(C)]
3914#[derive(Debug, Copy, Clone)]
3915pub struct BNTransformParameterInfo {
3916 pub name: *mut ::std::os::raw::c_char,
3917 pub longName: *mut ::std::os::raw::c_char,
3918 #[doc = " Variable length if zero"]
3919 pub fixedLength: usize,
3920}
3921#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3922const _: () = {
3923 ["Size of BNTransformParameterInfo"]
3924 [::std::mem::size_of::<BNTransformParameterInfo>() - 24usize];
3925 ["Alignment of BNTransformParameterInfo"]
3926 [::std::mem::align_of::<BNTransformParameterInfo>() - 8usize];
3927 ["Offset of field: BNTransformParameterInfo::name"]
3928 [::std::mem::offset_of!(BNTransformParameterInfo, name) - 0usize];
3929 ["Offset of field: BNTransformParameterInfo::longName"]
3930 [::std::mem::offset_of!(BNTransformParameterInfo, longName) - 8usize];
3931 ["Offset of field: BNTransformParameterInfo::fixedLength"]
3932 [::std::mem::offset_of!(BNTransformParameterInfo, fixedLength) - 16usize];
3933};
3934impl Default for BNTransformParameterInfo {
3935 fn default() -> Self {
3936 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3937 unsafe {
3938 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3939 s.assume_init()
3940 }
3941 }
3942}
3943#[repr(C)]
3944#[derive(Debug, Copy, Clone)]
3945pub struct BNTransformParameter {
3946 pub name: *const ::std::os::raw::c_char,
3947 pub value: *mut BNDataBuffer,
3948}
3949#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3950const _: () = {
3951 ["Size of BNTransformParameter"][::std::mem::size_of::<BNTransformParameter>() - 16usize];
3952 ["Alignment of BNTransformParameter"][::std::mem::align_of::<BNTransformParameter>() - 8usize];
3953 ["Offset of field: BNTransformParameter::name"]
3954 [::std::mem::offset_of!(BNTransformParameter, name) - 0usize];
3955 ["Offset of field: BNTransformParameter::value"]
3956 [::std::mem::offset_of!(BNTransformParameter, value) - 8usize];
3957};
3958impl Default for BNTransformParameter {
3959 fn default() -> Self {
3960 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3961 unsafe {
3962 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3963 s.assume_init()
3964 }
3965 }
3966}
3967#[repr(C)]
3968#[derive(Debug, Copy, Clone)]
3969pub struct BNCustomTransform {
3970 pub context: *mut ::std::os::raw::c_void,
3971 pub getParameters: ::std::option::Option<
3972 unsafe extern "C" fn(
3973 ctxt: *mut ::std::os::raw::c_void,
3974 count: *mut usize,
3975 ) -> *mut BNTransformParameterInfo,
3976 >,
3977 pub freeParameters: ::std::option::Option<
3978 unsafe extern "C" fn(params: *mut BNTransformParameterInfo, count: usize),
3979 >,
3980 pub decode: ::std::option::Option<
3981 unsafe extern "C" fn(
3982 ctxt: *mut ::std::os::raw::c_void,
3983 input: *mut BNDataBuffer,
3984 output: *mut BNDataBuffer,
3985 params: *mut BNTransformParameter,
3986 paramCount: usize,
3987 ) -> bool,
3988 >,
3989 pub encode: ::std::option::Option<
3990 unsafe extern "C" fn(
3991 ctxt: *mut ::std::os::raw::c_void,
3992 input: *mut BNDataBuffer,
3993 output: *mut BNDataBuffer,
3994 params: *mut BNTransformParameter,
3995 paramCount: usize,
3996 ) -> bool,
3997 >,
3998 pub decodeWithContext: ::std::option::Option<
3999 unsafe extern "C" fn(
4000 ctxt: *mut ::std::os::raw::c_void,
4001 context: *mut BNTransformContext,
4002 params: *mut BNTransformParameter,
4003 paramCount: usize,
4004 ) -> bool,
4005 >,
4006 pub canDecode: ::std::option::Option<
4007 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, input: *mut BNBinaryView) -> bool,
4008 >,
4009}
4010#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4011const _: () = {
4012 ["Size of BNCustomTransform"][::std::mem::size_of::<BNCustomTransform>() - 56usize];
4013 ["Alignment of BNCustomTransform"][::std::mem::align_of::<BNCustomTransform>() - 8usize];
4014 ["Offset of field: BNCustomTransform::context"]
4015 [::std::mem::offset_of!(BNCustomTransform, context) - 0usize];
4016 ["Offset of field: BNCustomTransform::getParameters"]
4017 [::std::mem::offset_of!(BNCustomTransform, getParameters) - 8usize];
4018 ["Offset of field: BNCustomTransform::freeParameters"]
4019 [::std::mem::offset_of!(BNCustomTransform, freeParameters) - 16usize];
4020 ["Offset of field: BNCustomTransform::decode"]
4021 [::std::mem::offset_of!(BNCustomTransform, decode) - 24usize];
4022 ["Offset of field: BNCustomTransform::encode"]
4023 [::std::mem::offset_of!(BNCustomTransform, encode) - 32usize];
4024 ["Offset of field: BNCustomTransform::decodeWithContext"]
4025 [::std::mem::offset_of!(BNCustomTransform, decodeWithContext) - 40usize];
4026 ["Offset of field: BNCustomTransform::canDecode"]
4027 [::std::mem::offset_of!(BNCustomTransform, canDecode) - 48usize];
4028};
4029impl Default for BNCustomTransform {
4030 fn default() -> Self {
4031 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4032 unsafe {
4033 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4034 s.assume_init()
4035 }
4036 }
4037}
4038#[repr(C)]
4039#[derive(Debug, Copy, Clone)]
4040pub struct BNInstructionInfo {
4041 pub length: usize,
4042 pub branchCount: usize,
4043 pub archTransitionByTargetAddr: bool,
4044 pub delaySlots: u8,
4045 pub branchType: [BNBranchType; 3usize],
4046 pub branchTarget: [u64; 3usize],
4047 #[doc = " If null, same architecture as instruction"]
4048 pub branchArch: [*mut BNArchitecture; 3usize],
4049}
4050#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4051const _: () = {
4052 ["Size of BNInstructionInfo"][::std::mem::size_of::<BNInstructionInfo>() - 72usize];
4053 ["Alignment of BNInstructionInfo"][::std::mem::align_of::<BNInstructionInfo>() - 8usize];
4054 ["Offset of field: BNInstructionInfo::length"]
4055 [::std::mem::offset_of!(BNInstructionInfo, length) - 0usize];
4056 ["Offset of field: BNInstructionInfo::branchCount"]
4057 [::std::mem::offset_of!(BNInstructionInfo, branchCount) - 8usize];
4058 ["Offset of field: BNInstructionInfo::archTransitionByTargetAddr"]
4059 [::std::mem::offset_of!(BNInstructionInfo, archTransitionByTargetAddr) - 16usize];
4060 ["Offset of field: BNInstructionInfo::delaySlots"]
4061 [::std::mem::offset_of!(BNInstructionInfo, delaySlots) - 17usize];
4062 ["Offset of field: BNInstructionInfo::branchType"]
4063 [::std::mem::offset_of!(BNInstructionInfo, branchType) - 18usize];
4064 ["Offset of field: BNInstructionInfo::branchTarget"]
4065 [::std::mem::offset_of!(BNInstructionInfo, branchTarget) - 24usize];
4066 ["Offset of field: BNInstructionInfo::branchArch"]
4067 [::std::mem::offset_of!(BNInstructionInfo, branchArch) - 48usize];
4068};
4069impl Default for BNInstructionInfo {
4070 fn default() -> Self {
4071 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4072 unsafe {
4073 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4074 s.assume_init()
4075 }
4076 }
4077}
4078#[repr(u32)]
4079#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4080pub enum BNLinearSweepAnalysisCapability {
4081 BNLinearSweepCallTargetAnalysis = 1,
4082 BNLinearSweepGenericControlFlowAnalysis = 2,
4083}
4084#[repr(u8)]
4085#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4086pub enum BNRelocationType {
4087 ELFGlobalRelocationType = 0,
4088 ELFCopyRelocationType = 1,
4089 ELFJumpSlotRelocationType = 2,
4090 StandardRelocationType = 3,
4091 IgnoredRelocation = 4,
4092 UnhandledRelocation = 5,
4093}
4094#[repr(C)]
4095#[derive(Debug, Copy, Clone)]
4096pub struct BNRelocationInfo {
4097 #[doc = " BinaryNinja Relocation Type"]
4098 pub type_: BNRelocationType,
4099 #[doc = " PC Relative or Absolute (subtract address from relocation)"]
4100 pub pcRelative: bool,
4101 #[doc = " Relative to start of module (Add module base to relocation)"]
4102 pub baseRelative: bool,
4103 #[doc = " Base address for this binary view"]
4104 pub base: u64,
4105 #[doc = " Size of the data to be written"]
4106 pub size: usize,
4107 #[doc = " After addition/subtraction truncate to"]
4108 pub truncateSize: usize,
4109 #[doc = " Base type from relocation entry"]
4110 pub nativeType: u64,
4111 #[doc = " Addend value from relocation entry"]
4112 pub addend: usize,
4113 #[doc = " Addend should be subtracted"]
4114 pub hasSign: bool,
4115 #[doc = " Addend should be read from the BinaryView"]
4116 pub implicitAddend: bool,
4117 #[doc = " Relocation entry points to external symbol"]
4118 pub external: bool,
4119 #[doc = " Index into symbol table"]
4120 pub symbolIndex: usize,
4121 #[doc = " Index into the section table"]
4122 pub sectionIndex: usize,
4123 #[doc = " Absolute address or segment offset"]
4124 pub address: u64,
4125 #[doc = " Target (set automatically)"]
4126 pub target: u64,
4127 #[doc = " This relocation is effecting data not code"]
4128 pub dataRelocation: bool,
4129 pub relocationDataCache: [u8; 8usize],
4130 #[doc = " Link to relocation another related relocation"]
4131 pub prev: *mut BNRelocationInfo,
4132 #[doc = " Link to relocation another related relocation"]
4133 pub next: *mut BNRelocationInfo,
4134}
4135#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4136const _: () = {
4137 ["Size of BNRelocationInfo"][::std::mem::size_of::<BNRelocationInfo>() - 120usize];
4138 ["Alignment of BNRelocationInfo"][::std::mem::align_of::<BNRelocationInfo>() - 8usize];
4139 ["Offset of field: BNRelocationInfo::type_"]
4140 [::std::mem::offset_of!(BNRelocationInfo, type_) - 0usize];
4141 ["Offset of field: BNRelocationInfo::pcRelative"]
4142 [::std::mem::offset_of!(BNRelocationInfo, pcRelative) - 1usize];
4143 ["Offset of field: BNRelocationInfo::baseRelative"]
4144 [::std::mem::offset_of!(BNRelocationInfo, baseRelative) - 2usize];
4145 ["Offset of field: BNRelocationInfo::base"]
4146 [::std::mem::offset_of!(BNRelocationInfo, base) - 8usize];
4147 ["Offset of field: BNRelocationInfo::size"]
4148 [::std::mem::offset_of!(BNRelocationInfo, size) - 16usize];
4149 ["Offset of field: BNRelocationInfo::truncateSize"]
4150 [::std::mem::offset_of!(BNRelocationInfo, truncateSize) - 24usize];
4151 ["Offset of field: BNRelocationInfo::nativeType"]
4152 [::std::mem::offset_of!(BNRelocationInfo, nativeType) - 32usize];
4153 ["Offset of field: BNRelocationInfo::addend"]
4154 [::std::mem::offset_of!(BNRelocationInfo, addend) - 40usize];
4155 ["Offset of field: BNRelocationInfo::hasSign"]
4156 [::std::mem::offset_of!(BNRelocationInfo, hasSign) - 48usize];
4157 ["Offset of field: BNRelocationInfo::implicitAddend"]
4158 [::std::mem::offset_of!(BNRelocationInfo, implicitAddend) - 49usize];
4159 ["Offset of field: BNRelocationInfo::external"]
4160 [::std::mem::offset_of!(BNRelocationInfo, external) - 50usize];
4161 ["Offset of field: BNRelocationInfo::symbolIndex"]
4162 [::std::mem::offset_of!(BNRelocationInfo, symbolIndex) - 56usize];
4163 ["Offset of field: BNRelocationInfo::sectionIndex"]
4164 [::std::mem::offset_of!(BNRelocationInfo, sectionIndex) - 64usize];
4165 ["Offset of field: BNRelocationInfo::address"]
4166 [::std::mem::offset_of!(BNRelocationInfo, address) - 72usize];
4167 ["Offset of field: BNRelocationInfo::target"]
4168 [::std::mem::offset_of!(BNRelocationInfo, target) - 80usize];
4169 ["Offset of field: BNRelocationInfo::dataRelocation"]
4170 [::std::mem::offset_of!(BNRelocationInfo, dataRelocation) - 88usize];
4171 ["Offset of field: BNRelocationInfo::relocationDataCache"]
4172 [::std::mem::offset_of!(BNRelocationInfo, relocationDataCache) - 89usize];
4173 ["Offset of field: BNRelocationInfo::prev"]
4174 [::std::mem::offset_of!(BNRelocationInfo, prev) - 104usize];
4175 ["Offset of field: BNRelocationInfo::next"]
4176 [::std::mem::offset_of!(BNRelocationInfo, next) - 112usize];
4177};
4178impl Default for BNRelocationInfo {
4179 fn default() -> Self {
4180 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4181 unsafe {
4182 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4183 s.assume_init()
4184 }
4185 }
4186}
4187#[repr(C)]
4188#[derive(Debug, Copy, Clone)]
4189pub struct BNInstructionTextToken {
4190 pub type_: BNInstructionTextTokenType,
4191 pub text: *mut ::std::os::raw::c_char,
4192 pub value: u64,
4193 pub width: u64,
4194 pub size: usize,
4195 pub operand: usize,
4196 pub context: BNInstructionTextTokenContext,
4197 pub confidence: u8,
4198 pub address: u64,
4199 pub typeNames: *mut *mut ::std::os::raw::c_char,
4200 pub namesCount: usize,
4201 pub exprIndex: usize,
4202}
4203#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4204const _: () = {
4205 ["Size of BNInstructionTextToken"][::std::mem::size_of::<BNInstructionTextToken>() - 88usize];
4206 ["Alignment of BNInstructionTextToken"]
4207 [::std::mem::align_of::<BNInstructionTextToken>() - 8usize];
4208 ["Offset of field: BNInstructionTextToken::type_"]
4209 [::std::mem::offset_of!(BNInstructionTextToken, type_) - 0usize];
4210 ["Offset of field: BNInstructionTextToken::text"]
4211 [::std::mem::offset_of!(BNInstructionTextToken, text) - 8usize];
4212 ["Offset of field: BNInstructionTextToken::value"]
4213 [::std::mem::offset_of!(BNInstructionTextToken, value) - 16usize];
4214 ["Offset of field: BNInstructionTextToken::width"]
4215 [::std::mem::offset_of!(BNInstructionTextToken, width) - 24usize];
4216 ["Offset of field: BNInstructionTextToken::size"]
4217 [::std::mem::offset_of!(BNInstructionTextToken, size) - 32usize];
4218 ["Offset of field: BNInstructionTextToken::operand"]
4219 [::std::mem::offset_of!(BNInstructionTextToken, operand) - 40usize];
4220 ["Offset of field: BNInstructionTextToken::context"]
4221 [::std::mem::offset_of!(BNInstructionTextToken, context) - 48usize];
4222 ["Offset of field: BNInstructionTextToken::confidence"]
4223 [::std::mem::offset_of!(BNInstructionTextToken, confidence) - 49usize];
4224 ["Offset of field: BNInstructionTextToken::address"]
4225 [::std::mem::offset_of!(BNInstructionTextToken, address) - 56usize];
4226 ["Offset of field: BNInstructionTextToken::typeNames"]
4227 [::std::mem::offset_of!(BNInstructionTextToken, typeNames) - 64usize];
4228 ["Offset of field: BNInstructionTextToken::namesCount"]
4229 [::std::mem::offset_of!(BNInstructionTextToken, namesCount) - 72usize];
4230 ["Offset of field: BNInstructionTextToken::exprIndex"]
4231 [::std::mem::offset_of!(BNInstructionTextToken, exprIndex) - 80usize];
4232};
4233impl Default for BNInstructionTextToken {
4234 fn default() -> Self {
4235 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4236 unsafe {
4237 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4238 s.assume_init()
4239 }
4240 }
4241}
4242#[repr(C)]
4243#[derive(Debug, Copy, Clone)]
4244pub struct BNInstructionTextLine {
4245 pub tokens: *mut BNInstructionTextToken,
4246 pub count: usize,
4247}
4248#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4249const _: () = {
4250 ["Size of BNInstructionTextLine"][::std::mem::size_of::<BNInstructionTextLine>() - 16usize];
4251 ["Alignment of BNInstructionTextLine"]
4252 [::std::mem::align_of::<BNInstructionTextLine>() - 8usize];
4253 ["Offset of field: BNInstructionTextLine::tokens"]
4254 [::std::mem::offset_of!(BNInstructionTextLine, tokens) - 0usize];
4255 ["Offset of field: BNInstructionTextLine::count"]
4256 [::std::mem::offset_of!(BNInstructionTextLine, count) - 8usize];
4257};
4258impl Default for BNInstructionTextLine {
4259 fn default() -> Self {
4260 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4261 unsafe {
4262 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4263 s.assume_init()
4264 }
4265 }
4266}
4267#[repr(u8)]
4268#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4269pub enum BNTypeDefinitionLineType {
4270 TypedefLineType = 0,
4271 StructDefinitionLineType = 1,
4272 StructFieldLineType = 2,
4273 StructDefinitionEndLineType = 3,
4274 EnumDefinitionLineType = 4,
4275 EnumMemberLineType = 5,
4276 EnumDefinitionEndLineType = 6,
4277 PaddingLineType = 7,
4278 UndefinedXrefLineType = 8,
4279 CollapsedPaddingLineType = 9,
4280 EmptyLineType = 10,
4281}
4282#[repr(C)]
4283#[derive(Debug, Copy, Clone)]
4284pub struct BNTypeDefinitionLine {
4285 pub lineType: BNTypeDefinitionLineType,
4286 pub tokens: *mut BNInstructionTextToken,
4287 pub count: usize,
4288 pub type_: *mut BNType,
4289 pub parentType: *mut BNType,
4290 pub rootType: *mut BNType,
4291 pub rootTypeName: *mut ::std::os::raw::c_char,
4292 pub baseType: *mut BNNamedTypeReference,
4293 pub baseOffset: u64,
4294 pub offset: u64,
4295 pub fieldIndex: usize,
4296}
4297#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4298const _: () = {
4299 ["Size of BNTypeDefinitionLine"][::std::mem::size_of::<BNTypeDefinitionLine>() - 88usize];
4300 ["Alignment of BNTypeDefinitionLine"][::std::mem::align_of::<BNTypeDefinitionLine>() - 8usize];
4301 ["Offset of field: BNTypeDefinitionLine::lineType"]
4302 [::std::mem::offset_of!(BNTypeDefinitionLine, lineType) - 0usize];
4303 ["Offset of field: BNTypeDefinitionLine::tokens"]
4304 [::std::mem::offset_of!(BNTypeDefinitionLine, tokens) - 8usize];
4305 ["Offset of field: BNTypeDefinitionLine::count"]
4306 [::std::mem::offset_of!(BNTypeDefinitionLine, count) - 16usize];
4307 ["Offset of field: BNTypeDefinitionLine::type_"]
4308 [::std::mem::offset_of!(BNTypeDefinitionLine, type_) - 24usize];
4309 ["Offset of field: BNTypeDefinitionLine::parentType"]
4310 [::std::mem::offset_of!(BNTypeDefinitionLine, parentType) - 32usize];
4311 ["Offset of field: BNTypeDefinitionLine::rootType"]
4312 [::std::mem::offset_of!(BNTypeDefinitionLine, rootType) - 40usize];
4313 ["Offset of field: BNTypeDefinitionLine::rootTypeName"]
4314 [::std::mem::offset_of!(BNTypeDefinitionLine, rootTypeName) - 48usize];
4315 ["Offset of field: BNTypeDefinitionLine::baseType"]
4316 [::std::mem::offset_of!(BNTypeDefinitionLine, baseType) - 56usize];
4317 ["Offset of field: BNTypeDefinitionLine::baseOffset"]
4318 [::std::mem::offset_of!(BNTypeDefinitionLine, baseOffset) - 64usize];
4319 ["Offset of field: BNTypeDefinitionLine::offset"]
4320 [::std::mem::offset_of!(BNTypeDefinitionLine, offset) - 72usize];
4321 ["Offset of field: BNTypeDefinitionLine::fieldIndex"]
4322 [::std::mem::offset_of!(BNTypeDefinitionLine, fieldIndex) - 80usize];
4323};
4324impl Default for BNTypeDefinitionLine {
4325 fn default() -> Self {
4326 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4327 unsafe {
4328 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4329 s.assume_init()
4330 }
4331 }
4332}
4333#[repr(C)]
4334#[derive(Debug, Copy, Clone)]
4335pub struct BNFlagConditionForSemanticClass {
4336 pub semanticClass: u32,
4337 pub condition: BNLowLevelILFlagCondition,
4338}
4339#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4340const _: () = {
4341 ["Size of BNFlagConditionForSemanticClass"]
4342 [::std::mem::size_of::<BNFlagConditionForSemanticClass>() - 8usize];
4343 ["Alignment of BNFlagConditionForSemanticClass"]
4344 [::std::mem::align_of::<BNFlagConditionForSemanticClass>() - 4usize];
4345 ["Offset of field: BNFlagConditionForSemanticClass::semanticClass"]
4346 [::std::mem::offset_of!(BNFlagConditionForSemanticClass, semanticClass) - 0usize];
4347 ["Offset of field: BNFlagConditionForSemanticClass::condition"]
4348 [::std::mem::offset_of!(BNFlagConditionForSemanticClass, condition) - 4usize];
4349};
4350impl Default for BNFlagConditionForSemanticClass {
4351 fn default() -> Self {
4352 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4353 unsafe {
4354 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4355 s.assume_init()
4356 }
4357 }
4358}
4359#[repr(C)]
4360#[derive(Debug, Copy, Clone)]
4361pub struct BNNameAndType {
4362 pub name: *mut ::std::os::raw::c_char,
4363 pub type_: *mut BNType,
4364 pub typeConfidence: u8,
4365}
4366#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4367const _: () = {
4368 ["Size of BNNameAndType"][::std::mem::size_of::<BNNameAndType>() - 24usize];
4369 ["Alignment of BNNameAndType"][::std::mem::align_of::<BNNameAndType>() - 8usize];
4370 ["Offset of field: BNNameAndType::name"][::std::mem::offset_of!(BNNameAndType, name) - 0usize];
4371 ["Offset of field: BNNameAndType::type_"]
4372 [::std::mem::offset_of!(BNNameAndType, type_) - 8usize];
4373 ["Offset of field: BNNameAndType::typeConfidence"]
4374 [::std::mem::offset_of!(BNNameAndType, typeConfidence) - 16usize];
4375};
4376impl Default for BNNameAndType {
4377 fn default() -> Self {
4378 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4379 unsafe {
4380 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4381 s.assume_init()
4382 }
4383 }
4384}
4385#[repr(C)]
4386#[derive(Debug, Copy, Clone)]
4387pub struct BNTypeWithConfidence {
4388 pub type_: *mut BNType,
4389 pub confidence: u8,
4390}
4391#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4392const _: () = {
4393 ["Size of BNTypeWithConfidence"][::std::mem::size_of::<BNTypeWithConfidence>() - 16usize];
4394 ["Alignment of BNTypeWithConfidence"][::std::mem::align_of::<BNTypeWithConfidence>() - 8usize];
4395 ["Offset of field: BNTypeWithConfidence::type_"]
4396 [::std::mem::offset_of!(BNTypeWithConfidence, type_) - 0usize];
4397 ["Offset of field: BNTypeWithConfidence::confidence"]
4398 [::std::mem::offset_of!(BNTypeWithConfidence, confidence) - 8usize];
4399};
4400impl Default for BNTypeWithConfidence {
4401 fn default() -> Self {
4402 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4403 unsafe {
4404 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4405 s.assume_init()
4406 }
4407 }
4408}
4409#[repr(u8)]
4410#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4411pub enum BNFunctionAnalysisSkipOverride {
4412 DefaultFunctionAnalysisSkip = 0,
4413 NeverSkipFunctionAnalysis = 1,
4414 AlwaysSkipFunctionAnalysis = 2,
4415}
4416#[repr(C)]
4417#[derive(Debug, Copy, Clone)]
4418pub struct BNBasicBlockAnalysisContext {
4419 pub function: *mut BNFunction,
4420 #[doc = " IN"]
4421 pub analysisSkipOverride: BNFunctionAnalysisSkipOverride,
4422 pub guidedAnalysisMode: bool,
4423 pub triggerGuidedOnInvalidInstruction: bool,
4424 pub translateTailCalls: bool,
4425 pub disallowBranchToString: bool,
4426 pub maxFunctionSize: u64,
4427 pub indirectBranchesCount: usize,
4428 pub indirectBranches: *mut BNIndirectBranchInfo,
4429 pub indirectNoReturnCallsCount: usize,
4430 pub indirectNoReturnCalls: *mut BNArchitectureAndAddress,
4431 #[doc = " OUT; can be set directly"]
4432 pub maxSizeReached: bool,
4433 #[doc = " IN *and* OUT"]
4434 pub contextualFunctionReturnCount: usize,
4435 pub contextualFunctionReturnLocations: *mut BNArchitectureAndAddress,
4436 pub contextualFunctionReturnValues: *mut bool,
4437 #[doc = " OUT"]
4438 pub directRefCount: usize,
4439 pub directRefSources: *mut BNArchitectureAndAddress,
4440 pub directRefTargets: *mut u64,
4441 pub directNoReturnCallsCount: usize,
4442 pub directNoReturnCalls: *mut BNArchitectureAndAddress,
4443 pub haltedDisassemblyAddressesCount: usize,
4444 pub haltedDisassemblyAddresses: *mut BNArchitectureAndAddress,
4445 pub inlinedUnresolvedIndirectBranchCount: usize,
4446 pub inlinedUnresolvedIndirectBranches: *mut BNArchitectureAndAddress,
4447 pub functionArchContext: *mut ::std::os::raw::c_void,
4448 pub lifterInstructionData: *mut BNLifterInstructionData,
4449}
4450#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4451const _: () = {
4452 ["Size of BNBasicBlockAnalysisContext"]
4453 [::std::mem::size_of::<BNBasicBlockAnalysisContext>() - 176usize];
4454 ["Alignment of BNBasicBlockAnalysisContext"]
4455 [::std::mem::align_of::<BNBasicBlockAnalysisContext>() - 8usize];
4456 ["Offset of field: BNBasicBlockAnalysisContext::function"]
4457 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, function) - 0usize];
4458 ["Offset of field: BNBasicBlockAnalysisContext::analysisSkipOverride"]
4459 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, analysisSkipOverride) - 8usize];
4460 ["Offset of field: BNBasicBlockAnalysisContext::guidedAnalysisMode"]
4461 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, guidedAnalysisMode) - 9usize];
4462 ["Offset of field: BNBasicBlockAnalysisContext::triggerGuidedOnInvalidInstruction"][::std::mem::offset_of!(
4463 BNBasicBlockAnalysisContext,
4464 triggerGuidedOnInvalidInstruction
4465 )
4466 - 10usize];
4467 ["Offset of field: BNBasicBlockAnalysisContext::translateTailCalls"]
4468 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, translateTailCalls) - 11usize];
4469 ["Offset of field: BNBasicBlockAnalysisContext::disallowBranchToString"]
4470 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, disallowBranchToString) - 12usize];
4471 ["Offset of field: BNBasicBlockAnalysisContext::maxFunctionSize"]
4472 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, maxFunctionSize) - 16usize];
4473 ["Offset of field: BNBasicBlockAnalysisContext::indirectBranchesCount"]
4474 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, indirectBranchesCount) - 24usize];
4475 ["Offset of field: BNBasicBlockAnalysisContext::indirectBranches"]
4476 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, indirectBranches) - 32usize];
4477 ["Offset of field: BNBasicBlockAnalysisContext::indirectNoReturnCallsCount"]
4478 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, indirectNoReturnCallsCount) - 40usize];
4479 ["Offset of field: BNBasicBlockAnalysisContext::indirectNoReturnCalls"]
4480 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, indirectNoReturnCalls) - 48usize];
4481 ["Offset of field: BNBasicBlockAnalysisContext::maxSizeReached"]
4482 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, maxSizeReached) - 56usize];
4483 ["Offset of field: BNBasicBlockAnalysisContext::contextualFunctionReturnCount"][::std::mem::offset_of!(
4484 BNBasicBlockAnalysisContext,
4485 contextualFunctionReturnCount
4486 ) - 64usize];
4487 ["Offset of field: BNBasicBlockAnalysisContext::contextualFunctionReturnLocations"][::std::mem::offset_of!(
4488 BNBasicBlockAnalysisContext,
4489 contextualFunctionReturnLocations
4490 )
4491 - 72usize];
4492 ["Offset of field: BNBasicBlockAnalysisContext::contextualFunctionReturnValues"][::std::mem::offset_of!(
4493 BNBasicBlockAnalysisContext,
4494 contextualFunctionReturnValues
4495 ) - 80usize];
4496 ["Offset of field: BNBasicBlockAnalysisContext::directRefCount"]
4497 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, directRefCount) - 88usize];
4498 ["Offset of field: BNBasicBlockAnalysisContext::directRefSources"]
4499 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, directRefSources) - 96usize];
4500 ["Offset of field: BNBasicBlockAnalysisContext::directRefTargets"]
4501 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, directRefTargets) - 104usize];
4502 ["Offset of field: BNBasicBlockAnalysisContext::directNoReturnCallsCount"]
4503 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, directNoReturnCallsCount) - 112usize];
4504 ["Offset of field: BNBasicBlockAnalysisContext::directNoReturnCalls"]
4505 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, directNoReturnCalls) - 120usize];
4506 ["Offset of field: BNBasicBlockAnalysisContext::haltedDisassemblyAddressesCount"][::std::mem::offset_of!(
4507 BNBasicBlockAnalysisContext,
4508 haltedDisassemblyAddressesCount
4509 ) - 128usize];
4510 ["Offset of field: BNBasicBlockAnalysisContext::haltedDisassemblyAddresses"][::std::mem::offset_of!(
4511 BNBasicBlockAnalysisContext,
4512 haltedDisassemblyAddresses
4513 ) - 136usize];
4514 ["Offset of field: BNBasicBlockAnalysisContext::inlinedUnresolvedIndirectBranchCount"][::std::mem::offset_of!(
4515 BNBasicBlockAnalysisContext,
4516 inlinedUnresolvedIndirectBranchCount
4517 )
4518 - 144usize];
4519 ["Offset of field: BNBasicBlockAnalysisContext::inlinedUnresolvedIndirectBranches"][::std::mem::offset_of!(
4520 BNBasicBlockAnalysisContext,
4521 inlinedUnresolvedIndirectBranches
4522 )
4523 - 152usize];
4524 ["Offset of field: BNBasicBlockAnalysisContext::functionArchContext"]
4525 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, functionArchContext) - 160usize];
4526 ["Offset of field: BNBasicBlockAnalysisContext::lifterInstructionData"]
4527 [::std::mem::offset_of!(BNBasicBlockAnalysisContext, lifterInstructionData) - 168usize];
4528};
4529impl Default for BNBasicBlockAnalysisContext {
4530 fn default() -> Self {
4531 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4532 unsafe {
4533 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4534 s.assume_init()
4535 }
4536 }
4537}
4538#[repr(C)]
4539#[derive(Debug, Copy, Clone)]
4540pub struct BNFunctionLifterContext {
4541 #[doc = " IN"]
4542 pub platform: *mut BNPlatform,
4543 pub logger: *mut BNLogger,
4544 pub basicBlockCount: usize,
4545 pub basicBlocks: *mut *mut BNBasicBlock,
4546 pub inlinedRemappingEntryCount: usize,
4547 pub inlinedRemappingKeys: *mut BNArchitectureAndAddress,
4548 pub inlinedRemappingValues: *mut BNArchitectureAndAddress,
4549 pub indirectBranchesCount: usize,
4550 pub indirectBranches: *mut BNIndirectBranchInfo,
4551 pub noReturnCallsCount: usize,
4552 pub noReturnCalls: *mut BNArchitectureAndAddress,
4553 pub contextualFunctionReturnCount: usize,
4554 pub contextualFunctionReturnLocations: *mut BNArchitectureAndAddress,
4555 pub contextualFunctionReturnValues: *mut bool,
4556 pub inlinedCallsCount: usize,
4557 pub inlinedCalls: *mut u64,
4558 pub functionArchContext: *mut ::std::os::raw::c_void,
4559 pub lifterInstructionData: *mut BNLifterInstructionData,
4560 #[doc = " OUT"]
4561 pub containsInlinedFunctions: *mut bool,
4562}
4563#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4564const _: () = {
4565 ["Size of BNFunctionLifterContext"]
4566 [::std::mem::size_of::<BNFunctionLifterContext>() - 152usize];
4567 ["Alignment of BNFunctionLifterContext"]
4568 [::std::mem::align_of::<BNFunctionLifterContext>() - 8usize];
4569 ["Offset of field: BNFunctionLifterContext::platform"]
4570 [::std::mem::offset_of!(BNFunctionLifterContext, platform) - 0usize];
4571 ["Offset of field: BNFunctionLifterContext::logger"]
4572 [::std::mem::offset_of!(BNFunctionLifterContext, logger) - 8usize];
4573 ["Offset of field: BNFunctionLifterContext::basicBlockCount"]
4574 [::std::mem::offset_of!(BNFunctionLifterContext, basicBlockCount) - 16usize];
4575 ["Offset of field: BNFunctionLifterContext::basicBlocks"]
4576 [::std::mem::offset_of!(BNFunctionLifterContext, basicBlocks) - 24usize];
4577 ["Offset of field: BNFunctionLifterContext::inlinedRemappingEntryCount"]
4578 [::std::mem::offset_of!(BNFunctionLifterContext, inlinedRemappingEntryCount) - 32usize];
4579 ["Offset of field: BNFunctionLifterContext::inlinedRemappingKeys"]
4580 [::std::mem::offset_of!(BNFunctionLifterContext, inlinedRemappingKeys) - 40usize];
4581 ["Offset of field: BNFunctionLifterContext::inlinedRemappingValues"]
4582 [::std::mem::offset_of!(BNFunctionLifterContext, inlinedRemappingValues) - 48usize];
4583 ["Offset of field: BNFunctionLifterContext::indirectBranchesCount"]
4584 [::std::mem::offset_of!(BNFunctionLifterContext, indirectBranchesCount) - 56usize];
4585 ["Offset of field: BNFunctionLifterContext::indirectBranches"]
4586 [::std::mem::offset_of!(BNFunctionLifterContext, indirectBranches) - 64usize];
4587 ["Offset of field: BNFunctionLifterContext::noReturnCallsCount"]
4588 [::std::mem::offset_of!(BNFunctionLifterContext, noReturnCallsCount) - 72usize];
4589 ["Offset of field: BNFunctionLifterContext::noReturnCalls"]
4590 [::std::mem::offset_of!(BNFunctionLifterContext, noReturnCalls) - 80usize];
4591 ["Offset of field: BNFunctionLifterContext::contextualFunctionReturnCount"]
4592 [::std::mem::offset_of!(BNFunctionLifterContext, contextualFunctionReturnCount) - 88usize];
4593 ["Offset of field: BNFunctionLifterContext::contextualFunctionReturnLocations"][::std::mem::offset_of!(
4594 BNFunctionLifterContext,
4595 contextualFunctionReturnLocations
4596 ) - 96usize];
4597 ["Offset of field: BNFunctionLifterContext::contextualFunctionReturnValues"][::std::mem::offset_of!(
4598 BNFunctionLifterContext,
4599 contextualFunctionReturnValues
4600 ) - 104usize];
4601 ["Offset of field: BNFunctionLifterContext::inlinedCallsCount"]
4602 [::std::mem::offset_of!(BNFunctionLifterContext, inlinedCallsCount) - 112usize];
4603 ["Offset of field: BNFunctionLifterContext::inlinedCalls"]
4604 [::std::mem::offset_of!(BNFunctionLifterContext, inlinedCalls) - 120usize];
4605 ["Offset of field: BNFunctionLifterContext::functionArchContext"]
4606 [::std::mem::offset_of!(BNFunctionLifterContext, functionArchContext) - 128usize];
4607 ["Offset of field: BNFunctionLifterContext::lifterInstructionData"]
4608 [::std::mem::offset_of!(BNFunctionLifterContext, lifterInstructionData) - 136usize];
4609 ["Offset of field: BNFunctionLifterContext::containsInlinedFunctions"]
4610 [::std::mem::offset_of!(BNFunctionLifterContext, containsInlinedFunctions) - 144usize];
4611};
4612impl Default for BNFunctionLifterContext {
4613 fn default() -> Self {
4614 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4615 unsafe {
4616 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4617 s.assume_init()
4618 }
4619 }
4620}
4621#[repr(C)]
4622#[derive(Debug, Copy, Clone)]
4623pub struct BNCustomArchitecture {
4624 pub context: *mut ::std::os::raw::c_void,
4625 pub init: ::std::option::Option<
4626 unsafe extern "C" fn(context: *mut ::std::os::raw::c_void, obj: *mut BNArchitecture),
4627 >,
4628 pub getEndianness: ::std::option::Option<
4629 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> BNEndianness,
4630 >,
4631 pub getAddressSize:
4632 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
4633 pub getDefaultIntegerSize:
4634 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
4635 pub getInstructionAlignment:
4636 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
4637 pub getMaxInstructionLength:
4638 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
4639 pub getOpcodeDisplayLength:
4640 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
4641 pub getAssociatedArchitectureByAddress: ::std::option::Option<
4642 unsafe extern "C" fn(
4643 ctxt: *mut ::std::os::raw::c_void,
4644 addr: *mut u64,
4645 ) -> *mut BNArchitecture,
4646 >,
4647 pub getInstructionInfo: ::std::option::Option<
4648 unsafe extern "C" fn(
4649 ctxt: *mut ::std::os::raw::c_void,
4650 data: *const u8,
4651 addr: u64,
4652 maxLen: usize,
4653 result: *mut BNInstructionInfo,
4654 ) -> bool,
4655 >,
4656 pub getInstructionText: ::std::option::Option<
4657 unsafe extern "C" fn(
4658 ctxt: *mut ::std::os::raw::c_void,
4659 data: *const u8,
4660 addr: u64,
4661 len: *mut usize,
4662 result: *mut *mut BNInstructionTextToken,
4663 count: *mut usize,
4664 ) -> bool,
4665 >,
4666 pub getInstructionTextWithContext: ::std::option::Option<
4667 unsafe extern "C" fn(
4668 ctxt: *mut ::std::os::raw::c_void,
4669 data: *const u8,
4670 addr: u64,
4671 len: *mut usize,
4672 context: *mut ::std::os::raw::c_void,
4673 result: *mut *mut BNInstructionTextToken,
4674 count: *mut usize,
4675 ) -> bool,
4676 >,
4677 pub freeInstructionText: ::std::option::Option<
4678 unsafe extern "C" fn(tokens: *mut BNInstructionTextToken, count: usize),
4679 >,
4680 pub getInstructionLowLevelIL: ::std::option::Option<
4681 unsafe extern "C" fn(
4682 ctxt: *mut ::std::os::raw::c_void,
4683 data: *const u8,
4684 addr: u64,
4685 len: *mut usize,
4686 il: *mut BNLowLevelILFunction,
4687 ) -> bool,
4688 >,
4689 pub analyzeBasicBlocks: ::std::option::Option<
4690 unsafe extern "C" fn(
4691 ctxt: *mut ::std::os::raw::c_void,
4692 function: *mut BNFunction,
4693 context: *mut BNBasicBlockAnalysisContext,
4694 ),
4695 >,
4696 pub liftFunction: ::std::option::Option<
4697 unsafe extern "C" fn(
4698 ctext: *mut ::std::os::raw::c_void,
4699 function: *mut BNLowLevelILFunction,
4700 context: *mut BNFunctionLifterContext,
4701 ) -> bool,
4702 >,
4703 pub freeFunctionArchContext: ::std::option::Option<
4704 unsafe extern "C" fn(
4705 ctxt: *mut ::std::os::raw::c_void,
4706 context: *mut ::std::os::raw::c_void,
4707 ),
4708 >,
4709 pub getRegisterName: ::std::option::Option<
4710 unsafe extern "C" fn(
4711 ctxt: *mut ::std::os::raw::c_void,
4712 reg: u32,
4713 ) -> *mut ::std::os::raw::c_char,
4714 >,
4715 pub getFlagName: ::std::option::Option<
4716 unsafe extern "C" fn(
4717 ctxt: *mut ::std::os::raw::c_void,
4718 flag: u32,
4719 ) -> *mut ::std::os::raw::c_char,
4720 >,
4721 pub getFlagWriteTypeName: ::std::option::Option<
4722 unsafe extern "C" fn(
4723 ctxt: *mut ::std::os::raw::c_void,
4724 flags: u32,
4725 ) -> *mut ::std::os::raw::c_char,
4726 >,
4727 pub getSemanticFlagClassName: ::std::option::Option<
4728 unsafe extern "C" fn(
4729 ctxt: *mut ::std::os::raw::c_void,
4730 semClass: u32,
4731 ) -> *mut ::std::os::raw::c_char,
4732 >,
4733 pub getSemanticFlagGroupName: ::std::option::Option<
4734 unsafe extern "C" fn(
4735 ctxt: *mut ::std::os::raw::c_void,
4736 semGroup: u32,
4737 ) -> *mut ::std::os::raw::c_char,
4738 >,
4739 pub getFullWidthRegisters: ::std::option::Option<
4740 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4741 >,
4742 pub getAllRegisters: ::std::option::Option<
4743 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4744 >,
4745 pub getAllFlags: ::std::option::Option<
4746 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4747 >,
4748 pub getAllFlagWriteTypes: ::std::option::Option<
4749 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4750 >,
4751 pub getAllSemanticFlagClasses: ::std::option::Option<
4752 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4753 >,
4754 pub getAllSemanticFlagGroups: ::std::option::Option<
4755 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4756 >,
4757 pub getFlagRole: ::std::option::Option<
4758 unsafe extern "C" fn(
4759 ctxt: *mut ::std::os::raw::c_void,
4760 flag: u32,
4761 semClass: u32,
4762 ) -> BNFlagRole,
4763 >,
4764 pub getFlagsRequiredForFlagCondition: ::std::option::Option<
4765 unsafe extern "C" fn(
4766 ctxt: *mut ::std::os::raw::c_void,
4767 cond: BNLowLevelILFlagCondition,
4768 semClass: u32,
4769 count: *mut usize,
4770 ) -> *mut u32,
4771 >,
4772 pub getFlagsRequiredForSemanticFlagGroup: ::std::option::Option<
4773 unsafe extern "C" fn(
4774 ctxt: *mut ::std::os::raw::c_void,
4775 semGroup: u32,
4776 count: *mut usize,
4777 ) -> *mut u32,
4778 >,
4779 pub getFlagConditionsForSemanticFlagGroup: ::std::option::Option<
4780 unsafe extern "C" fn(
4781 ctxt: *mut ::std::os::raw::c_void,
4782 semGroup: u32,
4783 count: *mut usize,
4784 ) -> *mut BNFlagConditionForSemanticClass,
4785 >,
4786 pub freeFlagConditionsForSemanticFlagGroup: ::std::option::Option<
4787 unsafe extern "C" fn(
4788 ctxt: *mut ::std::os::raw::c_void,
4789 conditions: *mut BNFlagConditionForSemanticClass,
4790 count: usize,
4791 ),
4792 >,
4793 pub getFlagsWrittenByFlagWriteType: ::std::option::Option<
4794 unsafe extern "C" fn(
4795 ctxt: *mut ::std::os::raw::c_void,
4796 writeType: u32,
4797 count: *mut usize,
4798 ) -> *mut u32,
4799 >,
4800 pub getSemanticClassForFlagWriteType: ::std::option::Option<
4801 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, writeType: u32) -> u32,
4802 >,
4803 pub getFlagWriteLowLevelIL: ::std::option::Option<
4804 unsafe extern "C" fn(
4805 ctxt: *mut ::std::os::raw::c_void,
4806 op: BNLowLevelILOperation,
4807 size: usize,
4808 flagWriteType: u32,
4809 flag: u32,
4810 operands: *mut BNRegisterOrConstant,
4811 operandCount: usize,
4812 il: *mut BNLowLevelILFunction,
4813 ) -> usize,
4814 >,
4815 pub getFlagConditionLowLevelIL: ::std::option::Option<
4816 unsafe extern "C" fn(
4817 ctxt: *mut ::std::os::raw::c_void,
4818 cond: BNLowLevelILFlagCondition,
4819 semClass: u32,
4820 il: *mut BNLowLevelILFunction,
4821 ) -> usize,
4822 >,
4823 pub getSemanticFlagGroupLowLevelIL: ::std::option::Option<
4824 unsafe extern "C" fn(
4825 ctxt: *mut ::std::os::raw::c_void,
4826 semGroup: u32,
4827 il: *mut BNLowLevelILFunction,
4828 ) -> usize,
4829 >,
4830 pub freeRegisterList: ::std::option::Option<
4831 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, regs: *mut u32, count: usize),
4832 >,
4833 pub getRegisterInfo: ::std::option::Option<
4834 unsafe extern "C" fn(
4835 ctxt: *mut ::std::os::raw::c_void,
4836 reg: u32,
4837 result: *mut BNRegisterInfo,
4838 ),
4839 >,
4840 pub getStackPointerRegister:
4841 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
4842 pub getLinkRegister:
4843 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
4844 pub getGlobalRegisters: ::std::option::Option<
4845 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4846 >,
4847 pub getSystemRegisters: ::std::option::Option<
4848 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4849 >,
4850 pub getRegisterStackName: ::std::option::Option<
4851 unsafe extern "C" fn(
4852 ctxt: *mut ::std::os::raw::c_void,
4853 regStack: u32,
4854 ) -> *mut ::std::os::raw::c_char,
4855 >,
4856 pub getAllRegisterStacks: ::std::option::Option<
4857 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4858 >,
4859 pub getRegisterStackInfo: ::std::option::Option<
4860 unsafe extern "C" fn(
4861 ctxt: *mut ::std::os::raw::c_void,
4862 regStack: u32,
4863 result: *mut BNRegisterStackInfo,
4864 ),
4865 >,
4866 pub getIntrinsicClass: ::std::option::Option<
4867 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, intrinsic: u32) -> BNIntrinsicClass,
4868 >,
4869 pub getIntrinsicName: ::std::option::Option<
4870 unsafe extern "C" fn(
4871 ctxt: *mut ::std::os::raw::c_void,
4872 intrinsic: u32,
4873 ) -> *mut ::std::os::raw::c_char,
4874 >,
4875 pub getAllIntrinsics: ::std::option::Option<
4876 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
4877 >,
4878 pub getIntrinsicInputs: ::std::option::Option<
4879 unsafe extern "C" fn(
4880 ctxt: *mut ::std::os::raw::c_void,
4881 intrinsic: u32,
4882 count: *mut usize,
4883 ) -> *mut BNNameAndType,
4884 >,
4885 pub freeNameAndTypeList: ::std::option::Option<
4886 unsafe extern "C" fn(
4887 ctxt: *mut ::std::os::raw::c_void,
4888 nt: *mut BNNameAndType,
4889 count: usize,
4890 ),
4891 >,
4892 pub getIntrinsicOutputs: ::std::option::Option<
4893 unsafe extern "C" fn(
4894 ctxt: *mut ::std::os::raw::c_void,
4895 intrinsic: u32,
4896 count: *mut usize,
4897 ) -> *mut BNTypeWithConfidence,
4898 >,
4899 pub freeTypeList: ::std::option::Option<
4900 unsafe extern "C" fn(
4901 ctxt: *mut ::std::os::raw::c_void,
4902 types: *mut BNTypeWithConfidence,
4903 count: usize,
4904 ),
4905 >,
4906 pub canAssemble:
4907 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
4908 pub assemble: ::std::option::Option<
4909 unsafe extern "C" fn(
4910 ctxt: *mut ::std::os::raw::c_void,
4911 code: *const ::std::os::raw::c_char,
4912 addr: u64,
4913 result: *mut BNDataBuffer,
4914 errors: *mut *mut ::std::os::raw::c_char,
4915 ) -> bool,
4916 >,
4917 pub isNeverBranchPatchAvailable: ::std::option::Option<
4918 unsafe extern "C" fn(
4919 ctxt: *mut ::std::os::raw::c_void,
4920 data: *const u8,
4921 addr: u64,
4922 len: usize,
4923 ) -> bool,
4924 >,
4925 pub isAlwaysBranchPatchAvailable: ::std::option::Option<
4926 unsafe extern "C" fn(
4927 ctxt: *mut ::std::os::raw::c_void,
4928 data: *const u8,
4929 addr: u64,
4930 len: usize,
4931 ) -> bool,
4932 >,
4933 pub isInvertBranchPatchAvailable: ::std::option::Option<
4934 unsafe extern "C" fn(
4935 ctxt: *mut ::std::os::raw::c_void,
4936 data: *const u8,
4937 addr: u64,
4938 len: usize,
4939 ) -> bool,
4940 >,
4941 pub isSkipAndReturnZeroPatchAvailable: ::std::option::Option<
4942 unsafe extern "C" fn(
4943 ctxt: *mut ::std::os::raw::c_void,
4944 data: *const u8,
4945 addr: u64,
4946 len: usize,
4947 ) -> bool,
4948 >,
4949 pub isSkipAndReturnValuePatchAvailable: ::std::option::Option<
4950 unsafe extern "C" fn(
4951 ctxt: *mut ::std::os::raw::c_void,
4952 data: *const u8,
4953 addr: u64,
4954 len: usize,
4955 ) -> bool,
4956 >,
4957 pub convertToNop: ::std::option::Option<
4958 unsafe extern "C" fn(
4959 ctxt: *mut ::std::os::raw::c_void,
4960 data: *mut u8,
4961 addr: u64,
4962 len: usize,
4963 ) -> bool,
4964 >,
4965 pub alwaysBranch: ::std::option::Option<
4966 unsafe extern "C" fn(
4967 ctxt: *mut ::std::os::raw::c_void,
4968 data: *mut u8,
4969 addr: u64,
4970 len: usize,
4971 ) -> bool,
4972 >,
4973 pub invertBranch: ::std::option::Option<
4974 unsafe extern "C" fn(
4975 ctxt: *mut ::std::os::raw::c_void,
4976 data: *mut u8,
4977 addr: u64,
4978 len: usize,
4979 ) -> bool,
4980 >,
4981 pub skipAndReturnValue: ::std::option::Option<
4982 unsafe extern "C" fn(
4983 ctxt: *mut ::std::os::raw::c_void,
4984 data: *mut u8,
4985 addr: u64,
4986 len: usize,
4987 value: u64,
4988 ) -> bool,
4989 >,
4990 pub getLinearSweepInitialAlignment:
4991 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
4992 pub getLinearSweepAnalysisCapabilities:
4993 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
4994}
4995#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4996const _: () = {
4997 ["Size of BNCustomArchitecture"][::std::mem::size_of::<BNCustomArchitecture>() - 536usize];
4998 ["Alignment of BNCustomArchitecture"][::std::mem::align_of::<BNCustomArchitecture>() - 8usize];
4999 ["Offset of field: BNCustomArchitecture::context"]
5000 [::std::mem::offset_of!(BNCustomArchitecture, context) - 0usize];
5001 ["Offset of field: BNCustomArchitecture::init"]
5002 [::std::mem::offset_of!(BNCustomArchitecture, init) - 8usize];
5003 ["Offset of field: BNCustomArchitecture::getEndianness"]
5004 [::std::mem::offset_of!(BNCustomArchitecture, getEndianness) - 16usize];
5005 ["Offset of field: BNCustomArchitecture::getAddressSize"]
5006 [::std::mem::offset_of!(BNCustomArchitecture, getAddressSize) - 24usize];
5007 ["Offset of field: BNCustomArchitecture::getDefaultIntegerSize"]
5008 [::std::mem::offset_of!(BNCustomArchitecture, getDefaultIntegerSize) - 32usize];
5009 ["Offset of field: BNCustomArchitecture::getInstructionAlignment"]
5010 [::std::mem::offset_of!(BNCustomArchitecture, getInstructionAlignment) - 40usize];
5011 ["Offset of field: BNCustomArchitecture::getMaxInstructionLength"]
5012 [::std::mem::offset_of!(BNCustomArchitecture, getMaxInstructionLength) - 48usize];
5013 ["Offset of field: BNCustomArchitecture::getOpcodeDisplayLength"]
5014 [::std::mem::offset_of!(BNCustomArchitecture, getOpcodeDisplayLength) - 56usize];
5015 ["Offset of field: BNCustomArchitecture::getAssociatedArchitectureByAddress"][::std::mem::offset_of!(
5016 BNCustomArchitecture,
5017 getAssociatedArchitectureByAddress
5018 ) - 64usize];
5019 ["Offset of field: BNCustomArchitecture::getInstructionInfo"]
5020 [::std::mem::offset_of!(BNCustomArchitecture, getInstructionInfo) - 72usize];
5021 ["Offset of field: BNCustomArchitecture::getInstructionText"]
5022 [::std::mem::offset_of!(BNCustomArchitecture, getInstructionText) - 80usize];
5023 ["Offset of field: BNCustomArchitecture::getInstructionTextWithContext"]
5024 [::std::mem::offset_of!(BNCustomArchitecture, getInstructionTextWithContext) - 88usize];
5025 ["Offset of field: BNCustomArchitecture::freeInstructionText"]
5026 [::std::mem::offset_of!(BNCustomArchitecture, freeInstructionText) - 96usize];
5027 ["Offset of field: BNCustomArchitecture::getInstructionLowLevelIL"]
5028 [::std::mem::offset_of!(BNCustomArchitecture, getInstructionLowLevelIL) - 104usize];
5029 ["Offset of field: BNCustomArchitecture::analyzeBasicBlocks"]
5030 [::std::mem::offset_of!(BNCustomArchitecture, analyzeBasicBlocks) - 112usize];
5031 ["Offset of field: BNCustomArchitecture::liftFunction"]
5032 [::std::mem::offset_of!(BNCustomArchitecture, liftFunction) - 120usize];
5033 ["Offset of field: BNCustomArchitecture::freeFunctionArchContext"]
5034 [::std::mem::offset_of!(BNCustomArchitecture, freeFunctionArchContext) - 128usize];
5035 ["Offset of field: BNCustomArchitecture::getRegisterName"]
5036 [::std::mem::offset_of!(BNCustomArchitecture, getRegisterName) - 136usize];
5037 ["Offset of field: BNCustomArchitecture::getFlagName"]
5038 [::std::mem::offset_of!(BNCustomArchitecture, getFlagName) - 144usize];
5039 ["Offset of field: BNCustomArchitecture::getFlagWriteTypeName"]
5040 [::std::mem::offset_of!(BNCustomArchitecture, getFlagWriteTypeName) - 152usize];
5041 ["Offset of field: BNCustomArchitecture::getSemanticFlagClassName"]
5042 [::std::mem::offset_of!(BNCustomArchitecture, getSemanticFlagClassName) - 160usize];
5043 ["Offset of field: BNCustomArchitecture::getSemanticFlagGroupName"]
5044 [::std::mem::offset_of!(BNCustomArchitecture, getSemanticFlagGroupName) - 168usize];
5045 ["Offset of field: BNCustomArchitecture::getFullWidthRegisters"]
5046 [::std::mem::offset_of!(BNCustomArchitecture, getFullWidthRegisters) - 176usize];
5047 ["Offset of field: BNCustomArchitecture::getAllRegisters"]
5048 [::std::mem::offset_of!(BNCustomArchitecture, getAllRegisters) - 184usize];
5049 ["Offset of field: BNCustomArchitecture::getAllFlags"]
5050 [::std::mem::offset_of!(BNCustomArchitecture, getAllFlags) - 192usize];
5051 ["Offset of field: BNCustomArchitecture::getAllFlagWriteTypes"]
5052 [::std::mem::offset_of!(BNCustomArchitecture, getAllFlagWriteTypes) - 200usize];
5053 ["Offset of field: BNCustomArchitecture::getAllSemanticFlagClasses"]
5054 [::std::mem::offset_of!(BNCustomArchitecture, getAllSemanticFlagClasses) - 208usize];
5055 ["Offset of field: BNCustomArchitecture::getAllSemanticFlagGroups"]
5056 [::std::mem::offset_of!(BNCustomArchitecture, getAllSemanticFlagGroups) - 216usize];
5057 ["Offset of field: BNCustomArchitecture::getFlagRole"]
5058 [::std::mem::offset_of!(BNCustomArchitecture, getFlagRole) - 224usize];
5059 ["Offset of field: BNCustomArchitecture::getFlagsRequiredForFlagCondition"]
5060 [::std::mem::offset_of!(BNCustomArchitecture, getFlagsRequiredForFlagCondition) - 232usize];
5061 ["Offset of field: BNCustomArchitecture::getFlagsRequiredForSemanticFlagGroup"][::std::mem::offset_of!(
5062 BNCustomArchitecture,
5063 getFlagsRequiredForSemanticFlagGroup
5064 ) - 240usize];
5065 ["Offset of field: BNCustomArchitecture::getFlagConditionsForSemanticFlagGroup"][::std::mem::offset_of!(
5066 BNCustomArchitecture,
5067 getFlagConditionsForSemanticFlagGroup
5068 ) - 248usize];
5069 ["Offset of field: BNCustomArchitecture::freeFlagConditionsForSemanticFlagGroup"][::std::mem::offset_of!(
5070 BNCustomArchitecture,
5071 freeFlagConditionsForSemanticFlagGroup
5072 ) - 256usize];
5073 ["Offset of field: BNCustomArchitecture::getFlagsWrittenByFlagWriteType"]
5074 [::std::mem::offset_of!(BNCustomArchitecture, getFlagsWrittenByFlagWriteType) - 264usize];
5075 ["Offset of field: BNCustomArchitecture::getSemanticClassForFlagWriteType"]
5076 [::std::mem::offset_of!(BNCustomArchitecture, getSemanticClassForFlagWriteType) - 272usize];
5077 ["Offset of field: BNCustomArchitecture::getFlagWriteLowLevelIL"]
5078 [::std::mem::offset_of!(BNCustomArchitecture, getFlagWriteLowLevelIL) - 280usize];
5079 ["Offset of field: BNCustomArchitecture::getFlagConditionLowLevelIL"]
5080 [::std::mem::offset_of!(BNCustomArchitecture, getFlagConditionLowLevelIL) - 288usize];
5081 ["Offset of field: BNCustomArchitecture::getSemanticFlagGroupLowLevelIL"]
5082 [::std::mem::offset_of!(BNCustomArchitecture, getSemanticFlagGroupLowLevelIL) - 296usize];
5083 ["Offset of field: BNCustomArchitecture::freeRegisterList"]
5084 [::std::mem::offset_of!(BNCustomArchitecture, freeRegisterList) - 304usize];
5085 ["Offset of field: BNCustomArchitecture::getRegisterInfo"]
5086 [::std::mem::offset_of!(BNCustomArchitecture, getRegisterInfo) - 312usize];
5087 ["Offset of field: BNCustomArchitecture::getStackPointerRegister"]
5088 [::std::mem::offset_of!(BNCustomArchitecture, getStackPointerRegister) - 320usize];
5089 ["Offset of field: BNCustomArchitecture::getLinkRegister"]
5090 [::std::mem::offset_of!(BNCustomArchitecture, getLinkRegister) - 328usize];
5091 ["Offset of field: BNCustomArchitecture::getGlobalRegisters"]
5092 [::std::mem::offset_of!(BNCustomArchitecture, getGlobalRegisters) - 336usize];
5093 ["Offset of field: BNCustomArchitecture::getSystemRegisters"]
5094 [::std::mem::offset_of!(BNCustomArchitecture, getSystemRegisters) - 344usize];
5095 ["Offset of field: BNCustomArchitecture::getRegisterStackName"]
5096 [::std::mem::offset_of!(BNCustomArchitecture, getRegisterStackName) - 352usize];
5097 ["Offset of field: BNCustomArchitecture::getAllRegisterStacks"]
5098 [::std::mem::offset_of!(BNCustomArchitecture, getAllRegisterStacks) - 360usize];
5099 ["Offset of field: BNCustomArchitecture::getRegisterStackInfo"]
5100 [::std::mem::offset_of!(BNCustomArchitecture, getRegisterStackInfo) - 368usize];
5101 ["Offset of field: BNCustomArchitecture::getIntrinsicClass"]
5102 [::std::mem::offset_of!(BNCustomArchitecture, getIntrinsicClass) - 376usize];
5103 ["Offset of field: BNCustomArchitecture::getIntrinsicName"]
5104 [::std::mem::offset_of!(BNCustomArchitecture, getIntrinsicName) - 384usize];
5105 ["Offset of field: BNCustomArchitecture::getAllIntrinsics"]
5106 [::std::mem::offset_of!(BNCustomArchitecture, getAllIntrinsics) - 392usize];
5107 ["Offset of field: BNCustomArchitecture::getIntrinsicInputs"]
5108 [::std::mem::offset_of!(BNCustomArchitecture, getIntrinsicInputs) - 400usize];
5109 ["Offset of field: BNCustomArchitecture::freeNameAndTypeList"]
5110 [::std::mem::offset_of!(BNCustomArchitecture, freeNameAndTypeList) - 408usize];
5111 ["Offset of field: BNCustomArchitecture::getIntrinsicOutputs"]
5112 [::std::mem::offset_of!(BNCustomArchitecture, getIntrinsicOutputs) - 416usize];
5113 ["Offset of field: BNCustomArchitecture::freeTypeList"]
5114 [::std::mem::offset_of!(BNCustomArchitecture, freeTypeList) - 424usize];
5115 ["Offset of field: BNCustomArchitecture::canAssemble"]
5116 [::std::mem::offset_of!(BNCustomArchitecture, canAssemble) - 432usize];
5117 ["Offset of field: BNCustomArchitecture::assemble"]
5118 [::std::mem::offset_of!(BNCustomArchitecture, assemble) - 440usize];
5119 ["Offset of field: BNCustomArchitecture::isNeverBranchPatchAvailable"]
5120 [::std::mem::offset_of!(BNCustomArchitecture, isNeverBranchPatchAvailable) - 448usize];
5121 ["Offset of field: BNCustomArchitecture::isAlwaysBranchPatchAvailable"]
5122 [::std::mem::offset_of!(BNCustomArchitecture, isAlwaysBranchPatchAvailable) - 456usize];
5123 ["Offset of field: BNCustomArchitecture::isInvertBranchPatchAvailable"]
5124 [::std::mem::offset_of!(BNCustomArchitecture, isInvertBranchPatchAvailable) - 464usize];
5125 ["Offset of field: BNCustomArchitecture::isSkipAndReturnZeroPatchAvailable"][::std::mem::offset_of!(
5126 BNCustomArchitecture,
5127 isSkipAndReturnZeroPatchAvailable
5128 ) - 472usize];
5129 ["Offset of field: BNCustomArchitecture::isSkipAndReturnValuePatchAvailable"][::std::mem::offset_of!(
5130 BNCustomArchitecture,
5131 isSkipAndReturnValuePatchAvailable
5132 ) - 480usize];
5133 ["Offset of field: BNCustomArchitecture::convertToNop"]
5134 [::std::mem::offset_of!(BNCustomArchitecture, convertToNop) - 488usize];
5135 ["Offset of field: BNCustomArchitecture::alwaysBranch"]
5136 [::std::mem::offset_of!(BNCustomArchitecture, alwaysBranch) - 496usize];
5137 ["Offset of field: BNCustomArchitecture::invertBranch"]
5138 [::std::mem::offset_of!(BNCustomArchitecture, invertBranch) - 504usize];
5139 ["Offset of field: BNCustomArchitecture::skipAndReturnValue"]
5140 [::std::mem::offset_of!(BNCustomArchitecture, skipAndReturnValue) - 512usize];
5141 ["Offset of field: BNCustomArchitecture::getLinearSweepInitialAlignment"]
5142 [::std::mem::offset_of!(BNCustomArchitecture, getLinearSweepInitialAlignment) - 520usize];
5143 ["Offset of field: BNCustomArchitecture::getLinearSweepAnalysisCapabilities"][::std::mem::offset_of!(
5144 BNCustomArchitecture,
5145 getLinearSweepAnalysisCapabilities
5146 ) - 528usize];
5147};
5148impl Default for BNCustomArchitecture {
5149 fn default() -> Self {
5150 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5151 unsafe {
5152 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5153 s.assume_init()
5154 }
5155 }
5156}
5157#[repr(C)]
5158#[derive(Debug, Copy, Clone)]
5159pub struct BNCustomPlatform {
5160 pub context: *mut ::std::os::raw::c_void,
5161 pub init: ::std::option::Option<
5162 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, obj: *mut BNPlatform),
5163 >,
5164 pub viewInit: ::std::option::Option<
5165 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
5166 >,
5167 pub getGlobalRegisters: ::std::option::Option<
5168 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
5169 >,
5170 pub freeRegisterList: ::std::option::Option<
5171 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, regs: *mut u32, len: usize),
5172 >,
5173 pub getGlobalRegisterType: ::std::option::Option<
5174 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, reg: u32) -> *mut BNType,
5175 >,
5176 pub getAddressSize:
5177 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
5178 pub adjustTypeParserInput: ::std::option::Option<
5179 unsafe extern "C" fn(
5180 ctxt: *mut ::std::os::raw::c_void,
5181 parser: *mut BNTypeParser,
5182 argumentsIn: *const *const ::std::os::raw::c_char,
5183 argumentsLenIn: usize,
5184 sourceFileNamesIn: *const *const ::std::os::raw::c_char,
5185 sourceFileValuesIn: *const *const ::std::os::raw::c_char,
5186 sourceFilesLenIn: usize,
5187 argumentsOut: *mut *mut *mut ::std::os::raw::c_char,
5188 argumentsLenOut: *mut usize,
5189 sourceFileNamesOut: *mut *mut *mut ::std::os::raw::c_char,
5190 sourceFileValuesOut: *mut *mut *mut ::std::os::raw::c_char,
5191 sourceFilesLenOut: *mut usize,
5192 ),
5193 >,
5194 pub freeTypeParserInput: ::std::option::Option<
5195 unsafe extern "C" fn(
5196 ctxt: *mut ::std::os::raw::c_void,
5197 arguments: *mut *mut ::std::os::raw::c_char,
5198 argumentsLen: usize,
5199 sourceFileNames: *mut *mut ::std::os::raw::c_char,
5200 sourceFileValues: *mut *mut ::std::os::raw::c_char,
5201 sourceFilesLen: usize,
5202 ),
5203 >,
5204 pub getFallbackEnabled:
5205 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
5206}
5207#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5208const _: () = {
5209 ["Size of BNCustomPlatform"][::std::mem::size_of::<BNCustomPlatform>() - 80usize];
5210 ["Alignment of BNCustomPlatform"][::std::mem::align_of::<BNCustomPlatform>() - 8usize];
5211 ["Offset of field: BNCustomPlatform::context"]
5212 [::std::mem::offset_of!(BNCustomPlatform, context) - 0usize];
5213 ["Offset of field: BNCustomPlatform::init"]
5214 [::std::mem::offset_of!(BNCustomPlatform, init) - 8usize];
5215 ["Offset of field: BNCustomPlatform::viewInit"]
5216 [::std::mem::offset_of!(BNCustomPlatform, viewInit) - 16usize];
5217 ["Offset of field: BNCustomPlatform::getGlobalRegisters"]
5218 [::std::mem::offset_of!(BNCustomPlatform, getGlobalRegisters) - 24usize];
5219 ["Offset of field: BNCustomPlatform::freeRegisterList"]
5220 [::std::mem::offset_of!(BNCustomPlatform, freeRegisterList) - 32usize];
5221 ["Offset of field: BNCustomPlatform::getGlobalRegisterType"]
5222 [::std::mem::offset_of!(BNCustomPlatform, getGlobalRegisterType) - 40usize];
5223 ["Offset of field: BNCustomPlatform::getAddressSize"]
5224 [::std::mem::offset_of!(BNCustomPlatform, getAddressSize) - 48usize];
5225 ["Offset of field: BNCustomPlatform::adjustTypeParserInput"]
5226 [::std::mem::offset_of!(BNCustomPlatform, adjustTypeParserInput) - 56usize];
5227 ["Offset of field: BNCustomPlatform::freeTypeParserInput"]
5228 [::std::mem::offset_of!(BNCustomPlatform, freeTypeParserInput) - 64usize];
5229 ["Offset of field: BNCustomPlatform::getFallbackEnabled"]
5230 [::std::mem::offset_of!(BNCustomPlatform, getFallbackEnabled) - 72usize];
5231};
5232impl Default for BNCustomPlatform {
5233 fn default() -> Self {
5234 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5235 unsafe {
5236 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5237 s.assume_init()
5238 }
5239 }
5240}
5241#[repr(C)]
5242#[derive(Debug, Copy, Clone)]
5243pub struct BNBasicBlockEdge {
5244 pub type_: BNBranchType,
5245 pub target: *mut BNBasicBlock,
5246 pub backEdge: bool,
5247 pub fallThrough: bool,
5248}
5249#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5250const _: () = {
5251 ["Size of BNBasicBlockEdge"][::std::mem::size_of::<BNBasicBlockEdge>() - 24usize];
5252 ["Alignment of BNBasicBlockEdge"][::std::mem::align_of::<BNBasicBlockEdge>() - 8usize];
5253 ["Offset of field: BNBasicBlockEdge::type_"]
5254 [::std::mem::offset_of!(BNBasicBlockEdge, type_) - 0usize];
5255 ["Offset of field: BNBasicBlockEdge::target"]
5256 [::std::mem::offset_of!(BNBasicBlockEdge, target) - 8usize];
5257 ["Offset of field: BNBasicBlockEdge::backEdge"]
5258 [::std::mem::offset_of!(BNBasicBlockEdge, backEdge) - 16usize];
5259 ["Offset of field: BNBasicBlockEdge::fallThrough"]
5260 [::std::mem::offset_of!(BNBasicBlockEdge, fallThrough) - 17usize];
5261};
5262impl Default for BNBasicBlockEdge {
5263 fn default() -> Self {
5264 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5265 unsafe {
5266 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5267 s.assume_init()
5268 }
5269 }
5270}
5271#[repr(C)]
5272#[derive(Debug, Copy, Clone)]
5273pub struct BNPendingBasicBlockEdge {
5274 pub type_: BNBranchType,
5275 pub arch: *mut BNArchitecture,
5276 pub target: u64,
5277 pub fallThrough: bool,
5278}
5279#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5280const _: () = {
5281 ["Size of BNPendingBasicBlockEdge"][::std::mem::size_of::<BNPendingBasicBlockEdge>() - 32usize];
5282 ["Alignment of BNPendingBasicBlockEdge"]
5283 [::std::mem::align_of::<BNPendingBasicBlockEdge>() - 8usize];
5284 ["Offset of field: BNPendingBasicBlockEdge::type_"]
5285 [::std::mem::offset_of!(BNPendingBasicBlockEdge, type_) - 0usize];
5286 ["Offset of field: BNPendingBasicBlockEdge::arch"]
5287 [::std::mem::offset_of!(BNPendingBasicBlockEdge, arch) - 8usize];
5288 ["Offset of field: BNPendingBasicBlockEdge::target"]
5289 [::std::mem::offset_of!(BNPendingBasicBlockEdge, target) - 16usize];
5290 ["Offset of field: BNPendingBasicBlockEdge::fallThrough"]
5291 [::std::mem::offset_of!(BNPendingBasicBlockEdge, fallThrough) - 24usize];
5292};
5293impl Default for BNPendingBasicBlockEdge {
5294 fn default() -> Self {
5295 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5296 unsafe {
5297 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5298 s.assume_init()
5299 }
5300 }
5301}
5302#[repr(C)]
5303#[derive(Debug, Default, Copy, Clone)]
5304pub struct BNPoint {
5305 pub x: f32,
5306 pub y: f32,
5307}
5308#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5309const _: () = {
5310 ["Size of BNPoint"][::std::mem::size_of::<BNPoint>() - 8usize];
5311 ["Alignment of BNPoint"][::std::mem::align_of::<BNPoint>() - 4usize];
5312 ["Offset of field: BNPoint::x"][::std::mem::offset_of!(BNPoint, x) - 0usize];
5313 ["Offset of field: BNPoint::y"][::std::mem::offset_of!(BNPoint, y) - 4usize];
5314};
5315#[repr(u8)]
5316#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5317pub enum BNThemeColor {
5318 #[doc = " Hex dump colors"]
5319 AddressColor = 0,
5320 #[doc = " Hex dump colors"]
5321 ModifiedColor = 1,
5322 #[doc = " Hex dump colors"]
5323 InsertedColor = 2,
5324 #[doc = " Hex dump colors"]
5325 NotPresentColor = 3,
5326 #[doc = " Hex dump colors"]
5327 SelectionColor = 4,
5328 #[doc = " Hex dump colors"]
5329 OutlineColor = 5,
5330 #[doc = " Hex dump colors"]
5331 BackgroundHighlightDarkColor = 6,
5332 #[doc = " Hex dump colors"]
5333 BackgroundHighlightLightColor = 7,
5334 #[doc = " Hex dump colors"]
5335 BoldBackgroundHighlightDarkColor = 8,
5336 #[doc = " Hex dump colors"]
5337 BoldBackgroundHighlightLightColor = 9,
5338 #[doc = " Hex dump colors"]
5339 AlphanumericHighlightColor = 10,
5340 #[doc = " Hex dump colors"]
5341 PrintableHighlightColor = 11,
5342 #[doc = " Graph colors"]
5343 GraphBackgroundDarkColor = 12,
5344 #[doc = " Graph colors"]
5345 GraphBackgroundLightColor = 13,
5346 #[doc = " Graph colors"]
5347 GraphNodeDarkColor = 14,
5348 #[doc = " Graph colors"]
5349 GraphNodeLightColor = 15,
5350 #[doc = " Graph colors"]
5351 GraphNodeOutlineColor = 16,
5352 #[doc = " Graph colors"]
5353 GraphNodeShadowColor = 17,
5354 #[doc = " Graph colors"]
5355 GraphEntryNodeIndicatorColor = 18,
5356 #[doc = " Graph colors"]
5357 GraphExitNodeIndicatorColor = 19,
5358 #[doc = " Graph colors"]
5359 GraphExitNoreturnNodeIndicatorColor = 20,
5360 #[doc = " Graph colors"]
5361 TrueBranchColor = 21,
5362 #[doc = " Graph colors"]
5363 FalseBranchColor = 22,
5364 #[doc = " Graph colors"]
5365 UnconditionalBranchColor = 23,
5366 #[doc = " Graph colors"]
5367 AltTrueBranchColor = 24,
5368 #[doc = " Graph colors"]
5369 AltFalseBranchColor = 25,
5370 #[doc = " Graph colors"]
5371 AltUnconditionalBranchColor = 26,
5372 #[doc = " Disassembly colors"]
5373 InstructionColor = 27,
5374 #[doc = " Disassembly colors"]
5375 RegisterColor = 28,
5376 #[doc = " Disassembly colors"]
5377 NumberColor = 29,
5378 #[doc = " Disassembly colors"]
5379 CodeSymbolColor = 30,
5380 #[doc = " Disassembly colors"]
5381 DataSymbolColor = 31,
5382 #[doc = " Disassembly colors"]
5383 LocalVariableColor = 32,
5384 #[doc = " Disassembly colors"]
5385 StackVariableColor = 33,
5386 #[doc = " Disassembly colors"]
5387 ImportColor = 34,
5388 #[doc = " Disassembly colors"]
5389 ExportColor = 35,
5390 #[doc = " Disassembly colors"]
5391 InstructionHighlightColor = 36,
5392 #[doc = " Disassembly colors"]
5393 RelatedInstructionHighlightColor = 37,
5394 #[doc = " Disassembly colors"]
5395 TokenHighlightColor = 38,
5396 #[doc = " Disassembly colors"]
5397 TokenSelectionColor = 39,
5398 #[doc = " Disassembly colors"]
5399 AnnotationColor = 40,
5400 #[doc = " Disassembly colors"]
5401 OpcodeColor = 41,
5402 #[doc = " Disassembly colors"]
5403 LinearDisassemblyFunctionHeaderColor = 42,
5404 #[doc = " Disassembly colors"]
5405 LinearDisassemblyBlockColor = 43,
5406 #[doc = " Disassembly colors"]
5407 LinearDisassemblyNoteColor = 44,
5408 #[doc = " Disassembly colors"]
5409 LinearDisassemblySeparatorColor = 45,
5410 #[doc = " Disassembly colors"]
5411 LinearDisassemblyCodeFoldColor = 46,
5412 #[doc = " Disassembly colors"]
5413 StringColor = 47,
5414 #[doc = " Disassembly colors"]
5415 TypeNameColor = 48,
5416 #[doc = " Disassembly colors"]
5417 FieldNameColor = 49,
5418 #[doc = " Disassembly colors"]
5419 KeywordColor = 50,
5420 #[doc = " Disassembly colors"]
5421 UncertainColor = 51,
5422 #[doc = " Disassembly colors"]
5423 NameSpaceColor = 52,
5424 #[doc = " Disassembly colors"]
5425 NameSpaceSeparatorColor = 53,
5426 #[doc = " Disassembly colors"]
5427 GotoLabelColor = 54,
5428 #[doc = " Disassembly colors"]
5429 CommentColor = 55,
5430 #[doc = " Disassembly colors"]
5431 OperationColor = 56,
5432 #[doc = " Disassembly colors"]
5433 BaseStructureNameColor = 57,
5434 #[doc = " Disassembly colors"]
5435 IndentationLineColor = 58,
5436 #[doc = " Disassembly colors"]
5437 IndentationLineHighlightColor = 59,
5438 #[doc = " Script console colors"]
5439 ScriptConsoleOutputColor = 60,
5440 #[doc = " Script console colors"]
5441 ScriptConsoleWarningColor = 61,
5442 #[doc = " Script console colors"]
5443 ScriptConsoleErrorColor = 62,
5444 #[doc = " Script console colors"]
5445 ScriptConsoleEchoColor = 63,
5446 #[doc = " Highlighting colors"]
5447 BlueStandardHighlightColor = 64,
5448 #[doc = " Highlighting colors"]
5449 GreenStandardHighlightColor = 65,
5450 #[doc = " Highlighting colors"]
5451 CyanStandardHighlightColor = 66,
5452 #[doc = " Highlighting colors"]
5453 RedStandardHighlightColor = 67,
5454 #[doc = " Highlighting colors"]
5455 MagentaStandardHighlightColor = 68,
5456 #[doc = " Highlighting colors"]
5457 YellowStandardHighlightColor = 69,
5458 #[doc = " Highlighting colors"]
5459 OrangeStandardHighlightColor = 70,
5460 #[doc = " Highlighting colors"]
5461 WhiteStandardHighlightColor = 71,
5462 #[doc = " Highlighting colors"]
5463 BlackStandardHighlightColor = 72,
5464 #[doc = " MiniGraph"]
5465 MiniGraphOverlayColor = 73,
5466 #[doc = " FeatureMap"]
5467 FeatureMapBaseColor = 74,
5468 #[doc = " FeatureMap"]
5469 FeatureMapNavLineColor = 75,
5470 #[doc = " FeatureMap"]
5471 FeatureMapNavHighlightColor = 76,
5472 #[doc = " FeatureMap"]
5473 FeatureMapDataVariableColor = 77,
5474 #[doc = " FeatureMap"]
5475 FeatureMapAsciiStringColor = 78,
5476 #[doc = " FeatureMap"]
5477 FeatureMapUnicodeStringColor = 79,
5478 #[doc = " FeatureMap"]
5479 FeatureMapFunctionColor = 80,
5480 #[doc = " FeatureMap"]
5481 FeatureMapImportColor = 81,
5482 #[doc = " FeatureMap"]
5483 FeatureMapExternColor = 82,
5484 #[doc = " FeatureMap"]
5485 FeatureMapLibraryColor = 83,
5486 #[doc = " Sidebar colors"]
5487 SidebarBackgroundColor = 84,
5488 #[doc = " Sidebar colors"]
5489 SidebarInactiveIconColor = 85,
5490 #[doc = " Sidebar colors"]
5491 SidebarHoverIconColor = 86,
5492 #[doc = " Sidebar colors"]
5493 SidebarActiveIconColor = 87,
5494 #[doc = " Sidebar colors"]
5495 SidebarFocusedIconColor = 88,
5496 #[doc = " Sidebar colors"]
5497 SidebarHoverBackgroundColor = 89,
5498 #[doc = " Sidebar colors"]
5499 SidebarActiveBackgroundColor = 90,
5500 #[doc = " Sidebar colors"]
5501 SidebarFocusedBackgroundColor = 91,
5502 #[doc = " Sidebar colors"]
5503 SidebarActiveIndicatorLineColor = 92,
5504 #[doc = " Deprecated, has no effect (paints as QPalette::Window)"]
5505 SidebarHeaderBackgroundColor = 93,
5506 SidebarHeaderTextColor = 94,
5507 SidebarWidgetBackgroundColor = 95,
5508 #[doc = " Pane colors"]
5509 ActivePaneBackgroundColor = 96,
5510 #[doc = " Pane colors"]
5511 InactivePaneBackgroundColor = 97,
5512 #[doc = " Pane colors"]
5513 FocusedPaneBackgroundColor = 98,
5514 #[doc = " Tab colors"]
5515 TabBarTabActiveColor = 99,
5516 #[doc = " Tab colors"]
5517 TabBarTabHoverColor = 100,
5518 #[doc = " Tab colors"]
5519 TabBarTabInactiveColor = 101,
5520 #[doc = " Tab colors"]
5521 TabBarTabBorderColor = 102,
5522 #[doc = " Tab colors"]
5523 TabBarTabGlowColor = 103,
5524 #[doc = " Status colors"]
5525 StatusBarServerConnectedColor = 104,
5526 #[doc = " Status colors"]
5527 StatusBarServerDisconnectedColor = 105,
5528 #[doc = " Status colors"]
5529 StatusBarServerWarningColor = 106,
5530 #[doc = " Status colors"]
5531 StatusBarProjectColor = 107,
5532 #[doc = " Brace colors"]
5533 BraceOption1Color = 108,
5534 #[doc = " Brace colors"]
5535 BraceOption2Color = 109,
5536 #[doc = " Brace colors"]
5537 BraceOption3Color = 110,
5538 #[doc = " Brace colors"]
5539 BraceOption4Color = 111,
5540 #[doc = " Brace colors"]
5541 BraceOption5Color = 112,
5542 #[doc = " Brace colors"]
5543 BraceOption6Color = 113,
5544 #[doc = " Type class colors"]
5545 VoidTypeColor = 114,
5546 #[doc = " Type class colors"]
5547 StructureTypeColor = 115,
5548 #[doc = " Type class colors"]
5549 EnumerationTypeColor = 116,
5550 #[doc = " Type class colors"]
5551 FunctionTypeColor = 117,
5552 #[doc = " Type class colors"]
5553 BoolTypeColor = 118,
5554 #[doc = " Type class colors"]
5555 IntegerTypeColor = 119,
5556 #[doc = " Type class colors"]
5557 FloatTypeColor = 120,
5558 #[doc = " Type class colors"]
5559 PointerTypeColor = 121,
5560 #[doc = " Type class colors"]
5561 ArrayTypeColor = 122,
5562 #[doc = " Type class colors"]
5563 VarArgsTypeColor = 123,
5564 #[doc = " Type class colors"]
5565 ValueTypeColor = 124,
5566 #[doc = " Type class colors"]
5567 NamedTypeReferenceColor = 125,
5568 #[doc = " Type class colors"]
5569 WideCharTypeColor = 126,
5570}
5571#[repr(u8)]
5572#[doc = " The following edge styles map to Qt's Qt::PenStyle enumeration"]
5573#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5574pub enum BNEdgePenStyle {
5575 #[doc = " no line at all."]
5576 NoPen = 0,
5577 #[doc = " A plain line (default)"]
5578 SolidLine = 1,
5579 #[doc = " Dashes separated by a few pixels."]
5580 DashLine = 2,
5581 #[doc = " Dots separated by a few pixels."]
5582 DotLine = 3,
5583 #[doc = " Alternate dots and dashes."]
5584 DashDotLine = 4,
5585 #[doc = " One dash, two dots, one dash, two dots."]
5586 DashDotDotLine = 5,
5587}
5588#[repr(C)]
5589#[derive(Debug, Copy, Clone)]
5590pub struct BNEdgeStyle {
5591 pub style: BNEdgePenStyle,
5592 pub width: usize,
5593 pub color: BNThemeColor,
5594}
5595#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5596const _: () = {
5597 ["Size of BNEdgeStyle"][::std::mem::size_of::<BNEdgeStyle>() - 24usize];
5598 ["Alignment of BNEdgeStyle"][::std::mem::align_of::<BNEdgeStyle>() - 8usize];
5599 ["Offset of field: BNEdgeStyle::style"][::std::mem::offset_of!(BNEdgeStyle, style) - 0usize];
5600 ["Offset of field: BNEdgeStyle::width"][::std::mem::offset_of!(BNEdgeStyle, width) - 8usize];
5601 ["Offset of field: BNEdgeStyle::color"][::std::mem::offset_of!(BNEdgeStyle, color) - 16usize];
5602};
5603impl Default for BNEdgeStyle {
5604 fn default() -> Self {
5605 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5606 unsafe {
5607 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5608 s.assume_init()
5609 }
5610 }
5611}
5612#[repr(C)]
5613#[derive(Debug, Copy, Clone)]
5614pub struct BNFlowGraphEdge {
5615 pub type_: BNBranchType,
5616 pub target: *mut BNFlowGraphNode,
5617 pub points: *mut BNPoint,
5618 pub pointCount: usize,
5619 pub backEdge: bool,
5620 pub style: BNEdgeStyle,
5621}
5622#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5623const _: () = {
5624 ["Size of BNFlowGraphEdge"][::std::mem::size_of::<BNFlowGraphEdge>() - 64usize];
5625 ["Alignment of BNFlowGraphEdge"][::std::mem::align_of::<BNFlowGraphEdge>() - 8usize];
5626 ["Offset of field: BNFlowGraphEdge::type_"]
5627 [::std::mem::offset_of!(BNFlowGraphEdge, type_) - 0usize];
5628 ["Offset of field: BNFlowGraphEdge::target"]
5629 [::std::mem::offset_of!(BNFlowGraphEdge, target) - 8usize];
5630 ["Offset of field: BNFlowGraphEdge::points"]
5631 [::std::mem::offset_of!(BNFlowGraphEdge, points) - 16usize];
5632 ["Offset of field: BNFlowGraphEdge::pointCount"]
5633 [::std::mem::offset_of!(BNFlowGraphEdge, pointCount) - 24usize];
5634 ["Offset of field: BNFlowGraphEdge::backEdge"]
5635 [::std::mem::offset_of!(BNFlowGraphEdge, backEdge) - 32usize];
5636 ["Offset of field: BNFlowGraphEdge::style"]
5637 [::std::mem::offset_of!(BNFlowGraphEdge, style) - 40usize];
5638};
5639impl Default for BNFlowGraphEdge {
5640 fn default() -> Self {
5641 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5642 unsafe {
5643 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5644 s.assume_init()
5645 }
5646 }
5647}
5648#[repr(u8)]
5649#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5650pub enum BNHighlightColorStyle {
5651 StandardHighlightColor = 0,
5652 MixedHighlightColor = 1,
5653 CustomHighlightColor = 2,
5654}
5655#[repr(u8)]
5656#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5657pub enum BNHighlightStandardColor {
5658 NoHighlightColor = 0,
5659 BlueHighlightColor = 1,
5660 GreenHighlightColor = 2,
5661 CyanHighlightColor = 3,
5662 RedHighlightColor = 4,
5663 MagentaHighlightColor = 5,
5664 YellowHighlightColor = 6,
5665 OrangeHighlightColor = 7,
5666 WhiteHighlightColor = 8,
5667 BlackHighlightColor = 9,
5668}
5669#[repr(C)]
5670#[derive(Debug, Copy, Clone)]
5671pub struct BNHighlightColor {
5672 pub style: BNHighlightColorStyle,
5673 pub color: BNHighlightStandardColor,
5674 pub mixColor: BNHighlightStandardColor,
5675 pub mix: u8,
5676 pub r: u8,
5677 pub g: u8,
5678 pub b: u8,
5679 pub alpha: u8,
5680}
5681#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5682const _: () = {
5683 ["Size of BNHighlightColor"][::std::mem::size_of::<BNHighlightColor>() - 8usize];
5684 ["Alignment of BNHighlightColor"][::std::mem::align_of::<BNHighlightColor>() - 1usize];
5685 ["Offset of field: BNHighlightColor::style"]
5686 [::std::mem::offset_of!(BNHighlightColor, style) - 0usize];
5687 ["Offset of field: BNHighlightColor::color"]
5688 [::std::mem::offset_of!(BNHighlightColor, color) - 1usize];
5689 ["Offset of field: BNHighlightColor::mixColor"]
5690 [::std::mem::offset_of!(BNHighlightColor, mixColor) - 2usize];
5691 ["Offset of field: BNHighlightColor::mix"]
5692 [::std::mem::offset_of!(BNHighlightColor, mix) - 3usize];
5693 ["Offset of field: BNHighlightColor::r"][::std::mem::offset_of!(BNHighlightColor, r) - 4usize];
5694 ["Offset of field: BNHighlightColor::g"][::std::mem::offset_of!(BNHighlightColor, g) - 5usize];
5695 ["Offset of field: BNHighlightColor::b"][::std::mem::offset_of!(BNHighlightColor, b) - 6usize];
5696 ["Offset of field: BNHighlightColor::alpha"]
5697 [::std::mem::offset_of!(BNHighlightColor, alpha) - 7usize];
5698};
5699impl Default for BNHighlightColor {
5700 fn default() -> Self {
5701 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5702 unsafe {
5703 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5704 s.assume_init()
5705 }
5706 }
5707}
5708#[repr(C)]
5709#[derive(Debug, Copy, Clone)]
5710pub struct BNDisassemblyTextLineTypeInfo {
5711 pub hasTypeInfo: bool,
5712 pub parentType: *mut BNType,
5713 pub fieldIndex: usize,
5714 pub offset: u64,
5715}
5716#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5717const _: () = {
5718 ["Size of BNDisassemblyTextLineTypeInfo"]
5719 [::std::mem::size_of::<BNDisassemblyTextLineTypeInfo>() - 32usize];
5720 ["Alignment of BNDisassemblyTextLineTypeInfo"]
5721 [::std::mem::align_of::<BNDisassemblyTextLineTypeInfo>() - 8usize];
5722 ["Offset of field: BNDisassemblyTextLineTypeInfo::hasTypeInfo"]
5723 [::std::mem::offset_of!(BNDisassemblyTextLineTypeInfo, hasTypeInfo) - 0usize];
5724 ["Offset of field: BNDisassemblyTextLineTypeInfo::parentType"]
5725 [::std::mem::offset_of!(BNDisassemblyTextLineTypeInfo, parentType) - 8usize];
5726 ["Offset of field: BNDisassemblyTextLineTypeInfo::fieldIndex"]
5727 [::std::mem::offset_of!(BNDisassemblyTextLineTypeInfo, fieldIndex) - 16usize];
5728 ["Offset of field: BNDisassemblyTextLineTypeInfo::offset"]
5729 [::std::mem::offset_of!(BNDisassemblyTextLineTypeInfo, offset) - 24usize];
5730};
5731impl Default for BNDisassemblyTextLineTypeInfo {
5732 fn default() -> Self {
5733 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5734 unsafe {
5735 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5736 s.assume_init()
5737 }
5738 }
5739}
5740#[repr(C)]
5741#[derive(Debug, Copy, Clone)]
5742pub struct BNDisassemblyTextLine {
5743 pub addr: u64,
5744 pub instrIndex: usize,
5745 pub tokens: *mut BNInstructionTextToken,
5746 pub count: usize,
5747 pub highlight: BNHighlightColor,
5748 pub tags: *mut *mut BNTag,
5749 pub tagCount: usize,
5750 pub typeInfo: BNDisassemblyTextLineTypeInfo,
5751}
5752#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5753const _: () = {
5754 ["Size of BNDisassemblyTextLine"][::std::mem::size_of::<BNDisassemblyTextLine>() - 88usize];
5755 ["Alignment of BNDisassemblyTextLine"]
5756 [::std::mem::align_of::<BNDisassemblyTextLine>() - 8usize];
5757 ["Offset of field: BNDisassemblyTextLine::addr"]
5758 [::std::mem::offset_of!(BNDisassemblyTextLine, addr) - 0usize];
5759 ["Offset of field: BNDisassemblyTextLine::instrIndex"]
5760 [::std::mem::offset_of!(BNDisassemblyTextLine, instrIndex) - 8usize];
5761 ["Offset of field: BNDisassemblyTextLine::tokens"]
5762 [::std::mem::offset_of!(BNDisassemblyTextLine, tokens) - 16usize];
5763 ["Offset of field: BNDisassemblyTextLine::count"]
5764 [::std::mem::offset_of!(BNDisassemblyTextLine, count) - 24usize];
5765 ["Offset of field: BNDisassemblyTextLine::highlight"]
5766 [::std::mem::offset_of!(BNDisassemblyTextLine, highlight) - 32usize];
5767 ["Offset of field: BNDisassemblyTextLine::tags"]
5768 [::std::mem::offset_of!(BNDisassemblyTextLine, tags) - 40usize];
5769 ["Offset of field: BNDisassemblyTextLine::tagCount"]
5770 [::std::mem::offset_of!(BNDisassemblyTextLine, tagCount) - 48usize];
5771 ["Offset of field: BNDisassemblyTextLine::typeInfo"]
5772 [::std::mem::offset_of!(BNDisassemblyTextLine, typeInfo) - 56usize];
5773};
5774impl Default for BNDisassemblyTextLine {
5775 fn default() -> Self {
5776 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5777 unsafe {
5778 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5779 s.assume_init()
5780 }
5781 }
5782}
5783#[repr(C)]
5784#[derive(Debug, Copy, Clone)]
5785pub struct BNLinearDisassemblyLine {
5786 pub type_: BNLinearDisassemblyLineType,
5787 pub view: *mut BNBinaryView,
5788 pub function: *mut BNFunction,
5789 pub block: *mut BNBasicBlock,
5790 pub contents: BNDisassemblyTextLine,
5791}
5792#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5793const _: () = {
5794 ["Size of BNLinearDisassemblyLine"]
5795 [::std::mem::size_of::<BNLinearDisassemblyLine>() - 120usize];
5796 ["Alignment of BNLinearDisassemblyLine"]
5797 [::std::mem::align_of::<BNLinearDisassemblyLine>() - 8usize];
5798 ["Offset of field: BNLinearDisassemblyLine::type_"]
5799 [::std::mem::offset_of!(BNLinearDisassemblyLine, type_) - 0usize];
5800 ["Offset of field: BNLinearDisassemblyLine::view"]
5801 [::std::mem::offset_of!(BNLinearDisassemblyLine, view) - 8usize];
5802 ["Offset of field: BNLinearDisassemblyLine::function"]
5803 [::std::mem::offset_of!(BNLinearDisassemblyLine, function) - 16usize];
5804 ["Offset of field: BNLinearDisassemblyLine::block"]
5805 [::std::mem::offset_of!(BNLinearDisassemblyLine, block) - 24usize];
5806 ["Offset of field: BNLinearDisassemblyLine::contents"]
5807 [::std::mem::offset_of!(BNLinearDisassemblyLine, contents) - 32usize];
5808};
5809impl Default for BNLinearDisassemblyLine {
5810 fn default() -> Self {
5811 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5812 unsafe {
5813 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5814 s.assume_init()
5815 }
5816 }
5817}
5818#[repr(C)]
5819#[derive(Debug, Copy, Clone)]
5820pub struct BNReferenceSource {
5821 pub func: *mut BNFunction,
5822 pub arch: *mut BNArchitecture,
5823 pub addr: u64,
5824}
5825#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5826const _: () = {
5827 ["Size of BNReferenceSource"][::std::mem::size_of::<BNReferenceSource>() - 24usize];
5828 ["Alignment of BNReferenceSource"][::std::mem::align_of::<BNReferenceSource>() - 8usize];
5829 ["Offset of field: BNReferenceSource::func"]
5830 [::std::mem::offset_of!(BNReferenceSource, func) - 0usize];
5831 ["Offset of field: BNReferenceSource::arch"]
5832 [::std::mem::offset_of!(BNReferenceSource, arch) - 8usize];
5833 ["Offset of field: BNReferenceSource::addr"]
5834 [::std::mem::offset_of!(BNReferenceSource, addr) - 16usize];
5835};
5836impl Default for BNReferenceSource {
5837 fn default() -> Self {
5838 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5839 unsafe {
5840 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5841 s.assume_init()
5842 }
5843 }
5844}
5845#[repr(C)]
5846#[derive(Debug, Copy, Clone)]
5847pub struct BNTypeFieldReference {
5848 pub func: *mut BNFunction,
5849 pub arch: *mut BNArchitecture,
5850 pub addr: u64,
5851 pub size: usize,
5852 pub incomingType: BNTypeWithConfidence,
5853}
5854#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5855const _: () = {
5856 ["Size of BNTypeFieldReference"][::std::mem::size_of::<BNTypeFieldReference>() - 48usize];
5857 ["Alignment of BNTypeFieldReference"][::std::mem::align_of::<BNTypeFieldReference>() - 8usize];
5858 ["Offset of field: BNTypeFieldReference::func"]
5859 [::std::mem::offset_of!(BNTypeFieldReference, func) - 0usize];
5860 ["Offset of field: BNTypeFieldReference::arch"]
5861 [::std::mem::offset_of!(BNTypeFieldReference, arch) - 8usize];
5862 ["Offset of field: BNTypeFieldReference::addr"]
5863 [::std::mem::offset_of!(BNTypeFieldReference, addr) - 16usize];
5864 ["Offset of field: BNTypeFieldReference::size"]
5865 [::std::mem::offset_of!(BNTypeFieldReference, size) - 24usize];
5866 ["Offset of field: BNTypeFieldReference::incomingType"]
5867 [::std::mem::offset_of!(BNTypeFieldReference, incomingType) - 32usize];
5868};
5869impl Default for BNTypeFieldReference {
5870 fn default() -> Self {
5871 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5872 unsafe {
5873 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5874 s.assume_init()
5875 }
5876 }
5877}
5878#[repr(C)]
5879#[derive(Debug, Copy, Clone)]
5880pub struct BNILReferenceSource {
5881 pub func: *mut BNFunction,
5882 pub arch: *mut BNArchitecture,
5883 pub addr: u64,
5884 pub type_: BNFunctionGraphType,
5885 pub exprId: usize,
5886}
5887#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5888const _: () = {
5889 ["Size of BNILReferenceSource"][::std::mem::size_of::<BNILReferenceSource>() - 40usize];
5890 ["Alignment of BNILReferenceSource"][::std::mem::align_of::<BNILReferenceSource>() - 8usize];
5891 ["Offset of field: BNILReferenceSource::func"]
5892 [::std::mem::offset_of!(BNILReferenceSource, func) - 0usize];
5893 ["Offset of field: BNILReferenceSource::arch"]
5894 [::std::mem::offset_of!(BNILReferenceSource, arch) - 8usize];
5895 ["Offset of field: BNILReferenceSource::addr"]
5896 [::std::mem::offset_of!(BNILReferenceSource, addr) - 16usize];
5897 ["Offset of field: BNILReferenceSource::type_"]
5898 [::std::mem::offset_of!(BNILReferenceSource, type_) - 24usize];
5899 ["Offset of field: BNILReferenceSource::exprId"]
5900 [::std::mem::offset_of!(BNILReferenceSource, exprId) - 32usize];
5901};
5902impl Default for BNILReferenceSource {
5903 fn default() -> Self {
5904 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5905 unsafe {
5906 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5907 s.assume_init()
5908 }
5909 }
5910}
5911#[repr(C)]
5912#[derive(Debug, Copy, Clone)]
5913pub struct BNTypeFieldReferenceSizeInfo {
5914 pub offset: u64,
5915 pub sizes: *mut usize,
5916 pub count: usize,
5917}
5918#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5919const _: () = {
5920 ["Size of BNTypeFieldReferenceSizeInfo"]
5921 [::std::mem::size_of::<BNTypeFieldReferenceSizeInfo>() - 24usize];
5922 ["Alignment of BNTypeFieldReferenceSizeInfo"]
5923 [::std::mem::align_of::<BNTypeFieldReferenceSizeInfo>() - 8usize];
5924 ["Offset of field: BNTypeFieldReferenceSizeInfo::offset"]
5925 [::std::mem::offset_of!(BNTypeFieldReferenceSizeInfo, offset) - 0usize];
5926 ["Offset of field: BNTypeFieldReferenceSizeInfo::sizes"]
5927 [::std::mem::offset_of!(BNTypeFieldReferenceSizeInfo, sizes) - 8usize];
5928 ["Offset of field: BNTypeFieldReferenceSizeInfo::count"]
5929 [::std::mem::offset_of!(BNTypeFieldReferenceSizeInfo, count) - 16usize];
5930};
5931impl Default for BNTypeFieldReferenceSizeInfo {
5932 fn default() -> Self {
5933 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5934 unsafe {
5935 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5936 s.assume_init()
5937 }
5938 }
5939}
5940#[repr(C)]
5941#[derive(Debug, Copy, Clone)]
5942pub struct BNTypeFieldReferenceTypeInfo {
5943 pub offset: u64,
5944 pub types: *mut BNTypeWithConfidence,
5945 pub count: usize,
5946}
5947#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5948const _: () = {
5949 ["Size of BNTypeFieldReferenceTypeInfo"]
5950 [::std::mem::size_of::<BNTypeFieldReferenceTypeInfo>() - 24usize];
5951 ["Alignment of BNTypeFieldReferenceTypeInfo"]
5952 [::std::mem::align_of::<BNTypeFieldReferenceTypeInfo>() - 8usize];
5953 ["Offset of field: BNTypeFieldReferenceTypeInfo::offset"]
5954 [::std::mem::offset_of!(BNTypeFieldReferenceTypeInfo, offset) - 0usize];
5955 ["Offset of field: BNTypeFieldReferenceTypeInfo::types"]
5956 [::std::mem::offset_of!(BNTypeFieldReferenceTypeInfo, types) - 8usize];
5957 ["Offset of field: BNTypeFieldReferenceTypeInfo::count"]
5958 [::std::mem::offset_of!(BNTypeFieldReferenceTypeInfo, count) - 16usize];
5959};
5960impl Default for BNTypeFieldReferenceTypeInfo {
5961 fn default() -> Self {
5962 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5963 unsafe {
5964 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5965 s.assume_init()
5966 }
5967 }
5968}
5969#[repr(C)]
5970#[derive(Debug, Copy, Clone)]
5971pub struct BNVariableReferenceSource {
5972 pub var: BNVariable,
5973 pub source: BNILReferenceSource,
5974}
5975#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5976const _: () = {
5977 ["Size of BNVariableReferenceSource"]
5978 [::std::mem::size_of::<BNVariableReferenceSource>() - 56usize];
5979 ["Alignment of BNVariableReferenceSource"]
5980 [::std::mem::align_of::<BNVariableReferenceSource>() - 8usize];
5981 ["Offset of field: BNVariableReferenceSource::var"]
5982 [::std::mem::offset_of!(BNVariableReferenceSource, var) - 0usize];
5983 ["Offset of field: BNVariableReferenceSource::source"]
5984 [::std::mem::offset_of!(BNVariableReferenceSource, source) - 16usize];
5985};
5986impl Default for BNVariableReferenceSource {
5987 fn default() -> Self {
5988 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5989 unsafe {
5990 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5991 s.assume_init()
5992 }
5993 }
5994}
5995#[repr(u8)]
5996#[doc = " This describes how a type is referenced"]
5997#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5998pub enum BNTypeReferenceType {
5999 #[doc = " Type A contains type B"]
6000 DirectTypeReferenceType = 0,
6001 #[doc = " All other cases, e.g., type A contains a pointer to type B"]
6002 IndirectTypeReferenceType = 1,
6003 #[doc = " The nature of the reference is unknown"]
6004 UnknownTypeReferenceType = 2,
6005}
6006#[repr(C)]
6007#[derive(Debug, Copy, Clone)]
6008pub struct BNTypeReferenceSource {
6009 pub name: BNQualifiedName,
6010 pub offset: u64,
6011 pub type_: BNTypeReferenceType,
6012}
6013#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6014const _: () = {
6015 ["Size of BNTypeReferenceSource"][::std::mem::size_of::<BNTypeReferenceSource>() - 40usize];
6016 ["Alignment of BNTypeReferenceSource"]
6017 [::std::mem::align_of::<BNTypeReferenceSource>() - 8usize];
6018 ["Offset of field: BNTypeReferenceSource::name"]
6019 [::std::mem::offset_of!(BNTypeReferenceSource, name) - 0usize];
6020 ["Offset of field: BNTypeReferenceSource::offset"]
6021 [::std::mem::offset_of!(BNTypeReferenceSource, offset) - 24usize];
6022 ["Offset of field: BNTypeReferenceSource::type_"]
6023 [::std::mem::offset_of!(BNTypeReferenceSource, type_) - 32usize];
6024};
6025impl Default for BNTypeReferenceSource {
6026 fn default() -> Self {
6027 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6028 unsafe {
6029 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6030 s.assume_init()
6031 }
6032 }
6033}
6034#[repr(u8)]
6035#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6036pub enum BNTagTypeType {
6037 UserTagType = 0,
6038 NotificationTagType = 1,
6039 BookmarksTagType = 2,
6040}
6041#[repr(u8)]
6042#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6043pub enum BNTagReferenceType {
6044 AddressTagReference = 0,
6045 FunctionTagReference = 1,
6046 DataTagReference = 2,
6047}
6048#[repr(C)]
6049#[derive(Debug, Copy, Clone)]
6050pub struct BNTagReference {
6051 pub refType: BNTagReferenceType,
6052 pub autoDefined: bool,
6053 pub tag: *mut BNTag,
6054 pub arch: *mut BNArchitecture,
6055 pub func: *mut BNFunction,
6056 pub addr: u64,
6057}
6058#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6059const _: () = {
6060 ["Size of BNTagReference"][::std::mem::size_of::<BNTagReference>() - 40usize];
6061 ["Alignment of BNTagReference"][::std::mem::align_of::<BNTagReference>() - 8usize];
6062 ["Offset of field: BNTagReference::refType"]
6063 [::std::mem::offset_of!(BNTagReference, refType) - 0usize];
6064 ["Offset of field: BNTagReference::autoDefined"]
6065 [::std::mem::offset_of!(BNTagReference, autoDefined) - 1usize];
6066 ["Offset of field: BNTagReference::tag"][::std::mem::offset_of!(BNTagReference, tag) - 8usize];
6067 ["Offset of field: BNTagReference::arch"]
6068 [::std::mem::offset_of!(BNTagReference, arch) - 16usize];
6069 ["Offset of field: BNTagReference::func"]
6070 [::std::mem::offset_of!(BNTagReference, func) - 24usize];
6071 ["Offset of field: BNTagReference::addr"]
6072 [::std::mem::offset_of!(BNTagReference, addr) - 32usize];
6073};
6074impl Default for BNTagReference {
6075 fn default() -> Self {
6076 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6077 unsafe {
6078 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6079 s.assume_init()
6080 }
6081 }
6082}
6083#[repr(C)]
6084#[derive(Debug, Copy, Clone)]
6085pub struct BNCallingConventionWithConfidence {
6086 pub convention: *mut BNCallingConvention,
6087 pub confidence: u8,
6088}
6089#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6090const _: () = {
6091 ["Size of BNCallingConventionWithConfidence"]
6092 [::std::mem::size_of::<BNCallingConventionWithConfidence>() - 16usize];
6093 ["Alignment of BNCallingConventionWithConfidence"]
6094 [::std::mem::align_of::<BNCallingConventionWithConfidence>() - 8usize];
6095 ["Offset of field: BNCallingConventionWithConfidence::convention"]
6096 [::std::mem::offset_of!(BNCallingConventionWithConfidence, convention) - 0usize];
6097 ["Offset of field: BNCallingConventionWithConfidence::confidence"]
6098 [::std::mem::offset_of!(BNCallingConventionWithConfidence, confidence) - 8usize];
6099};
6100impl Default for BNCallingConventionWithConfidence {
6101 fn default() -> Self {
6102 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6103 unsafe {
6104 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6105 s.assume_init()
6106 }
6107 }
6108}
6109#[repr(C)]
6110#[derive(Debug, Default, Copy, Clone)]
6111pub struct BNBoolWithConfidence {
6112 pub value: bool,
6113 pub confidence: u8,
6114}
6115#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6116const _: () = {
6117 ["Size of BNBoolWithConfidence"][::std::mem::size_of::<BNBoolWithConfidence>() - 2usize];
6118 ["Alignment of BNBoolWithConfidence"][::std::mem::align_of::<BNBoolWithConfidence>() - 1usize];
6119 ["Offset of field: BNBoolWithConfidence::value"]
6120 [::std::mem::offset_of!(BNBoolWithConfidence, value) - 0usize];
6121 ["Offset of field: BNBoolWithConfidence::confidence"]
6122 [::std::mem::offset_of!(BNBoolWithConfidence, confidence) - 1usize];
6123};
6124#[repr(C)]
6125#[derive(Debug, Default, Copy, Clone)]
6126pub struct BNOffsetWithConfidence {
6127 pub value: i64,
6128 pub confidence: u8,
6129}
6130#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6131const _: () = {
6132 ["Size of BNOffsetWithConfidence"][::std::mem::size_of::<BNOffsetWithConfidence>() - 16usize];
6133 ["Alignment of BNOffsetWithConfidence"]
6134 [::std::mem::align_of::<BNOffsetWithConfidence>() - 8usize];
6135 ["Offset of field: BNOffsetWithConfidence::value"]
6136 [::std::mem::offset_of!(BNOffsetWithConfidence, value) - 0usize];
6137 ["Offset of field: BNOffsetWithConfidence::confidence"]
6138 [::std::mem::offset_of!(BNOffsetWithConfidence, confidence) - 8usize];
6139};
6140#[repr(C)]
6141#[derive(Debug, Copy, Clone)]
6142pub struct BNParameterVariablesWithConfidence {
6143 pub vars: *mut BNVariable,
6144 pub count: usize,
6145 pub confidence: u8,
6146}
6147#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6148const _: () = {
6149 ["Size of BNParameterVariablesWithConfidence"]
6150 [::std::mem::size_of::<BNParameterVariablesWithConfidence>() - 24usize];
6151 ["Alignment of BNParameterVariablesWithConfidence"]
6152 [::std::mem::align_of::<BNParameterVariablesWithConfidence>() - 8usize];
6153 ["Offset of field: BNParameterVariablesWithConfidence::vars"]
6154 [::std::mem::offset_of!(BNParameterVariablesWithConfidence, vars) - 0usize];
6155 ["Offset of field: BNParameterVariablesWithConfidence::count"]
6156 [::std::mem::offset_of!(BNParameterVariablesWithConfidence, count) - 8usize];
6157 ["Offset of field: BNParameterVariablesWithConfidence::confidence"]
6158 [::std::mem::offset_of!(BNParameterVariablesWithConfidence, confidence) - 16usize];
6159};
6160impl Default for BNParameterVariablesWithConfidence {
6161 fn default() -> Self {
6162 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6163 unsafe {
6164 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6165 s.assume_init()
6166 }
6167 }
6168}
6169#[repr(C)]
6170#[derive(Debug, Copy, Clone)]
6171pub struct BNRegisterSetWithConfidence {
6172 pub regs: *mut u32,
6173 pub count: usize,
6174 pub confidence: u8,
6175}
6176#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6177const _: () = {
6178 ["Size of BNRegisterSetWithConfidence"]
6179 [::std::mem::size_of::<BNRegisterSetWithConfidence>() - 24usize];
6180 ["Alignment of BNRegisterSetWithConfidence"]
6181 [::std::mem::align_of::<BNRegisterSetWithConfidence>() - 8usize];
6182 ["Offset of field: BNRegisterSetWithConfidence::regs"]
6183 [::std::mem::offset_of!(BNRegisterSetWithConfidence, regs) - 0usize];
6184 ["Offset of field: BNRegisterSetWithConfidence::count"]
6185 [::std::mem::offset_of!(BNRegisterSetWithConfidence, count) - 8usize];
6186 ["Offset of field: BNRegisterSetWithConfidence::confidence"]
6187 [::std::mem::offset_of!(BNRegisterSetWithConfidence, confidence) - 16usize];
6188};
6189impl Default for BNRegisterSetWithConfidence {
6190 fn default() -> Self {
6191 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6192 unsafe {
6193 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6194 s.assume_init()
6195 }
6196 }
6197}
6198#[repr(C)]
6199#[derive(Debug, Copy, Clone)]
6200pub struct BNValueLocationComponent {
6201 pub variable: BNVariable,
6202 pub offset: i64,
6203 pub sizeValid: bool,
6204 pub size: u64,
6205}
6206#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6207const _: () = {
6208 ["Size of BNValueLocationComponent"]
6209 [::std::mem::size_of::<BNValueLocationComponent>() - 40usize];
6210 ["Alignment of BNValueLocationComponent"]
6211 [::std::mem::align_of::<BNValueLocationComponent>() - 8usize];
6212 ["Offset of field: BNValueLocationComponent::variable"]
6213 [::std::mem::offset_of!(BNValueLocationComponent, variable) - 0usize];
6214 ["Offset of field: BNValueLocationComponent::offset"]
6215 [::std::mem::offset_of!(BNValueLocationComponent, offset) - 16usize];
6216 ["Offset of field: BNValueLocationComponent::sizeValid"]
6217 [::std::mem::offset_of!(BNValueLocationComponent, sizeValid) - 24usize];
6218 ["Offset of field: BNValueLocationComponent::size"]
6219 [::std::mem::offset_of!(BNValueLocationComponent, size) - 32usize];
6220};
6221impl Default for BNValueLocationComponent {
6222 fn default() -> Self {
6223 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6224 unsafe {
6225 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6226 s.assume_init()
6227 }
6228 }
6229}
6230#[repr(C)]
6231#[derive(Debug, Copy, Clone)]
6232pub struct BNValueLocation {
6233 pub count: usize,
6234 pub components: *mut BNValueLocationComponent,
6235 pub indirect: bool,
6236 pub returnedPointerValid: bool,
6237 pub returnedPointer: BNVariable,
6238}
6239#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6240const _: () = {
6241 ["Size of BNValueLocation"][::std::mem::size_of::<BNValueLocation>() - 40usize];
6242 ["Alignment of BNValueLocation"][::std::mem::align_of::<BNValueLocation>() - 8usize];
6243 ["Offset of field: BNValueLocation::count"]
6244 [::std::mem::offset_of!(BNValueLocation, count) - 0usize];
6245 ["Offset of field: BNValueLocation::components"]
6246 [::std::mem::offset_of!(BNValueLocation, components) - 8usize];
6247 ["Offset of field: BNValueLocation::indirect"]
6248 [::std::mem::offset_of!(BNValueLocation, indirect) - 16usize];
6249 ["Offset of field: BNValueLocation::returnedPointerValid"]
6250 [::std::mem::offset_of!(BNValueLocation, returnedPointerValid) - 17usize];
6251 ["Offset of field: BNValueLocation::returnedPointer"]
6252 [::std::mem::offset_of!(BNValueLocation, returnedPointer) - 24usize];
6253};
6254impl Default for BNValueLocation {
6255 fn default() -> Self {
6256 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6257 unsafe {
6258 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6259 s.assume_init()
6260 }
6261 }
6262}
6263#[repr(C)]
6264#[derive(Debug, Copy, Clone)]
6265pub struct BNValueLocationWithConfidence {
6266 pub location: BNValueLocation,
6267 pub confidence: u8,
6268}
6269#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6270const _: () = {
6271 ["Size of BNValueLocationWithConfidence"]
6272 [::std::mem::size_of::<BNValueLocationWithConfidence>() - 48usize];
6273 ["Alignment of BNValueLocationWithConfidence"]
6274 [::std::mem::align_of::<BNValueLocationWithConfidence>() - 8usize];
6275 ["Offset of field: BNValueLocationWithConfidence::location"]
6276 [::std::mem::offset_of!(BNValueLocationWithConfidence, location) - 0usize];
6277 ["Offset of field: BNValueLocationWithConfidence::confidence"]
6278 [::std::mem::offset_of!(BNValueLocationWithConfidence, confidence) - 40usize];
6279};
6280impl Default for BNValueLocationWithConfidence {
6281 fn default() -> Self {
6282 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6283 unsafe {
6284 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6285 s.assume_init()
6286 }
6287 }
6288}
6289#[repr(C)]
6290#[derive(Debug, Copy, Clone)]
6291pub struct BNValueLocationListWithConfidence {
6292 pub locations: *mut BNValueLocation,
6293 pub count: usize,
6294 pub confidence: u8,
6295}
6296#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6297const _: () = {
6298 ["Size of BNValueLocationListWithConfidence"]
6299 [::std::mem::size_of::<BNValueLocationListWithConfidence>() - 24usize];
6300 ["Alignment of BNValueLocationListWithConfidence"]
6301 [::std::mem::align_of::<BNValueLocationListWithConfidence>() - 8usize];
6302 ["Offset of field: BNValueLocationListWithConfidence::locations"]
6303 [::std::mem::offset_of!(BNValueLocationListWithConfidence, locations) - 0usize];
6304 ["Offset of field: BNValueLocationListWithConfidence::count"]
6305 [::std::mem::offset_of!(BNValueLocationListWithConfidence, count) - 8usize];
6306 ["Offset of field: BNValueLocationListWithConfidence::confidence"]
6307 [::std::mem::offset_of!(BNValueLocationListWithConfidence, confidence) - 16usize];
6308};
6309impl Default for BNValueLocationListWithConfidence {
6310 fn default() -> Self {
6311 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6312 unsafe {
6313 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6314 s.assume_init()
6315 }
6316 }
6317}
6318#[repr(u8)]
6319#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6320pub enum BNValueLocationSource {
6321 DefaultLocationSource = 0,
6322 PassByValueLocationSource = 1,
6323 PassByReferenceLocationSource = 2,
6324 CustomLocationSource = 3,
6325}
6326#[repr(C)]
6327#[derive(Debug, Copy, Clone)]
6328pub struct BNFunctionParameter {
6329 pub name: *mut ::std::os::raw::c_char,
6330 pub type_: *mut BNType,
6331 pub typeConfidence: u8,
6332 pub locationSource: BNValueLocationSource,
6333 pub location: BNValueLocation,
6334}
6335#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6336const _: () = {
6337 ["Size of BNFunctionParameter"][::std::mem::size_of::<BNFunctionParameter>() - 64usize];
6338 ["Alignment of BNFunctionParameter"][::std::mem::align_of::<BNFunctionParameter>() - 8usize];
6339 ["Offset of field: BNFunctionParameter::name"]
6340 [::std::mem::offset_of!(BNFunctionParameter, name) - 0usize];
6341 ["Offset of field: BNFunctionParameter::type_"]
6342 [::std::mem::offset_of!(BNFunctionParameter, type_) - 8usize];
6343 ["Offset of field: BNFunctionParameter::typeConfidence"]
6344 [::std::mem::offset_of!(BNFunctionParameter, typeConfidence) - 16usize];
6345 ["Offset of field: BNFunctionParameter::locationSource"]
6346 [::std::mem::offset_of!(BNFunctionParameter, locationSource) - 17usize];
6347 ["Offset of field: BNFunctionParameter::location"]
6348 [::std::mem::offset_of!(BNFunctionParameter, location) - 24usize];
6349};
6350impl Default for BNFunctionParameter {
6351 fn default() -> Self {
6352 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6353 unsafe {
6354 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6355 s.assume_init()
6356 }
6357 }
6358}
6359#[repr(C)]
6360#[derive(Debug, Copy, Clone)]
6361pub struct BNReturnValue {
6362 pub type_: *mut BNType,
6363 pub typeConfidence: u8,
6364 pub defaultLocation: bool,
6365 pub location: BNValueLocation,
6366 pub locationConfidence: u8,
6367}
6368#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6369const _: () = {
6370 ["Size of BNReturnValue"][::std::mem::size_of::<BNReturnValue>() - 64usize];
6371 ["Alignment of BNReturnValue"][::std::mem::align_of::<BNReturnValue>() - 8usize];
6372 ["Offset of field: BNReturnValue::type_"]
6373 [::std::mem::offset_of!(BNReturnValue, type_) - 0usize];
6374 ["Offset of field: BNReturnValue::typeConfidence"]
6375 [::std::mem::offset_of!(BNReturnValue, typeConfidence) - 8usize];
6376 ["Offset of field: BNReturnValue::defaultLocation"]
6377 [::std::mem::offset_of!(BNReturnValue, defaultLocation) - 9usize];
6378 ["Offset of field: BNReturnValue::location"]
6379 [::std::mem::offset_of!(BNReturnValue, location) - 16usize];
6380 ["Offset of field: BNReturnValue::locationConfidence"]
6381 [::std::mem::offset_of!(BNReturnValue, locationConfidence) - 56usize];
6382};
6383impl Default for BNReturnValue {
6384 fn default() -> Self {
6385 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6386 unsafe {
6387 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6388 s.assume_init()
6389 }
6390 }
6391}
6392#[repr(C)]
6393#[derive(Debug, Copy, Clone)]
6394pub struct BNCallLayout {
6395 pub parameters: *mut BNValueLocation,
6396 pub parameterCount: usize,
6397 pub returnValueValid: bool,
6398 pub returnValue: BNValueLocation,
6399 pub stackAdjustment: i64,
6400 pub registerStackAdjustmentRegisters: *mut u32,
6401 pub registerStackAdjustmentAmounts: *mut i32,
6402 pub registerStackAdjustmentCount: usize,
6403}
6404#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6405const _: () = {
6406 ["Size of BNCallLayout"][::std::mem::size_of::<BNCallLayout>() - 96usize];
6407 ["Alignment of BNCallLayout"][::std::mem::align_of::<BNCallLayout>() - 8usize];
6408 ["Offset of field: BNCallLayout::parameters"]
6409 [::std::mem::offset_of!(BNCallLayout, parameters) - 0usize];
6410 ["Offset of field: BNCallLayout::parameterCount"]
6411 [::std::mem::offset_of!(BNCallLayout, parameterCount) - 8usize];
6412 ["Offset of field: BNCallLayout::returnValueValid"]
6413 [::std::mem::offset_of!(BNCallLayout, returnValueValid) - 16usize];
6414 ["Offset of field: BNCallLayout::returnValue"]
6415 [::std::mem::offset_of!(BNCallLayout, returnValue) - 24usize];
6416 ["Offset of field: BNCallLayout::stackAdjustment"]
6417 [::std::mem::offset_of!(BNCallLayout, stackAdjustment) - 64usize];
6418 ["Offset of field: BNCallLayout::registerStackAdjustmentRegisters"]
6419 [::std::mem::offset_of!(BNCallLayout, registerStackAdjustmentRegisters) - 72usize];
6420 ["Offset of field: BNCallLayout::registerStackAdjustmentAmounts"]
6421 [::std::mem::offset_of!(BNCallLayout, registerStackAdjustmentAmounts) - 80usize];
6422 ["Offset of field: BNCallLayout::registerStackAdjustmentCount"]
6423 [::std::mem::offset_of!(BNCallLayout, registerStackAdjustmentCount) - 88usize];
6424};
6425impl Default for BNCallLayout {
6426 fn default() -> Self {
6427 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6428 unsafe {
6429 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6430 s.assume_init()
6431 }
6432 }
6433}
6434#[repr(C)]
6435#[derive(Debug, Copy, Clone)]
6436pub struct BNQualifiedNameAndType {
6437 pub name: BNQualifiedName,
6438 pub type_: *mut BNType,
6439}
6440#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6441const _: () = {
6442 ["Size of BNQualifiedNameAndType"][::std::mem::size_of::<BNQualifiedNameAndType>() - 32usize];
6443 ["Alignment of BNQualifiedNameAndType"]
6444 [::std::mem::align_of::<BNQualifiedNameAndType>() - 8usize];
6445 ["Offset of field: BNQualifiedNameAndType::name"]
6446 [::std::mem::offset_of!(BNQualifiedNameAndType, name) - 0usize];
6447 ["Offset of field: BNQualifiedNameAndType::type_"]
6448 [::std::mem::offset_of!(BNQualifiedNameAndType, type_) - 24usize];
6449};
6450impl Default for BNQualifiedNameAndType {
6451 fn default() -> Self {
6452 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6453 unsafe {
6454 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6455 s.assume_init()
6456 }
6457 }
6458}
6459#[repr(C)]
6460#[derive(Debug, Copy, Clone)]
6461pub struct BNQualifiedNameTypeAndId {
6462 pub name: BNQualifiedName,
6463 pub id: *mut ::std::os::raw::c_char,
6464 pub type_: *mut BNType,
6465}
6466#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6467const _: () = {
6468 ["Size of BNQualifiedNameTypeAndId"]
6469 [::std::mem::size_of::<BNQualifiedNameTypeAndId>() - 40usize];
6470 ["Alignment of BNQualifiedNameTypeAndId"]
6471 [::std::mem::align_of::<BNQualifiedNameTypeAndId>() - 8usize];
6472 ["Offset of field: BNQualifiedNameTypeAndId::name"]
6473 [::std::mem::offset_of!(BNQualifiedNameTypeAndId, name) - 0usize];
6474 ["Offset of field: BNQualifiedNameTypeAndId::id"]
6475 [::std::mem::offset_of!(BNQualifiedNameTypeAndId, id) - 24usize];
6476 ["Offset of field: BNQualifiedNameTypeAndId::type_"]
6477 [::std::mem::offset_of!(BNQualifiedNameTypeAndId, type_) - 32usize];
6478};
6479impl Default for BNQualifiedNameTypeAndId {
6480 fn default() -> Self {
6481 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6482 unsafe {
6483 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6484 s.assume_init()
6485 }
6486 }
6487}
6488#[repr(C)]
6489#[derive(Debug, Copy, Clone)]
6490pub struct BNStructureMember {
6491 pub type_: *mut BNType,
6492 pub name: *mut ::std::os::raw::c_char,
6493 pub offset: u64,
6494 pub typeConfidence: u8,
6495 pub access: BNMemberAccess,
6496 pub scope: BNMemberScope,
6497 pub bitPosition: u8,
6498 pub bitWidth: u8,
6499}
6500#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6501const _: () = {
6502 ["Size of BNStructureMember"][::std::mem::size_of::<BNStructureMember>() - 32usize];
6503 ["Alignment of BNStructureMember"][::std::mem::align_of::<BNStructureMember>() - 8usize];
6504 ["Offset of field: BNStructureMember::type_"]
6505 [::std::mem::offset_of!(BNStructureMember, type_) - 0usize];
6506 ["Offset of field: BNStructureMember::name"]
6507 [::std::mem::offset_of!(BNStructureMember, name) - 8usize];
6508 ["Offset of field: BNStructureMember::offset"]
6509 [::std::mem::offset_of!(BNStructureMember, offset) - 16usize];
6510 ["Offset of field: BNStructureMember::typeConfidence"]
6511 [::std::mem::offset_of!(BNStructureMember, typeConfidence) - 24usize];
6512 ["Offset of field: BNStructureMember::access"]
6513 [::std::mem::offset_of!(BNStructureMember, access) - 25usize];
6514 ["Offset of field: BNStructureMember::scope"]
6515 [::std::mem::offset_of!(BNStructureMember, scope) - 26usize];
6516 ["Offset of field: BNStructureMember::bitPosition"]
6517 [::std::mem::offset_of!(BNStructureMember, bitPosition) - 27usize];
6518 ["Offset of field: BNStructureMember::bitWidth"]
6519 [::std::mem::offset_of!(BNStructureMember, bitWidth) - 28usize];
6520};
6521impl Default for BNStructureMember {
6522 fn default() -> Self {
6523 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6524 unsafe {
6525 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6526 s.assume_init()
6527 }
6528 }
6529}
6530#[repr(C)]
6531#[derive(Debug, Copy, Clone)]
6532pub struct BNInheritedStructureMember {
6533 pub base: *mut BNNamedTypeReference,
6534 pub baseOffset: u64,
6535 pub member: BNStructureMember,
6536 pub memberIndex: usize,
6537}
6538#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6539const _: () = {
6540 ["Size of BNInheritedStructureMember"]
6541 [::std::mem::size_of::<BNInheritedStructureMember>() - 56usize];
6542 ["Alignment of BNInheritedStructureMember"]
6543 [::std::mem::align_of::<BNInheritedStructureMember>() - 8usize];
6544 ["Offset of field: BNInheritedStructureMember::base"]
6545 [::std::mem::offset_of!(BNInheritedStructureMember, base) - 0usize];
6546 ["Offset of field: BNInheritedStructureMember::baseOffset"]
6547 [::std::mem::offset_of!(BNInheritedStructureMember, baseOffset) - 8usize];
6548 ["Offset of field: BNInheritedStructureMember::member"]
6549 [::std::mem::offset_of!(BNInheritedStructureMember, member) - 16usize];
6550 ["Offset of field: BNInheritedStructureMember::memberIndex"]
6551 [::std::mem::offset_of!(BNInheritedStructureMember, memberIndex) - 48usize];
6552};
6553impl Default for BNInheritedStructureMember {
6554 fn default() -> Self {
6555 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6556 unsafe {
6557 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6558 s.assume_init()
6559 }
6560 }
6561}
6562#[repr(C)]
6563#[derive(Debug, Copy, Clone)]
6564pub struct BNBaseStructure {
6565 pub type_: *mut BNNamedTypeReference,
6566 pub offset: u64,
6567 pub width: u64,
6568}
6569#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6570const _: () = {
6571 ["Size of BNBaseStructure"][::std::mem::size_of::<BNBaseStructure>() - 24usize];
6572 ["Alignment of BNBaseStructure"][::std::mem::align_of::<BNBaseStructure>() - 8usize];
6573 ["Offset of field: BNBaseStructure::type_"]
6574 [::std::mem::offset_of!(BNBaseStructure, type_) - 0usize];
6575 ["Offset of field: BNBaseStructure::offset"]
6576 [::std::mem::offset_of!(BNBaseStructure, offset) - 8usize];
6577 ["Offset of field: BNBaseStructure::width"]
6578 [::std::mem::offset_of!(BNBaseStructure, width) - 16usize];
6579};
6580impl Default for BNBaseStructure {
6581 fn default() -> Self {
6582 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6583 unsafe {
6584 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6585 s.assume_init()
6586 }
6587 }
6588}
6589#[repr(C)]
6590#[derive(Debug, Copy, Clone)]
6591pub struct BNEnumerationMember {
6592 pub name: *mut ::std::os::raw::c_char,
6593 pub value: u64,
6594 pub isDefault: bool,
6595}
6596#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6597const _: () = {
6598 ["Size of BNEnumerationMember"][::std::mem::size_of::<BNEnumerationMember>() - 24usize];
6599 ["Alignment of BNEnumerationMember"][::std::mem::align_of::<BNEnumerationMember>() - 8usize];
6600 ["Offset of field: BNEnumerationMember::name"]
6601 [::std::mem::offset_of!(BNEnumerationMember, name) - 0usize];
6602 ["Offset of field: BNEnumerationMember::value"]
6603 [::std::mem::offset_of!(BNEnumerationMember, value) - 8usize];
6604 ["Offset of field: BNEnumerationMember::isDefault"]
6605 [::std::mem::offset_of!(BNEnumerationMember, isDefault) - 16usize];
6606};
6607impl Default for BNEnumerationMember {
6608 fn default() -> Self {
6609 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6610 unsafe {
6611 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6612 s.assume_init()
6613 }
6614 }
6615}
6616#[repr(C)]
6617#[derive(Debug, Copy, Clone)]
6618pub struct BNFunctionRecognizer {
6619 pub context: *mut ::std::os::raw::c_void,
6620 pub recognizeLowLevelIL: ::std::option::Option<
6621 unsafe extern "C" fn(
6622 ctxt: *mut ::std::os::raw::c_void,
6623 data: *mut BNBinaryView,
6624 func: *mut BNFunction,
6625 il: *mut BNLowLevelILFunction,
6626 ) -> bool,
6627 >,
6628 pub recognizeMediumLevelIL: ::std::option::Option<
6629 unsafe extern "C" fn(
6630 ctxt: *mut ::std::os::raw::c_void,
6631 data: *mut BNBinaryView,
6632 func: *mut BNFunction,
6633 il: *mut BNMediumLevelILFunction,
6634 ) -> bool,
6635 >,
6636}
6637#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6638const _: () = {
6639 ["Size of BNFunctionRecognizer"][::std::mem::size_of::<BNFunctionRecognizer>() - 24usize];
6640 ["Alignment of BNFunctionRecognizer"][::std::mem::align_of::<BNFunctionRecognizer>() - 8usize];
6641 ["Offset of field: BNFunctionRecognizer::context"]
6642 [::std::mem::offset_of!(BNFunctionRecognizer, context) - 0usize];
6643 ["Offset of field: BNFunctionRecognizer::recognizeLowLevelIL"]
6644 [::std::mem::offset_of!(BNFunctionRecognizer, recognizeLowLevelIL) - 8usize];
6645 ["Offset of field: BNFunctionRecognizer::recognizeMediumLevelIL"]
6646 [::std::mem::offset_of!(BNFunctionRecognizer, recognizeMediumLevelIL) - 16usize];
6647};
6648impl Default for BNFunctionRecognizer {
6649 fn default() -> Self {
6650 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6651 unsafe {
6652 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6653 s.assume_init()
6654 }
6655 }
6656}
6657#[repr(C)]
6658#[derive(Debug, Copy, Clone)]
6659pub struct BNCustomRelocationHandler {
6660 pub context: *mut ::std::os::raw::c_void,
6661 pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
6662 pub getRelocationInfo: ::std::option::Option<
6663 unsafe extern "C" fn(
6664 ctxt: *mut ::std::os::raw::c_void,
6665 view: *mut BNBinaryView,
6666 arch: *mut BNArchitecture,
6667 result: *mut BNRelocationInfo,
6668 resultCount: usize,
6669 ) -> bool,
6670 >,
6671 pub applyRelocation: ::std::option::Option<
6672 unsafe extern "C" fn(
6673 ctxt: *mut ::std::os::raw::c_void,
6674 view: *mut BNBinaryView,
6675 arch: *mut BNArchitecture,
6676 reloc: *mut BNRelocation,
6677 dest: *mut u8,
6678 len: usize,
6679 ) -> bool,
6680 >,
6681 pub getOperandForExternalRelocation: ::std::option::Option<
6682 unsafe extern "C" fn(
6683 ctxt: *mut ::std::os::raw::c_void,
6684 data: *const u8,
6685 addr: u64,
6686 length: usize,
6687 il: *mut BNLowLevelILFunction,
6688 relocation: *mut BNRelocation,
6689 ) -> usize,
6690 >,
6691}
6692#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6693const _: () = {
6694 ["Size of BNCustomRelocationHandler"]
6695 [::std::mem::size_of::<BNCustomRelocationHandler>() - 40usize];
6696 ["Alignment of BNCustomRelocationHandler"]
6697 [::std::mem::align_of::<BNCustomRelocationHandler>() - 8usize];
6698 ["Offset of field: BNCustomRelocationHandler::context"]
6699 [::std::mem::offset_of!(BNCustomRelocationHandler, context) - 0usize];
6700 ["Offset of field: BNCustomRelocationHandler::freeObject"]
6701 [::std::mem::offset_of!(BNCustomRelocationHandler, freeObject) - 8usize];
6702 ["Offset of field: BNCustomRelocationHandler::getRelocationInfo"]
6703 [::std::mem::offset_of!(BNCustomRelocationHandler, getRelocationInfo) - 16usize];
6704 ["Offset of field: BNCustomRelocationHandler::applyRelocation"]
6705 [::std::mem::offset_of!(BNCustomRelocationHandler, applyRelocation) - 24usize];
6706 ["Offset of field: BNCustomRelocationHandler::getOperandForExternalRelocation"][::std::mem::offset_of!(
6707 BNCustomRelocationHandler,
6708 getOperandForExternalRelocation
6709 ) - 32usize];
6710};
6711impl Default for BNCustomRelocationHandler {
6712 fn default() -> Self {
6713 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6714 unsafe {
6715 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6716 s.assume_init()
6717 }
6718 }
6719}
6720#[repr(u8)]
6721#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6722pub enum BNTypeParserOption {
6723 IncludeSystemTypes = 0,
6724 BuiltinMacros = 1,
6725}
6726#[repr(C)]
6727#[derive(Debug, Copy, Clone)]
6728pub struct BNParsedType {
6729 pub name: BNQualifiedName,
6730 pub type_: *mut BNType,
6731 pub isUser: bool,
6732}
6733#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6734const _: () = {
6735 ["Size of BNParsedType"][::std::mem::size_of::<BNParsedType>() - 40usize];
6736 ["Alignment of BNParsedType"][::std::mem::align_of::<BNParsedType>() - 8usize];
6737 ["Offset of field: BNParsedType::name"][::std::mem::offset_of!(BNParsedType, name) - 0usize];
6738 ["Offset of field: BNParsedType::type_"][::std::mem::offset_of!(BNParsedType, type_) - 24usize];
6739 ["Offset of field: BNParsedType::isUser"]
6740 [::std::mem::offset_of!(BNParsedType, isUser) - 32usize];
6741};
6742impl Default for BNParsedType {
6743 fn default() -> Self {
6744 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6745 unsafe {
6746 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6747 s.assume_init()
6748 }
6749 }
6750}
6751#[repr(C)]
6752#[derive(Debug, Copy, Clone)]
6753pub struct BNTypeParserResult {
6754 pub types: *mut BNParsedType,
6755 pub variables: *mut BNParsedType,
6756 pub functions: *mut BNParsedType,
6757 pub typeCount: usize,
6758 pub variableCount: usize,
6759 pub functionCount: usize,
6760}
6761#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6762const _: () = {
6763 ["Size of BNTypeParserResult"][::std::mem::size_of::<BNTypeParserResult>() - 48usize];
6764 ["Alignment of BNTypeParserResult"][::std::mem::align_of::<BNTypeParserResult>() - 8usize];
6765 ["Offset of field: BNTypeParserResult::types"]
6766 [::std::mem::offset_of!(BNTypeParserResult, types) - 0usize];
6767 ["Offset of field: BNTypeParserResult::variables"]
6768 [::std::mem::offset_of!(BNTypeParserResult, variables) - 8usize];
6769 ["Offset of field: BNTypeParserResult::functions"]
6770 [::std::mem::offset_of!(BNTypeParserResult, functions) - 16usize];
6771 ["Offset of field: BNTypeParserResult::typeCount"]
6772 [::std::mem::offset_of!(BNTypeParserResult, typeCount) - 24usize];
6773 ["Offset of field: BNTypeParserResult::variableCount"]
6774 [::std::mem::offset_of!(BNTypeParserResult, variableCount) - 32usize];
6775 ["Offset of field: BNTypeParserResult::functionCount"]
6776 [::std::mem::offset_of!(BNTypeParserResult, functionCount) - 40usize];
6777};
6778impl Default for BNTypeParserResult {
6779 fn default() -> Self {
6780 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6781 unsafe {
6782 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6783 s.assume_init()
6784 }
6785 }
6786}
6787#[repr(u8)]
6788#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6789pub enum BNTypeParserErrorSeverity {
6790 IgnoredSeverity = 0,
6791 NoteSeverity = 1,
6792 RemarkSeverity = 2,
6793 WarningSeverity = 3,
6794 ErrorSeverity = 4,
6795 FatalSeverity = 5,
6796}
6797#[repr(C)]
6798#[derive(Debug, Copy, Clone)]
6799pub struct BNTypeParserError {
6800 pub severity: BNTypeParserErrorSeverity,
6801 pub message: *mut ::std::os::raw::c_char,
6802 pub fileName: *mut ::std::os::raw::c_char,
6803 pub line: u64,
6804 pub column: u64,
6805}
6806#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6807const _: () = {
6808 ["Size of BNTypeParserError"][::std::mem::size_of::<BNTypeParserError>() - 40usize];
6809 ["Alignment of BNTypeParserError"][::std::mem::align_of::<BNTypeParserError>() - 8usize];
6810 ["Offset of field: BNTypeParserError::severity"]
6811 [::std::mem::offset_of!(BNTypeParserError, severity) - 0usize];
6812 ["Offset of field: BNTypeParserError::message"]
6813 [::std::mem::offset_of!(BNTypeParserError, message) - 8usize];
6814 ["Offset of field: BNTypeParserError::fileName"]
6815 [::std::mem::offset_of!(BNTypeParserError, fileName) - 16usize];
6816 ["Offset of field: BNTypeParserError::line"]
6817 [::std::mem::offset_of!(BNTypeParserError, line) - 24usize];
6818 ["Offset of field: BNTypeParserError::column"]
6819 [::std::mem::offset_of!(BNTypeParserError, column) - 32usize];
6820};
6821impl Default for BNTypeParserError {
6822 fn default() -> Self {
6823 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6824 unsafe {
6825 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6826 s.assume_init()
6827 }
6828 }
6829}
6830#[repr(C)]
6831#[derive(Debug, Copy, Clone)]
6832pub struct BNQualifiedNameList {
6833 pub names: *mut BNQualifiedName,
6834 pub count: usize,
6835}
6836#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6837const _: () = {
6838 ["Size of BNQualifiedNameList"][::std::mem::size_of::<BNQualifiedNameList>() - 16usize];
6839 ["Alignment of BNQualifiedNameList"][::std::mem::align_of::<BNQualifiedNameList>() - 8usize];
6840 ["Offset of field: BNQualifiedNameList::names"]
6841 [::std::mem::offset_of!(BNQualifiedNameList, names) - 0usize];
6842 ["Offset of field: BNQualifiedNameList::count"]
6843 [::std::mem::offset_of!(BNQualifiedNameList, count) - 8usize];
6844};
6845impl Default for BNQualifiedNameList {
6846 fn default() -> Self {
6847 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6848 unsafe {
6849 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6850 s.assume_init()
6851 }
6852 }
6853}
6854#[repr(u8)]
6855#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6856pub enum BNUpdateResult {
6857 UpdateFailed = 0,
6858 UpdateSuccess = 1,
6859 AlreadyUpToDate = 2,
6860 UpdateAvailable = 3,
6861}
6862#[repr(C)]
6863#[derive(Debug, Copy, Clone)]
6864pub struct BNUpdateChannel {
6865 pub name: *mut ::std::os::raw::c_char,
6866 pub description: *mut ::std::os::raw::c_char,
6867 pub latestVersion: *mut ::std::os::raw::c_char,
6868}
6869#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6870const _: () = {
6871 ["Size of BNUpdateChannel"][::std::mem::size_of::<BNUpdateChannel>() - 24usize];
6872 ["Alignment of BNUpdateChannel"][::std::mem::align_of::<BNUpdateChannel>() - 8usize];
6873 ["Offset of field: BNUpdateChannel::name"]
6874 [::std::mem::offset_of!(BNUpdateChannel, name) - 0usize];
6875 ["Offset of field: BNUpdateChannel::description"]
6876 [::std::mem::offset_of!(BNUpdateChannel, description) - 8usize];
6877 ["Offset of field: BNUpdateChannel::latestVersion"]
6878 [::std::mem::offset_of!(BNUpdateChannel, latestVersion) - 16usize];
6879};
6880impl Default for BNUpdateChannel {
6881 fn default() -> Self {
6882 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6883 unsafe {
6884 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6885 s.assume_init()
6886 }
6887 }
6888}
6889#[repr(C)]
6890#[derive(Debug, Copy, Clone)]
6891pub struct BNChangelogEntry {
6892 pub version: BNVersionInfo,
6893 pub notes: *mut ::std::os::raw::c_char,
6894 pub time: u64,
6895}
6896#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6897const _: () = {
6898 ["Size of BNChangelogEntry"][::std::mem::size_of::<BNChangelogEntry>() - 40usize];
6899 ["Alignment of BNChangelogEntry"][::std::mem::align_of::<BNChangelogEntry>() - 8usize];
6900 ["Offset of field: BNChangelogEntry::version"]
6901 [::std::mem::offset_of!(BNChangelogEntry, version) - 0usize];
6902 ["Offset of field: BNChangelogEntry::notes"]
6903 [::std::mem::offset_of!(BNChangelogEntry, notes) - 24usize];
6904 ["Offset of field: BNChangelogEntry::time"]
6905 [::std::mem::offset_of!(BNChangelogEntry, time) - 32usize];
6906};
6907impl Default for BNChangelogEntry {
6908 fn default() -> Self {
6909 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6910 unsafe {
6911 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6912 s.assume_init()
6913 }
6914 }
6915}
6916#[repr(C)]
6917#[derive(Debug, Copy, Clone)]
6918pub struct BNUpdateVersionNew {
6919 pub version: BNVersionInfo,
6920 pub name: *mut ::std::os::raw::c_char,
6921 pub time: u64,
6922}
6923#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6924const _: () = {
6925 ["Size of BNUpdateVersionNew"][::std::mem::size_of::<BNUpdateVersionNew>() - 40usize];
6926 ["Alignment of BNUpdateVersionNew"][::std::mem::align_of::<BNUpdateVersionNew>() - 8usize];
6927 ["Offset of field: BNUpdateVersionNew::version"]
6928 [::std::mem::offset_of!(BNUpdateVersionNew, version) - 0usize];
6929 ["Offset of field: BNUpdateVersionNew::name"]
6930 [::std::mem::offset_of!(BNUpdateVersionNew, name) - 24usize];
6931 ["Offset of field: BNUpdateVersionNew::time"]
6932 [::std::mem::offset_of!(BNUpdateVersionNew, time) - 32usize];
6933};
6934impl Default for BNUpdateVersionNew {
6935 fn default() -> Self {
6936 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6937 unsafe {
6938 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6939 s.assume_init()
6940 }
6941 }
6942}
6943#[repr(C)]
6944#[derive(Debug, Copy, Clone)]
6945pub struct BNUpdateChannelFullInfo {
6946 pub versions: *mut BNUpdateVersionNew,
6947 pub versionCount: u64,
6948 pub changelogEntries: *mut BNChangelogEntry,
6949 pub changelogEntryCount: u64,
6950 pub name: *mut ::std::os::raw::c_char,
6951 pub desc: *mut ::std::os::raw::c_char,
6952 pub latestVersion: *mut ::std::os::raw::c_char,
6953}
6954#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6955const _: () = {
6956 ["Size of BNUpdateChannelFullInfo"][::std::mem::size_of::<BNUpdateChannelFullInfo>() - 56usize];
6957 ["Alignment of BNUpdateChannelFullInfo"]
6958 [::std::mem::align_of::<BNUpdateChannelFullInfo>() - 8usize];
6959 ["Offset of field: BNUpdateChannelFullInfo::versions"]
6960 [::std::mem::offset_of!(BNUpdateChannelFullInfo, versions) - 0usize];
6961 ["Offset of field: BNUpdateChannelFullInfo::versionCount"]
6962 [::std::mem::offset_of!(BNUpdateChannelFullInfo, versionCount) - 8usize];
6963 ["Offset of field: BNUpdateChannelFullInfo::changelogEntries"]
6964 [::std::mem::offset_of!(BNUpdateChannelFullInfo, changelogEntries) - 16usize];
6965 ["Offset of field: BNUpdateChannelFullInfo::changelogEntryCount"]
6966 [::std::mem::offset_of!(BNUpdateChannelFullInfo, changelogEntryCount) - 24usize];
6967 ["Offset of field: BNUpdateChannelFullInfo::name"]
6968 [::std::mem::offset_of!(BNUpdateChannelFullInfo, name) - 32usize];
6969 ["Offset of field: BNUpdateChannelFullInfo::desc"]
6970 [::std::mem::offset_of!(BNUpdateChannelFullInfo, desc) - 40usize];
6971 ["Offset of field: BNUpdateChannelFullInfo::latestVersion"]
6972 [::std::mem::offset_of!(BNUpdateChannelFullInfo, latestVersion) - 48usize];
6973};
6974impl Default for BNUpdateChannelFullInfo {
6975 fn default() -> Self {
6976 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
6977 unsafe {
6978 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
6979 s.assume_init()
6980 }
6981 }
6982}
6983#[repr(C)]
6984#[derive(Debug, Copy, Clone)]
6985pub struct BNUpdateVersion {
6986 pub version: *mut ::std::os::raw::c_char,
6987 pub notes: *mut ::std::os::raw::c_char,
6988 pub time: u64,
6989}
6990#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6991const _: () = {
6992 ["Size of BNUpdateVersion"][::std::mem::size_of::<BNUpdateVersion>() - 24usize];
6993 ["Alignment of BNUpdateVersion"][::std::mem::align_of::<BNUpdateVersion>() - 8usize];
6994 ["Offset of field: BNUpdateVersion::version"]
6995 [::std::mem::offset_of!(BNUpdateVersion, version) - 0usize];
6996 ["Offset of field: BNUpdateVersion::notes"]
6997 [::std::mem::offset_of!(BNUpdateVersion, notes) - 8usize];
6998 ["Offset of field: BNUpdateVersion::time"]
6999 [::std::mem::offset_of!(BNUpdateVersion, time) - 16usize];
7000};
7001impl Default for BNUpdateVersion {
7002 fn default() -> Self {
7003 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7004 unsafe {
7005 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7006 s.assume_init()
7007 }
7008 }
7009}
7010#[repr(C)]
7011#[derive(Debug, Copy, Clone)]
7012pub struct BNStringReference {
7013 pub type_: BNStringType,
7014 pub start: u64,
7015 pub length: usize,
7016}
7017#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7018const _: () = {
7019 ["Size of BNStringReference"][::std::mem::size_of::<BNStringReference>() - 24usize];
7020 ["Alignment of BNStringReference"][::std::mem::align_of::<BNStringReference>() - 8usize];
7021 ["Offset of field: BNStringReference::type_"]
7022 [::std::mem::offset_of!(BNStringReference, type_) - 0usize];
7023 ["Offset of field: BNStringReference::start"]
7024 [::std::mem::offset_of!(BNStringReference, start) - 8usize];
7025 ["Offset of field: BNStringReference::length"]
7026 [::std::mem::offset_of!(BNStringReference, length) - 16usize];
7027};
7028impl Default for BNStringReference {
7029 fn default() -> Self {
7030 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7031 unsafe {
7032 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7033 s.assume_init()
7034 }
7035 }
7036}
7037#[repr(u8)]
7038#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7039pub enum BNPluginCommandType {
7040 DefaultPluginCommand = 0,
7041 AddressPluginCommand = 1,
7042 RangePluginCommand = 2,
7043 FunctionPluginCommand = 3,
7044 LowLevelILFunctionPluginCommand = 4,
7045 LowLevelILInstructionPluginCommand = 5,
7046 MediumLevelILFunctionPluginCommand = 6,
7047 MediumLevelILInstructionPluginCommand = 7,
7048 HighLevelILFunctionPluginCommand = 8,
7049 HighLevelILInstructionPluginCommand = 9,
7050 ProjectPluginCommand = 10,
7051 GlobalPluginCommand = 11,
7052}
7053#[repr(C)]
7054#[derive(Debug, Copy, Clone)]
7055pub struct BNPluginCommand {
7056 pub name: *mut ::std::os::raw::c_char,
7057 pub description: *mut ::std::os::raw::c_char,
7058 pub type_: BNPluginCommandType,
7059 pub context: *mut ::std::os::raw::c_void,
7060 pub globalCommand:
7061 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
7062 pub defaultCommand: ::std::option::Option<
7063 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
7064 >,
7065 pub addressCommand: ::std::option::Option<
7066 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView, addr: u64),
7067 >,
7068 pub rangeCommand: ::std::option::Option<
7069 unsafe extern "C" fn(
7070 ctxt: *mut ::std::os::raw::c_void,
7071 view: *mut BNBinaryView,
7072 addr: u64,
7073 len: u64,
7074 ),
7075 >,
7076 pub functionCommand: ::std::option::Option<
7077 unsafe extern "C" fn(
7078 ctxt: *mut ::std::os::raw::c_void,
7079 view: *mut BNBinaryView,
7080 func: *mut BNFunction,
7081 ),
7082 >,
7083 pub lowLevelILFunctionCommand: ::std::option::Option<
7084 unsafe extern "C" fn(
7085 ctxt: *mut ::std::os::raw::c_void,
7086 view: *mut BNBinaryView,
7087 func: *mut BNLowLevelILFunction,
7088 ),
7089 >,
7090 pub lowLevelILInstructionCommand: ::std::option::Option<
7091 unsafe extern "C" fn(
7092 ctxt: *mut ::std::os::raw::c_void,
7093 view: *mut BNBinaryView,
7094 func: *mut BNLowLevelILFunction,
7095 instr: usize,
7096 ),
7097 >,
7098 pub mediumLevelILFunctionCommand: ::std::option::Option<
7099 unsafe extern "C" fn(
7100 ctxt: *mut ::std::os::raw::c_void,
7101 view: *mut BNBinaryView,
7102 func: *mut BNMediumLevelILFunction,
7103 ),
7104 >,
7105 pub mediumLevelILInstructionCommand: ::std::option::Option<
7106 unsafe extern "C" fn(
7107 ctxt: *mut ::std::os::raw::c_void,
7108 view: *mut BNBinaryView,
7109 func: *mut BNMediumLevelILFunction,
7110 instr: usize,
7111 ),
7112 >,
7113 pub highLevelILFunctionCommand: ::std::option::Option<
7114 unsafe extern "C" fn(
7115 ctxt: *mut ::std::os::raw::c_void,
7116 view: *mut BNBinaryView,
7117 func: *mut BNHighLevelILFunction,
7118 ),
7119 >,
7120 pub highLevelILInstructionCommand: ::std::option::Option<
7121 unsafe extern "C" fn(
7122 ctxt: *mut ::std::os::raw::c_void,
7123 view: *mut BNBinaryView,
7124 func: *mut BNHighLevelILFunction,
7125 instr: usize,
7126 ),
7127 >,
7128 pub projectCommand: ::std::option::Option<
7129 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNProject),
7130 >,
7131 pub globalIsValid:
7132 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
7133 pub defaultIsValid: ::std::option::Option<
7134 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView) -> bool,
7135 >,
7136 pub addressIsValid: ::std::option::Option<
7137 unsafe extern "C" fn(
7138 ctxt: *mut ::std::os::raw::c_void,
7139 view: *mut BNBinaryView,
7140 addr: u64,
7141 ) -> bool,
7142 >,
7143 pub rangeIsValid: ::std::option::Option<
7144 unsafe extern "C" fn(
7145 ctxt: *mut ::std::os::raw::c_void,
7146 view: *mut BNBinaryView,
7147 addr: u64,
7148 len: u64,
7149 ) -> bool,
7150 >,
7151 pub functionIsValid: ::std::option::Option<
7152 unsafe extern "C" fn(
7153 ctxt: *mut ::std::os::raw::c_void,
7154 view: *mut BNBinaryView,
7155 func: *mut BNFunction,
7156 ) -> bool,
7157 >,
7158 pub lowLevelILFunctionIsValid: ::std::option::Option<
7159 unsafe extern "C" fn(
7160 ctxt: *mut ::std::os::raw::c_void,
7161 view: *mut BNBinaryView,
7162 func: *mut BNLowLevelILFunction,
7163 ) -> bool,
7164 >,
7165 pub lowLevelILInstructionIsValid: ::std::option::Option<
7166 unsafe extern "C" fn(
7167 ctxt: *mut ::std::os::raw::c_void,
7168 view: *mut BNBinaryView,
7169 func: *mut BNLowLevelILFunction,
7170 instr: usize,
7171 ) -> bool,
7172 >,
7173 pub mediumLevelILFunctionIsValid: ::std::option::Option<
7174 unsafe extern "C" fn(
7175 ctxt: *mut ::std::os::raw::c_void,
7176 view: *mut BNBinaryView,
7177 func: *mut BNMediumLevelILFunction,
7178 ) -> bool,
7179 >,
7180 pub mediumLevelILInstructionIsValid: ::std::option::Option<
7181 unsafe extern "C" fn(
7182 ctxt: *mut ::std::os::raw::c_void,
7183 view: *mut BNBinaryView,
7184 func: *mut BNMediumLevelILFunction,
7185 instr: usize,
7186 ) -> bool,
7187 >,
7188 pub highLevelILFunctionIsValid: ::std::option::Option<
7189 unsafe extern "C" fn(
7190 ctxt: *mut ::std::os::raw::c_void,
7191 view: *mut BNBinaryView,
7192 func: *mut BNHighLevelILFunction,
7193 ) -> bool,
7194 >,
7195 pub highLevelILInstructionIsValid: ::std::option::Option<
7196 unsafe extern "C" fn(
7197 ctxt: *mut ::std::os::raw::c_void,
7198 view: *mut BNBinaryView,
7199 func: *mut BNHighLevelILFunction,
7200 instr: usize,
7201 ) -> bool,
7202 >,
7203 pub projectIsValid: ::std::option::Option<
7204 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNProject) -> bool,
7205 >,
7206}
7207#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7208const _: () = {
7209 ["Size of BNPluginCommand"][::std::mem::size_of::<BNPluginCommand>() - 224usize];
7210 ["Alignment of BNPluginCommand"][::std::mem::align_of::<BNPluginCommand>() - 8usize];
7211 ["Offset of field: BNPluginCommand::name"]
7212 [::std::mem::offset_of!(BNPluginCommand, name) - 0usize];
7213 ["Offset of field: BNPluginCommand::description"]
7214 [::std::mem::offset_of!(BNPluginCommand, description) - 8usize];
7215 ["Offset of field: BNPluginCommand::type_"]
7216 [::std::mem::offset_of!(BNPluginCommand, type_) - 16usize];
7217 ["Offset of field: BNPluginCommand::context"]
7218 [::std::mem::offset_of!(BNPluginCommand, context) - 24usize];
7219 ["Offset of field: BNPluginCommand::globalCommand"]
7220 [::std::mem::offset_of!(BNPluginCommand, globalCommand) - 32usize];
7221 ["Offset of field: BNPluginCommand::defaultCommand"]
7222 [::std::mem::offset_of!(BNPluginCommand, defaultCommand) - 40usize];
7223 ["Offset of field: BNPluginCommand::addressCommand"]
7224 [::std::mem::offset_of!(BNPluginCommand, addressCommand) - 48usize];
7225 ["Offset of field: BNPluginCommand::rangeCommand"]
7226 [::std::mem::offset_of!(BNPluginCommand, rangeCommand) - 56usize];
7227 ["Offset of field: BNPluginCommand::functionCommand"]
7228 [::std::mem::offset_of!(BNPluginCommand, functionCommand) - 64usize];
7229 ["Offset of field: BNPluginCommand::lowLevelILFunctionCommand"]
7230 [::std::mem::offset_of!(BNPluginCommand, lowLevelILFunctionCommand) - 72usize];
7231 ["Offset of field: BNPluginCommand::lowLevelILInstructionCommand"]
7232 [::std::mem::offset_of!(BNPluginCommand, lowLevelILInstructionCommand) - 80usize];
7233 ["Offset of field: BNPluginCommand::mediumLevelILFunctionCommand"]
7234 [::std::mem::offset_of!(BNPluginCommand, mediumLevelILFunctionCommand) - 88usize];
7235 ["Offset of field: BNPluginCommand::mediumLevelILInstructionCommand"]
7236 [::std::mem::offset_of!(BNPluginCommand, mediumLevelILInstructionCommand) - 96usize];
7237 ["Offset of field: BNPluginCommand::highLevelILFunctionCommand"]
7238 [::std::mem::offset_of!(BNPluginCommand, highLevelILFunctionCommand) - 104usize];
7239 ["Offset of field: BNPluginCommand::highLevelILInstructionCommand"]
7240 [::std::mem::offset_of!(BNPluginCommand, highLevelILInstructionCommand) - 112usize];
7241 ["Offset of field: BNPluginCommand::projectCommand"]
7242 [::std::mem::offset_of!(BNPluginCommand, projectCommand) - 120usize];
7243 ["Offset of field: BNPluginCommand::globalIsValid"]
7244 [::std::mem::offset_of!(BNPluginCommand, globalIsValid) - 128usize];
7245 ["Offset of field: BNPluginCommand::defaultIsValid"]
7246 [::std::mem::offset_of!(BNPluginCommand, defaultIsValid) - 136usize];
7247 ["Offset of field: BNPluginCommand::addressIsValid"]
7248 [::std::mem::offset_of!(BNPluginCommand, addressIsValid) - 144usize];
7249 ["Offset of field: BNPluginCommand::rangeIsValid"]
7250 [::std::mem::offset_of!(BNPluginCommand, rangeIsValid) - 152usize];
7251 ["Offset of field: BNPluginCommand::functionIsValid"]
7252 [::std::mem::offset_of!(BNPluginCommand, functionIsValid) - 160usize];
7253 ["Offset of field: BNPluginCommand::lowLevelILFunctionIsValid"]
7254 [::std::mem::offset_of!(BNPluginCommand, lowLevelILFunctionIsValid) - 168usize];
7255 ["Offset of field: BNPluginCommand::lowLevelILInstructionIsValid"]
7256 [::std::mem::offset_of!(BNPluginCommand, lowLevelILInstructionIsValid) - 176usize];
7257 ["Offset of field: BNPluginCommand::mediumLevelILFunctionIsValid"]
7258 [::std::mem::offset_of!(BNPluginCommand, mediumLevelILFunctionIsValid) - 184usize];
7259 ["Offset of field: BNPluginCommand::mediumLevelILInstructionIsValid"]
7260 [::std::mem::offset_of!(BNPluginCommand, mediumLevelILInstructionIsValid) - 192usize];
7261 ["Offset of field: BNPluginCommand::highLevelILFunctionIsValid"]
7262 [::std::mem::offset_of!(BNPluginCommand, highLevelILFunctionIsValid) - 200usize];
7263 ["Offset of field: BNPluginCommand::highLevelILInstructionIsValid"]
7264 [::std::mem::offset_of!(BNPluginCommand, highLevelILInstructionIsValid) - 208usize];
7265 ["Offset of field: BNPluginCommand::projectIsValid"]
7266 [::std::mem::offset_of!(BNPluginCommand, projectIsValid) - 216usize];
7267};
7268impl Default for BNPluginCommand {
7269 fn default() -> Self {
7270 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7271 unsafe {
7272 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7273 s.assume_init()
7274 }
7275 }
7276}
7277#[repr(C)]
7278#[derive(Debug, Copy, Clone)]
7279pub struct BNCustomCallingConvention {
7280 pub context: *mut ::std::os::raw::c_void,
7281 pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
7282 pub getCallerSavedRegisters: ::std::option::Option<
7283 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
7284 >,
7285 pub getCalleeSavedRegisters: ::std::option::Option<
7286 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
7287 >,
7288 pub getIntegerArgumentRegisters: ::std::option::Option<
7289 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
7290 >,
7291 pub getFloatArgumentRegisters: ::std::option::Option<
7292 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
7293 >,
7294 pub getRequiredArgumentRegisters: ::std::option::Option<
7295 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
7296 >,
7297 pub getRequiredClobberedRegisters: ::std::option::Option<
7298 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
7299 >,
7300 pub freeRegisterList: ::std::option::Option<
7301 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, regs: *mut u32, len: usize),
7302 >,
7303 pub areArgumentRegistersSharedIndex:
7304 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
7305 pub isStackReservedForArgumentRegisters:
7306 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
7307 pub isStackAdjustedOnReturn:
7308 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
7309 pub isEligibleForHeuristics:
7310 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
7311 pub getIntegerReturnValueRegister:
7312 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
7313 pub getHighIntegerReturnValueRegister:
7314 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
7315 pub getFloatReturnValueRegister:
7316 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
7317 pub getGlobalPointerRegisters: ::std::option::Option<
7318 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
7319 >,
7320 pub getImplicitlyDefinedRegisters: ::std::option::Option<
7321 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
7322 >,
7323 pub getIncomingRegisterValue: ::std::option::Option<
7324 unsafe extern "C" fn(
7325 ctxt: *mut ::std::os::raw::c_void,
7326 reg: u32,
7327 func: *mut BNFunction,
7328 result: *mut BNRegisterValue,
7329 ),
7330 >,
7331 pub getIncomingFlagValue: ::std::option::Option<
7332 unsafe extern "C" fn(
7333 ctxt: *mut ::std::os::raw::c_void,
7334 flag: u32,
7335 func: *mut BNFunction,
7336 result: *mut BNRegisterValue,
7337 ),
7338 >,
7339 pub isReturnTypeRegisterCompatible: ::std::option::Option<
7340 unsafe extern "C" fn(
7341 ctxt: *mut ::std::os::raw::c_void,
7342 view: *mut BNBinaryView,
7343 type_: *mut BNType,
7344 ) -> bool,
7345 >,
7346 pub getIndirectReturnValueLocation: ::std::option::Option<
7347 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, outVar: *mut BNVariable),
7348 >,
7349 pub getReturnedIndirectReturnValuePointer: ::std::option::Option<
7350 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, outVar: *mut BNVariable) -> bool,
7351 >,
7352 pub isArgumentTypeRegisterCompatible: ::std::option::Option<
7353 unsafe extern "C" fn(
7354 ctxt: *mut ::std::os::raw::c_void,
7355 view: *mut BNBinaryView,
7356 type_: *mut BNType,
7357 ) -> bool,
7358 >,
7359 pub isNonRegisterArgumentIndirect: ::std::option::Option<
7360 unsafe extern "C" fn(
7361 ctxt: *mut ::std::os::raw::c_void,
7362 view: *mut BNBinaryView,
7363 type_: *mut BNType,
7364 ) -> bool,
7365 >,
7366 pub areStackArgumentsNaturallyAligned:
7367 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
7368 pub areStackArgumentsPushedLeftToRight:
7369 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
7370 pub getIncomingVariableForParameterVariable: ::std::option::Option<
7371 unsafe extern "C" fn(
7372 ctxt: *mut ::std::os::raw::c_void,
7373 var: *const BNVariable,
7374 func: *mut BNFunction,
7375 result: *mut BNVariable,
7376 ),
7377 >,
7378 pub getParameterVariableForIncomingVariable: ::std::option::Option<
7379 unsafe extern "C" fn(
7380 ctxt: *mut ::std::os::raw::c_void,
7381 var: *const BNVariable,
7382 func: *mut BNFunction,
7383 result: *mut BNVariable,
7384 ),
7385 >,
7386 pub areArgumentRegistersUsedForVarArgs:
7387 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
7388 pub getCallLayout: ::std::option::Option<
7389 unsafe extern "C" fn(
7390 ctxt: *mut ::std::os::raw::c_void,
7391 view: *mut BNBinaryView,
7392 returnValue: *mut BNReturnValue,
7393 params: *mut BNFunctionParameter,
7394 paramCount: usize,
7395 hasPermittedRegs: bool,
7396 permittedRegs: *mut u32,
7397 permittedRegCount: usize,
7398 result: *mut BNCallLayout,
7399 ),
7400 >,
7401 pub freeCallLayout: ::std::option::Option<
7402 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, layout: *mut BNCallLayout),
7403 >,
7404 pub getReturnValueLocation: ::std::option::Option<
7405 unsafe extern "C" fn(
7406 ctxt: *mut ::std::os::raw::c_void,
7407 view: *mut BNBinaryView,
7408 returnValue: *mut BNReturnValue,
7409 outLocation: *mut BNValueLocation,
7410 ),
7411 >,
7412 pub freeValueLocation: ::std::option::Option<
7413 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, location: *mut BNValueLocation),
7414 >,
7415 pub getParameterLocations: ::std::option::Option<
7416 unsafe extern "C" fn(
7417 ctxt: *mut ::std::os::raw::c_void,
7418 view: *mut BNBinaryView,
7419 returnValue: *mut BNValueLocation,
7420 params: *mut BNFunctionParameter,
7421 paramCount: usize,
7422 hasPermittedRegs: bool,
7423 permittedRegs: *mut u32,
7424 permittedRegCount: usize,
7425 outLocationCount: *mut usize,
7426 ) -> *mut BNValueLocation,
7427 >,
7428 pub freeParameterLocations: ::std::option::Option<
7429 unsafe extern "C" fn(
7430 ctxt: *mut ::std::os::raw::c_void,
7431 locations: *mut BNValueLocation,
7432 count: usize,
7433 ),
7434 >,
7435 pub getParameterOrderingForVariables: ::std::option::Option<
7436 unsafe extern "C" fn(
7437 ctxt: *mut ::std::os::raw::c_void,
7438 view: *mut BNBinaryView,
7439 vars: *mut BNVariable,
7440 types: *mut *mut BNType,
7441 paramCount: usize,
7442 outCount: *mut usize,
7443 ) -> *mut BNVariable,
7444 >,
7445 pub freeVariableList: ::std::option::Option<
7446 unsafe extern "C" fn(
7447 ctxt: *mut ::std::os::raw::c_void,
7448 vars: *mut BNVariable,
7449 count: usize,
7450 ),
7451 >,
7452 pub getStackAdjustmentForLocations: ::std::option::Option<
7453 unsafe extern "C" fn(
7454 ctxt: *mut ::std::os::raw::c_void,
7455 view: *mut BNBinaryView,
7456 returnValue: *mut BNValueLocation,
7457 locations: *mut BNValueLocation,
7458 types: *mut *mut BNType,
7459 paramCount: usize,
7460 ) -> i64,
7461 >,
7462 pub getRegisterStackAdjustments: ::std::option::Option<
7463 unsafe extern "C" fn(
7464 ctxt: *mut ::std::os::raw::c_void,
7465 view: *mut BNBinaryView,
7466 returnValue: *mut BNValueLocation,
7467 params: *mut BNValueLocation,
7468 paramCount: usize,
7469 outRegs: *mut *mut u32,
7470 outAdjust: *mut *mut i32,
7471 ) -> usize,
7472 >,
7473 pub freeRegisterStackAdjustments: ::std::option::Option<
7474 unsafe extern "C" fn(
7475 ctxt: *mut ::std::os::raw::c_void,
7476 regs: *mut u32,
7477 adjust: *mut i32,
7478 count: usize,
7479 ),
7480 >,
7481}
7482#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7483const _: () = {
7484 ["Size of BNCustomCallingConvention"]
7485 [::std::mem::size_of::<BNCustomCallingConvention>() - 328usize];
7486 ["Alignment of BNCustomCallingConvention"]
7487 [::std::mem::align_of::<BNCustomCallingConvention>() - 8usize];
7488 ["Offset of field: BNCustomCallingConvention::context"]
7489 [::std::mem::offset_of!(BNCustomCallingConvention, context) - 0usize];
7490 ["Offset of field: BNCustomCallingConvention::freeObject"]
7491 [::std::mem::offset_of!(BNCustomCallingConvention, freeObject) - 8usize];
7492 ["Offset of field: BNCustomCallingConvention::getCallerSavedRegisters"]
7493 [::std::mem::offset_of!(BNCustomCallingConvention, getCallerSavedRegisters) - 16usize];
7494 ["Offset of field: BNCustomCallingConvention::getCalleeSavedRegisters"]
7495 [::std::mem::offset_of!(BNCustomCallingConvention, getCalleeSavedRegisters) - 24usize];
7496 ["Offset of field: BNCustomCallingConvention::getIntegerArgumentRegisters"]
7497 [::std::mem::offset_of!(BNCustomCallingConvention, getIntegerArgumentRegisters) - 32usize];
7498 ["Offset of field: BNCustomCallingConvention::getFloatArgumentRegisters"]
7499 [::std::mem::offset_of!(BNCustomCallingConvention, getFloatArgumentRegisters) - 40usize];
7500 ["Offset of field: BNCustomCallingConvention::getRequiredArgumentRegisters"]
7501 [::std::mem::offset_of!(BNCustomCallingConvention, getRequiredArgumentRegisters) - 48usize];
7502 ["Offset of field: BNCustomCallingConvention::getRequiredClobberedRegisters"][::std::mem::offset_of!(
7503 BNCustomCallingConvention,
7504 getRequiredClobberedRegisters
7505 ) - 56usize];
7506 ["Offset of field: BNCustomCallingConvention::freeRegisterList"]
7507 [::std::mem::offset_of!(BNCustomCallingConvention, freeRegisterList) - 64usize];
7508 ["Offset of field: BNCustomCallingConvention::areArgumentRegistersSharedIndex"][::std::mem::offset_of!(
7509 BNCustomCallingConvention,
7510 areArgumentRegistersSharedIndex
7511 ) - 72usize];
7512 ["Offset of field: BNCustomCallingConvention::isStackReservedForArgumentRegisters"][::std::mem::offset_of!(
7513 BNCustomCallingConvention,
7514 isStackReservedForArgumentRegisters
7515 )
7516 - 80usize];
7517 ["Offset of field: BNCustomCallingConvention::isStackAdjustedOnReturn"]
7518 [::std::mem::offset_of!(BNCustomCallingConvention, isStackAdjustedOnReturn) - 88usize];
7519 ["Offset of field: BNCustomCallingConvention::isEligibleForHeuristics"]
7520 [::std::mem::offset_of!(BNCustomCallingConvention, isEligibleForHeuristics) - 96usize];
7521 ["Offset of field: BNCustomCallingConvention::getIntegerReturnValueRegister"][::std::mem::offset_of!(
7522 BNCustomCallingConvention,
7523 getIntegerReturnValueRegister
7524 ) - 104usize];
7525 ["Offset of field: BNCustomCallingConvention::getHighIntegerReturnValueRegister"][::std::mem::offset_of!(
7526 BNCustomCallingConvention,
7527 getHighIntegerReturnValueRegister
7528 ) - 112usize];
7529 ["Offset of field: BNCustomCallingConvention::getFloatReturnValueRegister"]
7530 [::std::mem::offset_of!(BNCustomCallingConvention, getFloatReturnValueRegister) - 120usize];
7531 ["Offset of field: BNCustomCallingConvention::getGlobalPointerRegisters"]
7532 [::std::mem::offset_of!(BNCustomCallingConvention, getGlobalPointerRegisters) - 128usize];
7533 ["Offset of field: BNCustomCallingConvention::getImplicitlyDefinedRegisters"][::std::mem::offset_of!(
7534 BNCustomCallingConvention,
7535 getImplicitlyDefinedRegisters
7536 ) - 136usize];
7537 ["Offset of field: BNCustomCallingConvention::getIncomingRegisterValue"]
7538 [::std::mem::offset_of!(BNCustomCallingConvention, getIncomingRegisterValue) - 144usize];
7539 ["Offset of field: BNCustomCallingConvention::getIncomingFlagValue"]
7540 [::std::mem::offset_of!(BNCustomCallingConvention, getIncomingFlagValue) - 152usize];
7541 ["Offset of field: BNCustomCallingConvention::isReturnTypeRegisterCompatible"][::std::mem::offset_of!(
7542 BNCustomCallingConvention,
7543 isReturnTypeRegisterCompatible
7544 ) - 160usize];
7545 ["Offset of field: BNCustomCallingConvention::getIndirectReturnValueLocation"][::std::mem::offset_of!(
7546 BNCustomCallingConvention,
7547 getIndirectReturnValueLocation
7548 ) - 168usize];
7549 ["Offset of field: BNCustomCallingConvention::getReturnedIndirectReturnValuePointer"][::std::mem::offset_of!(
7550 BNCustomCallingConvention,
7551 getReturnedIndirectReturnValuePointer
7552 )
7553 - 176usize];
7554 ["Offset of field: BNCustomCallingConvention::isArgumentTypeRegisterCompatible"][::std::mem::offset_of!(
7555 BNCustomCallingConvention,
7556 isArgumentTypeRegisterCompatible
7557 ) - 184usize];
7558 ["Offset of field: BNCustomCallingConvention::isNonRegisterArgumentIndirect"][::std::mem::offset_of!(
7559 BNCustomCallingConvention,
7560 isNonRegisterArgumentIndirect
7561 ) - 192usize];
7562 ["Offset of field: BNCustomCallingConvention::areStackArgumentsNaturallyAligned"][::std::mem::offset_of!(
7563 BNCustomCallingConvention,
7564 areStackArgumentsNaturallyAligned
7565 ) - 200usize];
7566 ["Offset of field: BNCustomCallingConvention::areStackArgumentsPushedLeftToRight"][::std::mem::offset_of!(
7567 BNCustomCallingConvention,
7568 areStackArgumentsPushedLeftToRight
7569 )
7570 - 208usize];
7571 ["Offset of field: BNCustomCallingConvention::getIncomingVariableForParameterVariable"][::std::mem::offset_of!(
7572 BNCustomCallingConvention,
7573 getIncomingVariableForParameterVariable
7574 )
7575 - 216usize];
7576 ["Offset of field: BNCustomCallingConvention::getParameterVariableForIncomingVariable"][::std::mem::offset_of!(
7577 BNCustomCallingConvention,
7578 getParameterVariableForIncomingVariable
7579 )
7580 - 224usize];
7581 ["Offset of field: BNCustomCallingConvention::areArgumentRegistersUsedForVarArgs"][::std::mem::offset_of!(
7582 BNCustomCallingConvention,
7583 areArgumentRegistersUsedForVarArgs
7584 )
7585 - 232usize];
7586 ["Offset of field: BNCustomCallingConvention::getCallLayout"]
7587 [::std::mem::offset_of!(BNCustomCallingConvention, getCallLayout) - 240usize];
7588 ["Offset of field: BNCustomCallingConvention::freeCallLayout"]
7589 [::std::mem::offset_of!(BNCustomCallingConvention, freeCallLayout) - 248usize];
7590 ["Offset of field: BNCustomCallingConvention::getReturnValueLocation"]
7591 [::std::mem::offset_of!(BNCustomCallingConvention, getReturnValueLocation) - 256usize];
7592 ["Offset of field: BNCustomCallingConvention::freeValueLocation"]
7593 [::std::mem::offset_of!(BNCustomCallingConvention, freeValueLocation) - 264usize];
7594 ["Offset of field: BNCustomCallingConvention::getParameterLocations"]
7595 [::std::mem::offset_of!(BNCustomCallingConvention, getParameterLocations) - 272usize];
7596 ["Offset of field: BNCustomCallingConvention::freeParameterLocations"]
7597 [::std::mem::offset_of!(BNCustomCallingConvention, freeParameterLocations) - 280usize];
7598 ["Offset of field: BNCustomCallingConvention::getParameterOrderingForVariables"][::std::mem::offset_of!(
7599 BNCustomCallingConvention,
7600 getParameterOrderingForVariables
7601 ) - 288usize];
7602 ["Offset of field: BNCustomCallingConvention::freeVariableList"]
7603 [::std::mem::offset_of!(BNCustomCallingConvention, freeVariableList) - 296usize];
7604 ["Offset of field: BNCustomCallingConvention::getStackAdjustmentForLocations"][::std::mem::offset_of!(
7605 BNCustomCallingConvention,
7606 getStackAdjustmentForLocations
7607 ) - 304usize];
7608 ["Offset of field: BNCustomCallingConvention::getRegisterStackAdjustments"]
7609 [::std::mem::offset_of!(BNCustomCallingConvention, getRegisterStackAdjustments) - 312usize];
7610 ["Offset of field: BNCustomCallingConvention::freeRegisterStackAdjustments"][::std::mem::offset_of!(
7611 BNCustomCallingConvention,
7612 freeRegisterStackAdjustments
7613 ) - 320usize];
7614};
7615impl Default for BNCustomCallingConvention {
7616 fn default() -> Self {
7617 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7618 unsafe {
7619 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7620 s.assume_init()
7621 }
7622 }
7623}
7624#[repr(C)]
7625#[derive(Debug, Copy, Clone)]
7626pub struct BNVariableNameAndType {
7627 pub var: BNVariable,
7628 pub type_: *mut BNType,
7629 pub name: *mut ::std::os::raw::c_char,
7630 pub autoDefined: bool,
7631 pub typeConfidence: u8,
7632}
7633#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7634const _: () = {
7635 ["Size of BNVariableNameAndType"][::std::mem::size_of::<BNVariableNameAndType>() - 40usize];
7636 ["Alignment of BNVariableNameAndType"]
7637 [::std::mem::align_of::<BNVariableNameAndType>() - 8usize];
7638 ["Offset of field: BNVariableNameAndType::var"]
7639 [::std::mem::offset_of!(BNVariableNameAndType, var) - 0usize];
7640 ["Offset of field: BNVariableNameAndType::type_"]
7641 [::std::mem::offset_of!(BNVariableNameAndType, type_) - 16usize];
7642 ["Offset of field: BNVariableNameAndType::name"]
7643 [::std::mem::offset_of!(BNVariableNameAndType, name) - 24usize];
7644 ["Offset of field: BNVariableNameAndType::autoDefined"]
7645 [::std::mem::offset_of!(BNVariableNameAndType, autoDefined) - 32usize];
7646 ["Offset of field: BNVariableNameAndType::typeConfidence"]
7647 [::std::mem::offset_of!(BNVariableNameAndType, typeConfidence) - 33usize];
7648};
7649impl Default for BNVariableNameAndType {
7650 fn default() -> Self {
7651 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7652 unsafe {
7653 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7654 s.assume_init()
7655 }
7656 }
7657}
7658#[repr(C)]
7659#[derive(Debug, Copy, Clone)]
7660pub struct BNStackVariableReference {
7661 pub sourceOperand: u32,
7662 pub typeConfidence: u8,
7663 pub type_: *mut BNType,
7664 pub name: *mut ::std::os::raw::c_char,
7665 pub varIdentifier: u64,
7666 pub referencedOffset: i64,
7667 pub size: usize,
7668}
7669#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7670const _: () = {
7671 ["Size of BNStackVariableReference"]
7672 [::std::mem::size_of::<BNStackVariableReference>() - 48usize];
7673 ["Alignment of BNStackVariableReference"]
7674 [::std::mem::align_of::<BNStackVariableReference>() - 8usize];
7675 ["Offset of field: BNStackVariableReference::sourceOperand"]
7676 [::std::mem::offset_of!(BNStackVariableReference, sourceOperand) - 0usize];
7677 ["Offset of field: BNStackVariableReference::typeConfidence"]
7678 [::std::mem::offset_of!(BNStackVariableReference, typeConfidence) - 4usize];
7679 ["Offset of field: BNStackVariableReference::type_"]
7680 [::std::mem::offset_of!(BNStackVariableReference, type_) - 8usize];
7681 ["Offset of field: BNStackVariableReference::name"]
7682 [::std::mem::offset_of!(BNStackVariableReference, name) - 16usize];
7683 ["Offset of field: BNStackVariableReference::varIdentifier"]
7684 [::std::mem::offset_of!(BNStackVariableReference, varIdentifier) - 24usize];
7685 ["Offset of field: BNStackVariableReference::referencedOffset"]
7686 [::std::mem::offset_of!(BNStackVariableReference, referencedOffset) - 32usize];
7687 ["Offset of field: BNStackVariableReference::size"]
7688 [::std::mem::offset_of!(BNStackVariableReference, size) - 40usize];
7689};
7690impl Default for BNStackVariableReference {
7691 fn default() -> Self {
7692 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7693 unsafe {
7694 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7695 s.assume_init()
7696 }
7697 }
7698}
7699#[repr(C)]
7700#[derive(Debug, Copy, Clone)]
7701pub struct BNIndirectBranchInfo {
7702 pub sourceArch: *mut BNArchitecture,
7703 pub sourceAddr: u64,
7704 pub destArch: *mut BNArchitecture,
7705 pub destAddr: u64,
7706 pub autoDefined: bool,
7707}
7708#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7709const _: () = {
7710 ["Size of BNIndirectBranchInfo"][::std::mem::size_of::<BNIndirectBranchInfo>() - 40usize];
7711 ["Alignment of BNIndirectBranchInfo"][::std::mem::align_of::<BNIndirectBranchInfo>() - 8usize];
7712 ["Offset of field: BNIndirectBranchInfo::sourceArch"]
7713 [::std::mem::offset_of!(BNIndirectBranchInfo, sourceArch) - 0usize];
7714 ["Offset of field: BNIndirectBranchInfo::sourceAddr"]
7715 [::std::mem::offset_of!(BNIndirectBranchInfo, sourceAddr) - 8usize];
7716 ["Offset of field: BNIndirectBranchInfo::destArch"]
7717 [::std::mem::offset_of!(BNIndirectBranchInfo, destArch) - 16usize];
7718 ["Offset of field: BNIndirectBranchInfo::destAddr"]
7719 [::std::mem::offset_of!(BNIndirectBranchInfo, destAddr) - 24usize];
7720 ["Offset of field: BNIndirectBranchInfo::autoDefined"]
7721 [::std::mem::offset_of!(BNIndirectBranchInfo, autoDefined) - 32usize];
7722};
7723impl Default for BNIndirectBranchInfo {
7724 fn default() -> Self {
7725 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7726 unsafe {
7727 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7728 s.assume_init()
7729 }
7730 }
7731}
7732#[repr(C)]
7733#[derive(Debug, Copy, Clone)]
7734pub struct BNArchitectureAndAddress {
7735 pub arch: *mut BNArchitecture,
7736 pub address: u64,
7737}
7738#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7739const _: () = {
7740 ["Size of BNArchitectureAndAddress"]
7741 [::std::mem::size_of::<BNArchitectureAndAddress>() - 16usize];
7742 ["Alignment of BNArchitectureAndAddress"]
7743 [::std::mem::align_of::<BNArchitectureAndAddress>() - 8usize];
7744 ["Offset of field: BNArchitectureAndAddress::arch"]
7745 [::std::mem::offset_of!(BNArchitectureAndAddress, arch) - 0usize];
7746 ["Offset of field: BNArchitectureAndAddress::address"]
7747 [::std::mem::offset_of!(BNArchitectureAndAddress, address) - 8usize];
7748};
7749impl Default for BNArchitectureAndAddress {
7750 fn default() -> Self {
7751 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7752 unsafe {
7753 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7754 s.assume_init()
7755 }
7756 }
7757}
7758#[repr(C)]
7759#[derive(Debug, Copy, Clone)]
7760pub struct BNUserVariableValue {
7761 pub var: BNVariable,
7762 pub defSite: BNArchitectureAndAddress,
7763 pub after: bool,
7764 pub value: BNPossibleValueSet,
7765}
7766#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7767const _: () = {
7768 ["Size of BNUserVariableValue"][::std::mem::size_of::<BNUserVariableValue>() - 104usize];
7769 ["Alignment of BNUserVariableValue"][::std::mem::align_of::<BNUserVariableValue>() - 8usize];
7770 ["Offset of field: BNUserVariableValue::var"]
7771 [::std::mem::offset_of!(BNUserVariableValue, var) - 0usize];
7772 ["Offset of field: BNUserVariableValue::defSite"]
7773 [::std::mem::offset_of!(BNUserVariableValue, defSite) - 16usize];
7774 ["Offset of field: BNUserVariableValue::after"]
7775 [::std::mem::offset_of!(BNUserVariableValue, after) - 32usize];
7776 ["Offset of field: BNUserVariableValue::value"]
7777 [::std::mem::offset_of!(BNUserVariableValue, value) - 40usize];
7778};
7779impl Default for BNUserVariableValue {
7780 fn default() -> Self {
7781 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7782 unsafe {
7783 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7784 s.assume_init()
7785 }
7786 }
7787}
7788#[repr(C)]
7789#[derive(Debug, Copy, Clone)]
7790pub struct BNVariableFieldResolutionInfo {
7791 pub location: BNArchitectureAndAddress,
7792 pub var: BNVariable,
7793 pub info: *mut BNFieldResolutionInfo,
7794}
7795#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7796const _: () = {
7797 ["Size of BNVariableFieldResolutionInfo"]
7798 [::std::mem::size_of::<BNVariableFieldResolutionInfo>() - 40usize];
7799 ["Alignment of BNVariableFieldResolutionInfo"]
7800 [::std::mem::align_of::<BNVariableFieldResolutionInfo>() - 8usize];
7801 ["Offset of field: BNVariableFieldResolutionInfo::location"]
7802 [::std::mem::offset_of!(BNVariableFieldResolutionInfo, location) - 0usize];
7803 ["Offset of field: BNVariableFieldResolutionInfo::var"]
7804 [::std::mem::offset_of!(BNVariableFieldResolutionInfo, var) - 16usize];
7805 ["Offset of field: BNVariableFieldResolutionInfo::info"]
7806 [::std::mem::offset_of!(BNVariableFieldResolutionInfo, info) - 32usize];
7807};
7808impl Default for BNVariableFieldResolutionInfo {
7809 fn default() -> Self {
7810 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7811 unsafe {
7812 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7813 s.assume_init()
7814 }
7815 }
7816}
7817#[repr(u8)]
7818#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7819pub enum BNFunctionUpdateType {
7820 UserFunctionUpdate = 0,
7821 FullAutoFunctionUpdate = 1,
7822 IncrementalAutoFunctionUpdate = 2,
7823}
7824#[repr(u8)]
7825#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7826pub enum BNAnalysisState {
7827 #[doc = " Entry point before any analysis begins"]
7828 InitialState = 0,
7829 #[doc = " Module-level analysis is deferred; On-demand function analysis is permitted"]
7830 HoldState = 1,
7831 #[doc = " No active analysis; system is idle and ready"]
7832 IdleState = 2,
7833 #[doc = " Context gathering and auxiliary data preparation"]
7834 DiscoveryState = 3,
7835 #[doc = " Instruction decoding and control flow discovery"]
7836 DisassembleState = 4,
7837 #[doc = " Core semantic and structural analysis"]
7838 AnalyzeState = 5,
7839 #[doc = " Supplemental analysis: sweeping, type resolution, and pattern matching"]
7840 ExtendedAnalyzeState = 6,
7841}
7842#[repr(C)]
7843#[derive(Debug, Copy, Clone)]
7844pub struct BNActiveAnalysisInfo {
7845 pub func: *mut BNFunction,
7846 pub analysisTime: u64,
7847 pub updateCount: usize,
7848 pub submitCount: usize,
7849}
7850#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7851const _: () = {
7852 ["Size of BNActiveAnalysisInfo"][::std::mem::size_of::<BNActiveAnalysisInfo>() - 32usize];
7853 ["Alignment of BNActiveAnalysisInfo"][::std::mem::align_of::<BNActiveAnalysisInfo>() - 8usize];
7854 ["Offset of field: BNActiveAnalysisInfo::func"]
7855 [::std::mem::offset_of!(BNActiveAnalysisInfo, func) - 0usize];
7856 ["Offset of field: BNActiveAnalysisInfo::analysisTime"]
7857 [::std::mem::offset_of!(BNActiveAnalysisInfo, analysisTime) - 8usize];
7858 ["Offset of field: BNActiveAnalysisInfo::updateCount"]
7859 [::std::mem::offset_of!(BNActiveAnalysisInfo, updateCount) - 16usize];
7860 ["Offset of field: BNActiveAnalysisInfo::submitCount"]
7861 [::std::mem::offset_of!(BNActiveAnalysisInfo, submitCount) - 24usize];
7862};
7863impl Default for BNActiveAnalysisInfo {
7864 fn default() -> Self {
7865 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7866 unsafe {
7867 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7868 s.assume_init()
7869 }
7870 }
7871}
7872#[repr(C)]
7873#[derive(Debug, Copy, Clone)]
7874pub struct BNAnalysisInfo {
7875 pub state: BNAnalysisState,
7876 pub analysisTime: u64,
7877 pub activeInfo: *mut BNActiveAnalysisInfo,
7878 pub count: usize,
7879}
7880#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7881const _: () = {
7882 ["Size of BNAnalysisInfo"][::std::mem::size_of::<BNAnalysisInfo>() - 32usize];
7883 ["Alignment of BNAnalysisInfo"][::std::mem::align_of::<BNAnalysisInfo>() - 8usize];
7884 ["Offset of field: BNAnalysisInfo::state"]
7885 [::std::mem::offset_of!(BNAnalysisInfo, state) - 0usize];
7886 ["Offset of field: BNAnalysisInfo::analysisTime"]
7887 [::std::mem::offset_of!(BNAnalysisInfo, analysisTime) - 8usize];
7888 ["Offset of field: BNAnalysisInfo::activeInfo"]
7889 [::std::mem::offset_of!(BNAnalysisInfo, activeInfo) - 16usize];
7890 ["Offset of field: BNAnalysisInfo::count"]
7891 [::std::mem::offset_of!(BNAnalysisInfo, count) - 24usize];
7892};
7893impl Default for BNAnalysisInfo {
7894 fn default() -> Self {
7895 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7896 unsafe {
7897 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7898 s.assume_init()
7899 }
7900 }
7901}
7902#[repr(C)]
7903#[derive(Debug, Copy, Clone)]
7904pub struct BNAnalysisProgress {
7905 pub state: BNAnalysisState,
7906 pub count: usize,
7907 pub total: usize,
7908}
7909#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7910const _: () = {
7911 ["Size of BNAnalysisProgress"][::std::mem::size_of::<BNAnalysisProgress>() - 24usize];
7912 ["Alignment of BNAnalysisProgress"][::std::mem::align_of::<BNAnalysisProgress>() - 8usize];
7913 ["Offset of field: BNAnalysisProgress::state"]
7914 [::std::mem::offset_of!(BNAnalysisProgress, state) - 0usize];
7915 ["Offset of field: BNAnalysisProgress::count"]
7916 [::std::mem::offset_of!(BNAnalysisProgress, count) - 8usize];
7917 ["Offset of field: BNAnalysisProgress::total"]
7918 [::std::mem::offset_of!(BNAnalysisProgress, total) - 16usize];
7919};
7920impl Default for BNAnalysisProgress {
7921 fn default() -> Self {
7922 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7923 unsafe {
7924 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7925 s.assume_init()
7926 }
7927 }
7928}
7929#[repr(u8)]
7930#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7931pub enum BNAnalysisMode {
7932 FullAnalysisMode = 0,
7933 IntermediateAnalysisMode = 1,
7934 BasicAnalysisMode = 2,
7935 ControlFlowAnalysisMode = 3,
7936}
7937#[repr(C)]
7938#[derive(Debug, Copy, Clone)]
7939pub struct BNAnalysisParameters {
7940 pub maxAnalysisTime: u64,
7941 pub maxFunctionSize: u64,
7942 pub maxFunctionAnalysisTime: u64,
7943 pub maxFunctionUpdateCount: usize,
7944 pub maxFunctionSubmitCount: usize,
7945 pub suppressNewAutoFunctionAnalysis: bool,
7946 pub mode: BNAnalysisMode,
7947 pub alwaysAnalyzeIndirectBranches: bool,
7948 pub advancedAnalysisCacheSize: usize,
7949}
7950#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7951const _: () = {
7952 ["Size of BNAnalysisParameters"][::std::mem::size_of::<BNAnalysisParameters>() - 56usize];
7953 ["Alignment of BNAnalysisParameters"][::std::mem::align_of::<BNAnalysisParameters>() - 8usize];
7954 ["Offset of field: BNAnalysisParameters::maxAnalysisTime"]
7955 [::std::mem::offset_of!(BNAnalysisParameters, maxAnalysisTime) - 0usize];
7956 ["Offset of field: BNAnalysisParameters::maxFunctionSize"]
7957 [::std::mem::offset_of!(BNAnalysisParameters, maxFunctionSize) - 8usize];
7958 ["Offset of field: BNAnalysisParameters::maxFunctionAnalysisTime"]
7959 [::std::mem::offset_of!(BNAnalysisParameters, maxFunctionAnalysisTime) - 16usize];
7960 ["Offset of field: BNAnalysisParameters::maxFunctionUpdateCount"]
7961 [::std::mem::offset_of!(BNAnalysisParameters, maxFunctionUpdateCount) - 24usize];
7962 ["Offset of field: BNAnalysisParameters::maxFunctionSubmitCount"]
7963 [::std::mem::offset_of!(BNAnalysisParameters, maxFunctionSubmitCount) - 32usize];
7964 ["Offset of field: BNAnalysisParameters::suppressNewAutoFunctionAnalysis"]
7965 [::std::mem::offset_of!(BNAnalysisParameters, suppressNewAutoFunctionAnalysis) - 40usize];
7966 ["Offset of field: BNAnalysisParameters::mode"]
7967 [::std::mem::offset_of!(BNAnalysisParameters, mode) - 41usize];
7968 ["Offset of field: BNAnalysisParameters::alwaysAnalyzeIndirectBranches"]
7969 [::std::mem::offset_of!(BNAnalysisParameters, alwaysAnalyzeIndirectBranches) - 42usize];
7970 ["Offset of field: BNAnalysisParameters::advancedAnalysisCacheSize"]
7971 [::std::mem::offset_of!(BNAnalysisParameters, advancedAnalysisCacheSize) - 48usize];
7972};
7973impl Default for BNAnalysisParameters {
7974 fn default() -> Self {
7975 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
7976 unsafe {
7977 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7978 s.assume_init()
7979 }
7980 }
7981}
7982#[repr(C)]
7983#[derive(Debug, Copy, Clone)]
7984pub struct BNDownloadInstanceResponse {
7985 pub statusCode: u16,
7986 pub headerCount: u64,
7987 pub headerKeys: *mut *mut ::std::os::raw::c_char,
7988 pub headerValues: *mut *mut ::std::os::raw::c_char,
7989}
7990#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7991const _: () = {
7992 ["Size of BNDownloadInstanceResponse"]
7993 [::std::mem::size_of::<BNDownloadInstanceResponse>() - 32usize];
7994 ["Alignment of BNDownloadInstanceResponse"]
7995 [::std::mem::align_of::<BNDownloadInstanceResponse>() - 8usize];
7996 ["Offset of field: BNDownloadInstanceResponse::statusCode"]
7997 [::std::mem::offset_of!(BNDownloadInstanceResponse, statusCode) - 0usize];
7998 ["Offset of field: BNDownloadInstanceResponse::headerCount"]
7999 [::std::mem::offset_of!(BNDownloadInstanceResponse, headerCount) - 8usize];
8000 ["Offset of field: BNDownloadInstanceResponse::headerKeys"]
8001 [::std::mem::offset_of!(BNDownloadInstanceResponse, headerKeys) - 16usize];
8002 ["Offset of field: BNDownloadInstanceResponse::headerValues"]
8003 [::std::mem::offset_of!(BNDownloadInstanceResponse, headerValues) - 24usize];
8004};
8005impl Default for BNDownloadInstanceResponse {
8006 fn default() -> Self {
8007 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8008 unsafe {
8009 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8010 s.assume_init()
8011 }
8012 }
8013}
8014#[repr(C)]
8015#[derive(Debug, Copy, Clone)]
8016pub struct BNDownloadInstanceInputOutputCallbacks {
8017 pub readCallback: ::std::option::Option<
8018 unsafe extern "C" fn(data: *mut u8, len: u64, ctxt: *mut ::std::os::raw::c_void) -> i64,
8019 >,
8020 pub readContext: *mut ::std::os::raw::c_void,
8021 pub writeCallback: ::std::option::Option<
8022 unsafe extern "C" fn(data: *mut u8, len: u64, ctxt: *mut ::std::os::raw::c_void) -> u64,
8023 >,
8024 pub writeContext: *mut ::std::os::raw::c_void,
8025 pub progressCallback: BNProgressFunction,
8026 pub progressContext: *mut ::std::os::raw::c_void,
8027}
8028#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8029const _: () = {
8030 ["Size of BNDownloadInstanceInputOutputCallbacks"]
8031 [::std::mem::size_of::<BNDownloadInstanceInputOutputCallbacks>() - 48usize];
8032 ["Alignment of BNDownloadInstanceInputOutputCallbacks"]
8033 [::std::mem::align_of::<BNDownloadInstanceInputOutputCallbacks>() - 8usize];
8034 ["Offset of field: BNDownloadInstanceInputOutputCallbacks::readCallback"]
8035 [::std::mem::offset_of!(BNDownloadInstanceInputOutputCallbacks, readCallback) - 0usize];
8036 ["Offset of field: BNDownloadInstanceInputOutputCallbacks::readContext"]
8037 [::std::mem::offset_of!(BNDownloadInstanceInputOutputCallbacks, readContext) - 8usize];
8038 ["Offset of field: BNDownloadInstanceInputOutputCallbacks::writeCallback"]
8039 [::std::mem::offset_of!(BNDownloadInstanceInputOutputCallbacks, writeCallback) - 16usize];
8040 ["Offset of field: BNDownloadInstanceInputOutputCallbacks::writeContext"]
8041 [::std::mem::offset_of!(BNDownloadInstanceInputOutputCallbacks, writeContext) - 24usize];
8042 ["Offset of field: BNDownloadInstanceInputOutputCallbacks::progressCallback"][::std::mem::offset_of!(
8043 BNDownloadInstanceInputOutputCallbacks,
8044 progressCallback
8045 ) - 32usize];
8046 ["Offset of field: BNDownloadInstanceInputOutputCallbacks::progressContext"]
8047 [::std::mem::offset_of!(BNDownloadInstanceInputOutputCallbacks, progressContext) - 40usize];
8048};
8049impl Default for BNDownloadInstanceInputOutputCallbacks {
8050 fn default() -> Self {
8051 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8052 unsafe {
8053 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8054 s.assume_init()
8055 }
8056 }
8057}
8058#[repr(C)]
8059#[derive(Debug, Copy, Clone)]
8060pub struct BNDownloadInstanceOutputCallbacks {
8061 pub writeCallback: ::std::option::Option<
8062 unsafe extern "C" fn(data: *mut u8, len: u64, ctxt: *mut ::std::os::raw::c_void) -> u64,
8063 >,
8064 pub writeContext: *mut ::std::os::raw::c_void,
8065 pub progressCallback: BNProgressFunction,
8066 pub progressContext: *mut ::std::os::raw::c_void,
8067}
8068#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8069const _: () = {
8070 ["Size of BNDownloadInstanceOutputCallbacks"]
8071 [::std::mem::size_of::<BNDownloadInstanceOutputCallbacks>() - 32usize];
8072 ["Alignment of BNDownloadInstanceOutputCallbacks"]
8073 [::std::mem::align_of::<BNDownloadInstanceOutputCallbacks>() - 8usize];
8074 ["Offset of field: BNDownloadInstanceOutputCallbacks::writeCallback"]
8075 [::std::mem::offset_of!(BNDownloadInstanceOutputCallbacks, writeCallback) - 0usize];
8076 ["Offset of field: BNDownloadInstanceOutputCallbacks::writeContext"]
8077 [::std::mem::offset_of!(BNDownloadInstanceOutputCallbacks, writeContext) - 8usize];
8078 ["Offset of field: BNDownloadInstanceOutputCallbacks::progressCallback"]
8079 [::std::mem::offset_of!(BNDownloadInstanceOutputCallbacks, progressCallback) - 16usize];
8080 ["Offset of field: BNDownloadInstanceOutputCallbacks::progressContext"]
8081 [::std::mem::offset_of!(BNDownloadInstanceOutputCallbacks, progressContext) - 24usize];
8082};
8083impl Default for BNDownloadInstanceOutputCallbacks {
8084 fn default() -> Self {
8085 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8086 unsafe {
8087 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8088 s.assume_init()
8089 }
8090 }
8091}
8092#[repr(C)]
8093#[derive(Debug, Copy, Clone)]
8094pub struct BNDownloadInstanceCallbacks {
8095 pub context: *mut ::std::os::raw::c_void,
8096 pub destroyInstance:
8097 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8098 pub performRequest: ::std::option::Option<
8099 unsafe extern "C" fn(
8100 ctxt: *mut ::std::os::raw::c_void,
8101 url: *const ::std::os::raw::c_char,
8102 ) -> ::std::os::raw::c_int,
8103 >,
8104 pub performCustomRequest: ::std::option::Option<
8105 unsafe extern "C" fn(
8106 ctxt: *mut ::std::os::raw::c_void,
8107 method: *const ::std::os::raw::c_char,
8108 url: *const ::std::os::raw::c_char,
8109 headerCount: u64,
8110 headerKeys: *const *const ::std::os::raw::c_char,
8111 headerValues: *const *const ::std::os::raw::c_char,
8112 response: *mut *mut BNDownloadInstanceResponse,
8113 ) -> ::std::os::raw::c_int,
8114 >,
8115 pub freeResponse: ::std::option::Option<
8116 unsafe extern "C" fn(
8117 ctxt: *mut ::std::os::raw::c_void,
8118 response: *mut BNDownloadInstanceResponse,
8119 ),
8120 >,
8121}
8122#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8123const _: () = {
8124 ["Size of BNDownloadInstanceCallbacks"]
8125 [::std::mem::size_of::<BNDownloadInstanceCallbacks>() - 40usize];
8126 ["Alignment of BNDownloadInstanceCallbacks"]
8127 [::std::mem::align_of::<BNDownloadInstanceCallbacks>() - 8usize];
8128 ["Offset of field: BNDownloadInstanceCallbacks::context"]
8129 [::std::mem::offset_of!(BNDownloadInstanceCallbacks, context) - 0usize];
8130 ["Offset of field: BNDownloadInstanceCallbacks::destroyInstance"]
8131 [::std::mem::offset_of!(BNDownloadInstanceCallbacks, destroyInstance) - 8usize];
8132 ["Offset of field: BNDownloadInstanceCallbacks::performRequest"]
8133 [::std::mem::offset_of!(BNDownloadInstanceCallbacks, performRequest) - 16usize];
8134 ["Offset of field: BNDownloadInstanceCallbacks::performCustomRequest"]
8135 [::std::mem::offset_of!(BNDownloadInstanceCallbacks, performCustomRequest) - 24usize];
8136 ["Offset of field: BNDownloadInstanceCallbacks::freeResponse"]
8137 [::std::mem::offset_of!(BNDownloadInstanceCallbacks, freeResponse) - 32usize];
8138};
8139impl Default for BNDownloadInstanceCallbacks {
8140 fn default() -> Self {
8141 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8142 unsafe {
8143 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8144 s.assume_init()
8145 }
8146 }
8147}
8148#[repr(C)]
8149#[derive(Debug, Copy, Clone)]
8150pub struct BNDownloadProviderCallbacks {
8151 pub context: *mut ::std::os::raw::c_void,
8152 pub createInstance: ::std::option::Option<
8153 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNDownloadInstance,
8154 >,
8155}
8156#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8157const _: () = {
8158 ["Size of BNDownloadProviderCallbacks"]
8159 [::std::mem::size_of::<BNDownloadProviderCallbacks>() - 16usize];
8160 ["Alignment of BNDownloadProviderCallbacks"]
8161 [::std::mem::align_of::<BNDownloadProviderCallbacks>() - 8usize];
8162 ["Offset of field: BNDownloadProviderCallbacks::context"]
8163 [::std::mem::offset_of!(BNDownloadProviderCallbacks, context) - 0usize];
8164 ["Offset of field: BNDownloadProviderCallbacks::createInstance"]
8165 [::std::mem::offset_of!(BNDownloadProviderCallbacks, createInstance) - 8usize];
8166};
8167impl Default for BNDownloadProviderCallbacks {
8168 fn default() -> Self {
8169 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8170 unsafe {
8171 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8172 s.assume_init()
8173 }
8174 }
8175}
8176#[repr(C)]
8177#[derive(Debug, Copy, Clone)]
8178pub struct BNWebsocketClientOutputCallbacks {
8179 pub context: *mut ::std::os::raw::c_void,
8180 pub connectedCallback:
8181 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
8182 pub disconnectedCallback:
8183 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8184 pub errorCallback: ::std::option::Option<
8185 unsafe extern "C" fn(msg: *const ::std::os::raw::c_char, ctxt: *mut ::std::os::raw::c_void),
8186 >,
8187 pub readCallback: ::std::option::Option<
8188 unsafe extern "C" fn(data: *mut u8, len: u64, ctxt: *mut ::std::os::raw::c_void) -> bool,
8189 >,
8190}
8191#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8192const _: () = {
8193 ["Size of BNWebsocketClientOutputCallbacks"]
8194 [::std::mem::size_of::<BNWebsocketClientOutputCallbacks>() - 40usize];
8195 ["Alignment of BNWebsocketClientOutputCallbacks"]
8196 [::std::mem::align_of::<BNWebsocketClientOutputCallbacks>() - 8usize];
8197 ["Offset of field: BNWebsocketClientOutputCallbacks::context"]
8198 [::std::mem::offset_of!(BNWebsocketClientOutputCallbacks, context) - 0usize];
8199 ["Offset of field: BNWebsocketClientOutputCallbacks::connectedCallback"]
8200 [::std::mem::offset_of!(BNWebsocketClientOutputCallbacks, connectedCallback) - 8usize];
8201 ["Offset of field: BNWebsocketClientOutputCallbacks::disconnectedCallback"]
8202 [::std::mem::offset_of!(BNWebsocketClientOutputCallbacks, disconnectedCallback) - 16usize];
8203 ["Offset of field: BNWebsocketClientOutputCallbacks::errorCallback"]
8204 [::std::mem::offset_of!(BNWebsocketClientOutputCallbacks, errorCallback) - 24usize];
8205 ["Offset of field: BNWebsocketClientOutputCallbacks::readCallback"]
8206 [::std::mem::offset_of!(BNWebsocketClientOutputCallbacks, readCallback) - 32usize];
8207};
8208impl Default for BNWebsocketClientOutputCallbacks {
8209 fn default() -> Self {
8210 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8211 unsafe {
8212 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8213 s.assume_init()
8214 }
8215 }
8216}
8217#[repr(C)]
8218#[derive(Debug, Copy, Clone)]
8219pub struct BNWebsocketClientCallbacks {
8220 pub context: *mut ::std::os::raw::c_void,
8221 pub destroyClient:
8222 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8223 pub connect: ::std::option::Option<
8224 unsafe extern "C" fn(
8225 ctxt: *mut ::std::os::raw::c_void,
8226 host: *const ::std::os::raw::c_char,
8227 headerCount: u64,
8228 headerKeys: *const *const ::std::os::raw::c_char,
8229 headerValues: *const *const ::std::os::raw::c_char,
8230 ) -> bool,
8231 >,
8232 pub write: ::std::option::Option<
8233 unsafe extern "C" fn(data: *const u8, len: u64, ctxt: *mut ::std::os::raw::c_void) -> bool,
8234 >,
8235 pub disconnect:
8236 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
8237}
8238#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8239const _: () = {
8240 ["Size of BNWebsocketClientCallbacks"]
8241 [::std::mem::size_of::<BNWebsocketClientCallbacks>() - 40usize];
8242 ["Alignment of BNWebsocketClientCallbacks"]
8243 [::std::mem::align_of::<BNWebsocketClientCallbacks>() - 8usize];
8244 ["Offset of field: BNWebsocketClientCallbacks::context"]
8245 [::std::mem::offset_of!(BNWebsocketClientCallbacks, context) - 0usize];
8246 ["Offset of field: BNWebsocketClientCallbacks::destroyClient"]
8247 [::std::mem::offset_of!(BNWebsocketClientCallbacks, destroyClient) - 8usize];
8248 ["Offset of field: BNWebsocketClientCallbacks::connect"]
8249 [::std::mem::offset_of!(BNWebsocketClientCallbacks, connect) - 16usize];
8250 ["Offset of field: BNWebsocketClientCallbacks::write"]
8251 [::std::mem::offset_of!(BNWebsocketClientCallbacks, write) - 24usize];
8252 ["Offset of field: BNWebsocketClientCallbacks::disconnect"]
8253 [::std::mem::offset_of!(BNWebsocketClientCallbacks, disconnect) - 32usize];
8254};
8255impl Default for BNWebsocketClientCallbacks {
8256 fn default() -> Self {
8257 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8258 unsafe {
8259 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8260 s.assume_init()
8261 }
8262 }
8263}
8264#[repr(C)]
8265#[derive(Debug, Copy, Clone)]
8266pub struct BNWebsocketProviderCallbacks {
8267 pub context: *mut ::std::os::raw::c_void,
8268 pub createClient: ::std::option::Option<
8269 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNWebsocketClient,
8270 >,
8271}
8272#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8273const _: () = {
8274 ["Size of BNWebsocketProviderCallbacks"]
8275 [::std::mem::size_of::<BNWebsocketProviderCallbacks>() - 16usize];
8276 ["Alignment of BNWebsocketProviderCallbacks"]
8277 [::std::mem::align_of::<BNWebsocketProviderCallbacks>() - 8usize];
8278 ["Offset of field: BNWebsocketProviderCallbacks::context"]
8279 [::std::mem::offset_of!(BNWebsocketProviderCallbacks, context) - 0usize];
8280 ["Offset of field: BNWebsocketProviderCallbacks::createClient"]
8281 [::std::mem::offset_of!(BNWebsocketProviderCallbacks, createClient) - 8usize];
8282};
8283impl Default for BNWebsocketProviderCallbacks {
8284 fn default() -> Self {
8285 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8286 unsafe {
8287 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8288 s.assume_init()
8289 }
8290 }
8291}
8292#[repr(u8)]
8293#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8294pub enum BNFindFlag {
8295 FindCaseSensitive = 0,
8296 FindCaseInsensitive = 1,
8297 FindIgnoreWhitespace = 2,
8298}
8299#[repr(u8)]
8300#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8301pub enum BNScriptingProviderInputReadyState {
8302 NotReadyForInput = 0,
8303 ReadyForScriptExecution = 1,
8304 ReadyForScriptProgramInput = 2,
8305}
8306#[repr(u8)]
8307#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8308pub enum BNScriptingProviderExecuteResult {
8309 InvalidScriptInput = 0,
8310 IncompleteScriptInput = 1,
8311 SuccessfulScriptExecution = 2,
8312 ScriptExecutionCancelled = 3,
8313}
8314#[repr(u8)]
8315#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8316pub enum BNPluginDependencyDecision {
8317 PluginDependencyReinstall = 0,
8318 PluginDependencyDisable = 1,
8319 PluginDependencyLoadAnyway = 2,
8320}
8321#[repr(u8)]
8322#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8323pub enum BNPluginDependencyConflictStatus {
8324 PluginDependencyProvenConflict = 0,
8325 PluginDependencyUnknownCompatibility = 1,
8326}
8327#[repr(C)]
8328#[derive(Debug, Copy, Clone)]
8329pub struct BNPluginDependencyInfo {
8330 pub name: *const ::std::os::raw::c_char,
8331 pub dependencies: *const ::std::os::raw::c_char,
8332}
8333#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8334const _: () = {
8335 ["Size of BNPluginDependencyInfo"][::std::mem::size_of::<BNPluginDependencyInfo>() - 16usize];
8336 ["Alignment of BNPluginDependencyInfo"]
8337 [::std::mem::align_of::<BNPluginDependencyInfo>() - 8usize];
8338 ["Offset of field: BNPluginDependencyInfo::name"]
8339 [::std::mem::offset_of!(BNPluginDependencyInfo, name) - 0usize];
8340 ["Offset of field: BNPluginDependencyInfo::dependencies"]
8341 [::std::mem::offset_of!(BNPluginDependencyInfo, dependencies) - 8usize];
8342};
8343impl Default for BNPluginDependencyInfo {
8344 fn default() -> Self {
8345 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8346 unsafe {
8347 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8348 s.assume_init()
8349 }
8350 }
8351}
8352#[repr(C)]
8353#[derive(Debug, Copy, Clone)]
8354pub struct BNPluginDependencyRequirement {
8355 pub pluginName: *mut ::std::os::raw::c_char,
8356 pub requirement: *mut ::std::os::raw::c_char,
8357}
8358#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8359const _: () = {
8360 ["Size of BNPluginDependencyRequirement"]
8361 [::std::mem::size_of::<BNPluginDependencyRequirement>() - 16usize];
8362 ["Alignment of BNPluginDependencyRequirement"]
8363 [::std::mem::align_of::<BNPluginDependencyRequirement>() - 8usize];
8364 ["Offset of field: BNPluginDependencyRequirement::pluginName"]
8365 [::std::mem::offset_of!(BNPluginDependencyRequirement, pluginName) - 0usize];
8366 ["Offset of field: BNPluginDependencyRequirement::requirement"]
8367 [::std::mem::offset_of!(BNPluginDependencyRequirement, requirement) - 8usize];
8368};
8369impl Default for BNPluginDependencyRequirement {
8370 fn default() -> Self {
8371 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8372 unsafe {
8373 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8374 s.assume_init()
8375 }
8376 }
8377}
8378#[repr(C)]
8379#[derive(Debug, Copy, Clone)]
8380pub struct BNPluginDependencyConflict {
8381 pub status: BNPluginDependencyConflictStatus,
8382 pub packageName: *mut ::std::os::raw::c_char,
8383 pub candidateRequirements: *mut BNPluginDependencyRequirement,
8384 pub candidateRequirementCount: usize,
8385 pub installedRequirements: *mut BNPluginDependencyRequirement,
8386 pub installedRequirementCount: usize,
8387}
8388#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8389const _: () = {
8390 ["Size of BNPluginDependencyConflict"]
8391 [::std::mem::size_of::<BNPluginDependencyConflict>() - 48usize];
8392 ["Alignment of BNPluginDependencyConflict"]
8393 [::std::mem::align_of::<BNPluginDependencyConflict>() - 8usize];
8394 ["Offset of field: BNPluginDependencyConflict::status"]
8395 [::std::mem::offset_of!(BNPluginDependencyConflict, status) - 0usize];
8396 ["Offset of field: BNPluginDependencyConflict::packageName"]
8397 [::std::mem::offset_of!(BNPluginDependencyConflict, packageName) - 8usize];
8398 ["Offset of field: BNPluginDependencyConflict::candidateRequirements"]
8399 [::std::mem::offset_of!(BNPluginDependencyConflict, candidateRequirements) - 16usize];
8400 ["Offset of field: BNPluginDependencyConflict::candidateRequirementCount"]
8401 [::std::mem::offset_of!(BNPluginDependencyConflict, candidateRequirementCount) - 24usize];
8402 ["Offset of field: BNPluginDependencyConflict::installedRequirements"]
8403 [::std::mem::offset_of!(BNPluginDependencyConflict, installedRequirements) - 32usize];
8404 ["Offset of field: BNPluginDependencyConflict::installedRequirementCount"]
8405 [::std::mem::offset_of!(BNPluginDependencyConflict, installedRequirementCount) - 40usize];
8406};
8407impl Default for BNPluginDependencyConflict {
8408 fn default() -> Self {
8409 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8410 unsafe {
8411 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8412 s.assume_init()
8413 }
8414 }
8415}
8416#[repr(C)]
8417#[derive(Debug, Copy, Clone)]
8418pub struct BNPluginDependencyIssue {
8419 pub repository: *const ::std::os::raw::c_char,
8420 pub name: *const ::std::os::raw::c_char,
8421 pub path: *const ::std::os::raw::c_char,
8422 pub dependencies: *const ::std::os::raw::c_char,
8423}
8424#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8425const _: () = {
8426 ["Size of BNPluginDependencyIssue"][::std::mem::size_of::<BNPluginDependencyIssue>() - 32usize];
8427 ["Alignment of BNPluginDependencyIssue"]
8428 [::std::mem::align_of::<BNPluginDependencyIssue>() - 8usize];
8429 ["Offset of field: BNPluginDependencyIssue::repository"]
8430 [::std::mem::offset_of!(BNPluginDependencyIssue, repository) - 0usize];
8431 ["Offset of field: BNPluginDependencyIssue::name"]
8432 [::std::mem::offset_of!(BNPluginDependencyIssue, name) - 8usize];
8433 ["Offset of field: BNPluginDependencyIssue::path"]
8434 [::std::mem::offset_of!(BNPluginDependencyIssue, path) - 16usize];
8435 ["Offset of field: BNPluginDependencyIssue::dependencies"]
8436 [::std::mem::offset_of!(BNPluginDependencyIssue, dependencies) - 24usize];
8437};
8438impl Default for BNPluginDependencyIssue {
8439 fn default() -> Self {
8440 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8441 unsafe {
8442 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8443 s.assume_init()
8444 }
8445 }
8446}
8447#[repr(C)]
8448#[derive(Debug, Copy, Clone)]
8449pub struct BNPluginDependencyStartupCallbacks {
8450 pub context: *mut ::std::os::raw::c_void,
8451 pub checkDependencies: ::std::option::Option<
8452 unsafe extern "C" fn(
8453 ctxt: *mut ::std::os::raw::c_void,
8454 issues: *const BNPluginDependencyIssue,
8455 count: usize,
8456 decisions: *mut BNPluginDependencyDecision,
8457 ) -> bool,
8458 >,
8459}
8460#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8461const _: () = {
8462 ["Size of BNPluginDependencyStartupCallbacks"]
8463 [::std::mem::size_of::<BNPluginDependencyStartupCallbacks>() - 16usize];
8464 ["Alignment of BNPluginDependencyStartupCallbacks"]
8465 [::std::mem::align_of::<BNPluginDependencyStartupCallbacks>() - 8usize];
8466 ["Offset of field: BNPluginDependencyStartupCallbacks::context"]
8467 [::std::mem::offset_of!(BNPluginDependencyStartupCallbacks, context) - 0usize];
8468 ["Offset of field: BNPluginDependencyStartupCallbacks::checkDependencies"]
8469 [::std::mem::offset_of!(BNPluginDependencyStartupCallbacks, checkDependencies) - 8usize];
8470};
8471impl Default for BNPluginDependencyStartupCallbacks {
8472 fn default() -> Self {
8473 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8474 unsafe {
8475 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8476 s.assume_init()
8477 }
8478 }
8479}
8480#[repr(C)]
8481#[derive(Debug, Copy, Clone)]
8482pub struct BNPluginDependencyResolutionCallbacks {
8483 pub context: *mut ::std::os::raw::c_void,
8484 pub dependencyResolved: ::std::option::Option<
8485 unsafe extern "C" fn(
8486 ctxt: *mut ::std::os::raw::c_void,
8487 repository: *const ::std::os::raw::c_char,
8488 path: *const ::std::os::raw::c_char,
8489 ),
8490 >,
8491}
8492#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8493const _: () = {
8494 ["Size of BNPluginDependencyResolutionCallbacks"]
8495 [::std::mem::size_of::<BNPluginDependencyResolutionCallbacks>() - 16usize];
8496 ["Alignment of BNPluginDependencyResolutionCallbacks"]
8497 [::std::mem::align_of::<BNPluginDependencyResolutionCallbacks>() - 8usize];
8498 ["Offset of field: BNPluginDependencyResolutionCallbacks::context"]
8499 [::std::mem::offset_of!(BNPluginDependencyResolutionCallbacks, context) - 0usize];
8500 ["Offset of field: BNPluginDependencyResolutionCallbacks::dependencyResolved"][::std::mem::offset_of!(
8501 BNPluginDependencyResolutionCallbacks,
8502 dependencyResolved
8503 ) - 8usize];
8504};
8505impl Default for BNPluginDependencyResolutionCallbacks {
8506 fn default() -> Self {
8507 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8508 unsafe {
8509 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8510 s.assume_init()
8511 }
8512 }
8513}
8514#[repr(C)]
8515#[derive(Debug, Copy, Clone)]
8516pub struct BNScriptingProviderModuleInstalledCallbacks {
8517 pub context: *mut ::std::os::raw::c_void,
8518 pub moduleInstalled: ::std::option::Option<
8519 unsafe extern "C" fn(
8520 ctxt: *mut ::std::os::raw::c_void,
8521 modules: *const ::std::os::raw::c_char,
8522 ) -> bool,
8523 >,
8524}
8525#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8526const _: () = {
8527 ["Size of BNScriptingProviderModuleInstalledCallbacks"]
8528 [::std::mem::size_of::<BNScriptingProviderModuleInstalledCallbacks>() - 16usize];
8529 ["Alignment of BNScriptingProviderModuleInstalledCallbacks"]
8530 [::std::mem::align_of::<BNScriptingProviderModuleInstalledCallbacks>() - 8usize];
8531 ["Offset of field: BNScriptingProviderModuleInstalledCallbacks::context"]
8532 [::std::mem::offset_of!(BNScriptingProviderModuleInstalledCallbacks, context) - 0usize];
8533 ["Offset of field: BNScriptingProviderModuleInstalledCallbacks::moduleInstalled"][::std::mem::offset_of!(
8534 BNScriptingProviderModuleInstalledCallbacks,
8535 moduleInstalled
8536 ) - 8usize];
8537};
8538impl Default for BNScriptingProviderModuleInstalledCallbacks {
8539 fn default() -> Self {
8540 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8541 unsafe {
8542 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8543 s.assume_init()
8544 }
8545 }
8546}
8547#[repr(C)]
8548#[derive(Debug, Copy, Clone)]
8549pub struct BNScriptingProviderInstallModulesWithExclusionsCallbacks {
8550 pub context: *mut ::std::os::raw::c_void,
8551 pub installModulesWithExclusions: ::std::option::Option<
8552 unsafe extern "C" fn(
8553 ctxt: *mut ::std::os::raw::c_void,
8554 modules: *const ::std::os::raw::c_char,
8555 excludedPackageNames: *const *const ::std::os::raw::c_char,
8556 excludedPackageNameCount: usize,
8557 ) -> bool,
8558 >,
8559}
8560#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8561const _: () = {
8562 ["Size of BNScriptingProviderInstallModulesWithExclusionsCallbacks"][::std::mem::size_of::<
8563 BNScriptingProviderInstallModulesWithExclusionsCallbacks,
8564 >() - 16usize];
8565 ["Alignment of BNScriptingProviderInstallModulesWithExclusionsCallbacks"][::std::mem::align_of::<
8566 BNScriptingProviderInstallModulesWithExclusionsCallbacks,
8567 >() - 8usize];
8568 ["Offset of field: BNScriptingProviderInstallModulesWithExclusionsCallbacks::context"][::std::mem::offset_of!(
8569 BNScriptingProviderInstallModulesWithExclusionsCallbacks,
8570 context
8571 )
8572 - 0usize];
8573 [
8574 "Offset of field: BNScriptingProviderInstallModulesWithExclusionsCallbacks::installModulesWithExclusions",
8575 ][::std::mem::offset_of!(
8576 BNScriptingProviderInstallModulesWithExclusionsCallbacks,
8577 installModulesWithExclusions
8578 ) - 8usize];
8579};
8580impl Default for BNScriptingProviderInstallModulesWithExclusionsCallbacks {
8581 fn default() -> Self {
8582 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8583 unsafe {
8584 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8585 s.assume_init()
8586 }
8587 }
8588}
8589#[repr(C)]
8590#[derive(Debug, Copy, Clone)]
8591pub struct BNScriptingProviderDependencyConflictCallbacks {
8592 pub context: *mut ::std::os::raw::c_void,
8593 pub getDependencyConflicts: ::std::option::Option<
8594 unsafe extern "C" fn(
8595 ctxt: *mut ::std::os::raw::c_void,
8596 candidate: *const BNPluginDependencyInfo,
8597 installedPlugins: *const BNPluginDependencyInfo,
8598 installedPluginCount: usize,
8599 ) -> *mut ::std::os::raw::c_char,
8600 >,
8601}
8602#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8603const _: () = {
8604 ["Size of BNScriptingProviderDependencyConflictCallbacks"]
8605 [::std::mem::size_of::<BNScriptingProviderDependencyConflictCallbacks>() - 16usize];
8606 ["Alignment of BNScriptingProviderDependencyConflictCallbacks"]
8607 [::std::mem::align_of::<BNScriptingProviderDependencyConflictCallbacks>() - 8usize];
8608 ["Offset of field: BNScriptingProviderDependencyConflictCallbacks::context"]
8609 [::std::mem::offset_of!(BNScriptingProviderDependencyConflictCallbacks, context) - 0usize];
8610 ["Offset of field: BNScriptingProviderDependencyConflictCallbacks::getDependencyConflicts"][::std::mem::offset_of!(
8611 BNScriptingProviderDependencyConflictCallbacks,
8612 getDependencyConflicts
8613 )
8614 - 8usize];
8615};
8616impl Default for BNScriptingProviderDependencyConflictCallbacks {
8617 fn default() -> Self {
8618 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8619 unsafe {
8620 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8621 s.assume_init()
8622 }
8623 }
8624}
8625#[repr(C)]
8626#[derive(Debug, Copy, Clone)]
8627pub struct BNScriptingInstanceCallbacks {
8628 pub context: *mut ::std::os::raw::c_void,
8629 pub destroyInstance:
8630 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8631 pub externalRefTaken:
8632 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8633 pub externalRefReleased:
8634 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8635 pub executeScriptInput: ::std::option::Option<
8636 unsafe extern "C" fn(
8637 ctxt: *mut ::std::os::raw::c_void,
8638 input: *const ::std::os::raw::c_char,
8639 ) -> BNScriptingProviderExecuteResult,
8640 >,
8641 pub executeScriptInputFromFilename: ::std::option::Option<
8642 unsafe extern "C" fn(
8643 ctxt: *mut ::std::os::raw::c_void,
8644 input: *const ::std::os::raw::c_char,
8645 ) -> BNScriptingProviderExecuteResult,
8646 >,
8647 pub cancelScriptInput:
8648 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8649 pub releaseBinaryView: ::std::option::Option<
8650 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
8651 >,
8652 pub setCurrentBinaryView: ::std::option::Option<
8653 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
8654 >,
8655 pub setCurrentFunction: ::std::option::Option<
8656 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, func: *mut BNFunction),
8657 >,
8658 pub setCurrentBasicBlock: ::std::option::Option<
8659 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, block: *mut BNBasicBlock),
8660 >,
8661 pub setCurrentAddress:
8662 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, addr: u64)>,
8663 pub setCurrentSelection: ::std::option::Option<
8664 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, begin: u64, end: u64),
8665 >,
8666 pub completeInput: ::std::option::Option<
8667 unsafe extern "C" fn(
8668 ctxt: *mut ::std::os::raw::c_void,
8669 text: *const ::std::os::raw::c_char,
8670 state: u64,
8671 ) -> *mut ::std::os::raw::c_char,
8672 >,
8673 pub stop: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
8674 pub canCompleteArguments: ::std::option::Option<
8675 unsafe extern "C" fn(
8676 ctx: *mut ::std::os::raw::c_void,
8677 text: *const ::std::os::raw::c_char,
8678 ) -> bool,
8679 >,
8680 pub completeArguments: ::std::option::Option<
8681 unsafe extern "C" fn(
8682 ctxt: *mut ::std::os::raw::c_void,
8683 text: *const ::std::os::raw::c_char,
8684 argumentStart: *mut u64,
8685 ) -> *mut ::std::os::raw::c_char,
8686 >,
8687}
8688#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8689const _: () = {
8690 ["Size of BNScriptingInstanceCallbacks"]
8691 [::std::mem::size_of::<BNScriptingInstanceCallbacks>() - 136usize];
8692 ["Alignment of BNScriptingInstanceCallbacks"]
8693 [::std::mem::align_of::<BNScriptingInstanceCallbacks>() - 8usize];
8694 ["Offset of field: BNScriptingInstanceCallbacks::context"]
8695 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, context) - 0usize];
8696 ["Offset of field: BNScriptingInstanceCallbacks::destroyInstance"]
8697 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, destroyInstance) - 8usize];
8698 ["Offset of field: BNScriptingInstanceCallbacks::externalRefTaken"]
8699 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, externalRefTaken) - 16usize];
8700 ["Offset of field: BNScriptingInstanceCallbacks::externalRefReleased"]
8701 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, externalRefReleased) - 24usize];
8702 ["Offset of field: BNScriptingInstanceCallbacks::executeScriptInput"]
8703 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, executeScriptInput) - 32usize];
8704 ["Offset of field: BNScriptingInstanceCallbacks::executeScriptInputFromFilename"][::std::mem::offset_of!(
8705 BNScriptingInstanceCallbacks,
8706 executeScriptInputFromFilename
8707 ) - 40usize];
8708 ["Offset of field: BNScriptingInstanceCallbacks::cancelScriptInput"]
8709 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, cancelScriptInput) - 48usize];
8710 ["Offset of field: BNScriptingInstanceCallbacks::releaseBinaryView"]
8711 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, releaseBinaryView) - 56usize];
8712 ["Offset of field: BNScriptingInstanceCallbacks::setCurrentBinaryView"]
8713 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, setCurrentBinaryView) - 64usize];
8714 ["Offset of field: BNScriptingInstanceCallbacks::setCurrentFunction"]
8715 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, setCurrentFunction) - 72usize];
8716 ["Offset of field: BNScriptingInstanceCallbacks::setCurrentBasicBlock"]
8717 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, setCurrentBasicBlock) - 80usize];
8718 ["Offset of field: BNScriptingInstanceCallbacks::setCurrentAddress"]
8719 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, setCurrentAddress) - 88usize];
8720 ["Offset of field: BNScriptingInstanceCallbacks::setCurrentSelection"]
8721 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, setCurrentSelection) - 96usize];
8722 ["Offset of field: BNScriptingInstanceCallbacks::completeInput"]
8723 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, completeInput) - 104usize];
8724 ["Offset of field: BNScriptingInstanceCallbacks::stop"]
8725 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, stop) - 112usize];
8726 ["Offset of field: BNScriptingInstanceCallbacks::canCompleteArguments"]
8727 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, canCompleteArguments) - 120usize];
8728 ["Offset of field: BNScriptingInstanceCallbacks::completeArguments"]
8729 [::std::mem::offset_of!(BNScriptingInstanceCallbacks, completeArguments) - 128usize];
8730};
8731impl Default for BNScriptingInstanceCallbacks {
8732 fn default() -> Self {
8733 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8734 unsafe {
8735 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8736 s.assume_init()
8737 }
8738 }
8739}
8740#[repr(C)]
8741#[derive(Debug, Copy, Clone)]
8742pub struct BNScriptingProviderCallbacks {
8743 pub context: *mut ::std::os::raw::c_void,
8744 pub createInstance: ::std::option::Option<
8745 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNScriptingInstance,
8746 >,
8747 pub loadModule: ::std::option::Option<
8748 unsafe extern "C" fn(
8749 ctxt: *mut ::std::os::raw::c_void,
8750 repoPath: *const ::std::os::raw::c_char,
8751 pluginPath: *const ::std::os::raw::c_char,
8752 force: bool,
8753 ) -> bool,
8754 >,
8755 pub installModules: ::std::option::Option<
8756 unsafe extern "C" fn(
8757 ctxt: *mut ::std::os::raw::c_void,
8758 modules: *const ::std::os::raw::c_char,
8759 ) -> bool,
8760 >,
8761}
8762#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8763const _: () = {
8764 ["Size of BNScriptingProviderCallbacks"]
8765 [::std::mem::size_of::<BNScriptingProviderCallbacks>() - 32usize];
8766 ["Alignment of BNScriptingProviderCallbacks"]
8767 [::std::mem::align_of::<BNScriptingProviderCallbacks>() - 8usize];
8768 ["Offset of field: BNScriptingProviderCallbacks::context"]
8769 [::std::mem::offset_of!(BNScriptingProviderCallbacks, context) - 0usize];
8770 ["Offset of field: BNScriptingProviderCallbacks::createInstance"]
8771 [::std::mem::offset_of!(BNScriptingProviderCallbacks, createInstance) - 8usize];
8772 ["Offset of field: BNScriptingProviderCallbacks::loadModule"]
8773 [::std::mem::offset_of!(BNScriptingProviderCallbacks, loadModule) - 16usize];
8774 ["Offset of field: BNScriptingProviderCallbacks::installModules"]
8775 [::std::mem::offset_of!(BNScriptingProviderCallbacks, installModules) - 24usize];
8776};
8777impl Default for BNScriptingProviderCallbacks {
8778 fn default() -> Self {
8779 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8780 unsafe {
8781 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8782 s.assume_init()
8783 }
8784 }
8785}
8786#[repr(C)]
8787#[derive(Debug, Copy, Clone)]
8788pub struct BNScriptingOutputListener {
8789 pub context: *mut ::std::os::raw::c_void,
8790 pub output: ::std::option::Option<
8791 unsafe extern "C" fn(
8792 ctxt: *mut ::std::os::raw::c_void,
8793 text: *const ::std::os::raw::c_char,
8794 ),
8795 >,
8796 pub warning: ::std::option::Option<
8797 unsafe extern "C" fn(
8798 ctxt: *mut ::std::os::raw::c_void,
8799 text: *const ::std::os::raw::c_char,
8800 ),
8801 >,
8802 pub error: ::std::option::Option<
8803 unsafe extern "C" fn(
8804 ctxt: *mut ::std::os::raw::c_void,
8805 text: *const ::std::os::raw::c_char,
8806 ),
8807 >,
8808 pub inputReadyStateChanged: ::std::option::Option<
8809 unsafe extern "C" fn(
8810 ctxt: *mut ::std::os::raw::c_void,
8811 state: BNScriptingProviderInputReadyState,
8812 ),
8813 >,
8814}
8815#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8816const _: () = {
8817 ["Size of BNScriptingOutputListener"]
8818 [::std::mem::size_of::<BNScriptingOutputListener>() - 40usize];
8819 ["Alignment of BNScriptingOutputListener"]
8820 [::std::mem::align_of::<BNScriptingOutputListener>() - 8usize];
8821 ["Offset of field: BNScriptingOutputListener::context"]
8822 [::std::mem::offset_of!(BNScriptingOutputListener, context) - 0usize];
8823 ["Offset of field: BNScriptingOutputListener::output"]
8824 [::std::mem::offset_of!(BNScriptingOutputListener, output) - 8usize];
8825 ["Offset of field: BNScriptingOutputListener::warning"]
8826 [::std::mem::offset_of!(BNScriptingOutputListener, warning) - 16usize];
8827 ["Offset of field: BNScriptingOutputListener::error"]
8828 [::std::mem::offset_of!(BNScriptingOutputListener, error) - 24usize];
8829 ["Offset of field: BNScriptingOutputListener::inputReadyStateChanged"]
8830 [::std::mem::offset_of!(BNScriptingOutputListener, inputReadyStateChanged) - 32usize];
8831};
8832impl Default for BNScriptingOutputListener {
8833 fn default() -> Self {
8834 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8835 unsafe {
8836 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8837 s.assume_init()
8838 }
8839 }
8840}
8841#[repr(C)]
8842#[derive(Debug, Copy, Clone)]
8843pub struct BNMainThreadCallbacks {
8844 pub context: *mut ::std::os::raw::c_void,
8845 pub addAction: ::std::option::Option<
8846 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, action: *mut BNMainThreadAction),
8847 >,
8848}
8849#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8850const _: () = {
8851 ["Size of BNMainThreadCallbacks"][::std::mem::size_of::<BNMainThreadCallbacks>() - 16usize];
8852 ["Alignment of BNMainThreadCallbacks"]
8853 [::std::mem::align_of::<BNMainThreadCallbacks>() - 8usize];
8854 ["Offset of field: BNMainThreadCallbacks::context"]
8855 [::std::mem::offset_of!(BNMainThreadCallbacks, context) - 0usize];
8856 ["Offset of field: BNMainThreadCallbacks::addAction"]
8857 [::std::mem::offset_of!(BNMainThreadCallbacks, addAction) - 8usize];
8858};
8859impl Default for BNMainThreadCallbacks {
8860 fn default() -> Self {
8861 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8862 unsafe {
8863 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8864 s.assume_init()
8865 }
8866 }
8867}
8868#[repr(C)]
8869#[derive(Copy, Clone)]
8870pub struct BNTypeParserCallbacks {
8871 pub context: *mut ::std::os::raw::c_void,
8872 pub getOptionText: ::std::option::Option<
8873 unsafe extern "C" fn(
8874 ctxt: *mut ::std::os::raw::c_void,
8875 option: BNTypeParserOption,
8876 value: *const ::std::os::raw::c_char,
8877 result: *mut *mut ::std::os::raw::c_char,
8878 ) -> bool,
8879 >,
8880 pub preprocessSource: ::std::option::Option<
8881 unsafe extern "C" fn(
8882 ctxt: *mut ::std::os::raw::c_void,
8883 source: *const ::std::os::raw::c_char,
8884 fileName: *const ::std::os::raw::c_char,
8885 platform: *mut BNPlatform,
8886 existingTypes: *mut BNTypeContainer,
8887 options: *const *const ::std::os::raw::c_char,
8888 optionCount: usize,
8889 includeDirs: *const *const ::std::os::raw::c_char,
8890 includeDirCount: usize,
8891 output: *mut *mut ::std::os::raw::c_char,
8892 errors: *mut *mut BNTypeParserError,
8893 errorCount: *mut usize,
8894 ) -> bool,
8895 >,
8896 pub parseTypesFromSource: ::std::option::Option<
8897 unsafe extern "C" fn(
8898 ctxt: *mut ::std::os::raw::c_void,
8899 source: *const ::std::os::raw::c_char,
8900 fileName: *const ::std::os::raw::c_char,
8901 platform: *mut BNPlatform,
8902 existingTypes: *mut BNTypeContainer,
8903 options: *const *const ::std::os::raw::c_char,
8904 optionCount: usize,
8905 includeDirs: *const *const ::std::os::raw::c_char,
8906 includeDirCount: usize,
8907 autoTypeSource: *const ::std::os::raw::c_char,
8908 result: *mut BNTypeParserResult,
8909 errors: *mut *mut BNTypeParserError,
8910 errorCount: *mut usize,
8911 ) -> bool,
8912 >,
8913 pub parseTypeString: ::std::option::Option<
8914 unsafe extern "C" fn(
8915 ctxt: *mut ::std::os::raw::c_void,
8916 source: *const ::std::os::raw::c_char,
8917 platform: *mut BNPlatform,
8918 existingTypes: *mut BNTypeContainer,
8919 result: *mut BNQualifiedNameAndType,
8920 errors: *mut *mut BNTypeParserError,
8921 errorCount: *mut usize,
8922 ) -> bool,
8923 >,
8924 pub freeString: ::std::option::Option<
8925 unsafe extern "C" fn(
8926 ctxt: *mut ::std::os::raw::c_void,
8927 string: *mut ::std::os::raw::c_char,
8928 ),
8929 >,
8930 pub freeResult: ::std::option::Option<
8931 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, result: *mut BNTypeParserResult),
8932 >,
8933 pub freeErrorList: ::std::option::Option<
8934 unsafe extern "C" fn(
8935 ctxt: *mut ::std::os::raw::c_void,
8936 errors: *mut BNTypeParserError,
8937 errorCount: usize,
8938 ),
8939 >,
8940}
8941#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8942const _: () = {
8943 ["Size of BNTypeParserCallbacks"][::std::mem::size_of::<BNTypeParserCallbacks>() - 64usize];
8944 ["Alignment of BNTypeParserCallbacks"]
8945 [::std::mem::align_of::<BNTypeParserCallbacks>() - 8usize];
8946 ["Offset of field: BNTypeParserCallbacks::context"]
8947 [::std::mem::offset_of!(BNTypeParserCallbacks, context) - 0usize];
8948 ["Offset of field: BNTypeParserCallbacks::getOptionText"]
8949 [::std::mem::offset_of!(BNTypeParserCallbacks, getOptionText) - 8usize];
8950 ["Offset of field: BNTypeParserCallbacks::preprocessSource"]
8951 [::std::mem::offset_of!(BNTypeParserCallbacks, preprocessSource) - 16usize];
8952 ["Offset of field: BNTypeParserCallbacks::parseTypesFromSource"]
8953 [::std::mem::offset_of!(BNTypeParserCallbacks, parseTypesFromSource) - 24usize];
8954 ["Offset of field: BNTypeParserCallbacks::parseTypeString"]
8955 [::std::mem::offset_of!(BNTypeParserCallbacks, parseTypeString) - 32usize];
8956 ["Offset of field: BNTypeParserCallbacks::freeString"]
8957 [::std::mem::offset_of!(BNTypeParserCallbacks, freeString) - 40usize];
8958 ["Offset of field: BNTypeParserCallbacks::freeResult"]
8959 [::std::mem::offset_of!(BNTypeParserCallbacks, freeResult) - 48usize];
8960 ["Offset of field: BNTypeParserCallbacks::freeErrorList"]
8961 [::std::mem::offset_of!(BNTypeParserCallbacks, freeErrorList) - 56usize];
8962};
8963impl Default for BNTypeParserCallbacks {
8964 fn default() -> Self {
8965 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8966 unsafe {
8967 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8968 s.assume_init()
8969 }
8970 }
8971}
8972#[repr(C)]
8973#[derive(Debug, Copy, Clone)]
8974pub struct BNTypePrinterCallbacks {
8975 pub context: *mut ::std::os::raw::c_void,
8976 pub getTypeTokens: ::std::option::Option<
8977 unsafe extern "C" fn(
8978 ctxt: *mut ::std::os::raw::c_void,
8979 type_: *mut BNType,
8980 platform: *mut BNPlatform,
8981 name: *mut BNQualifiedName,
8982 baseConfidence: u8,
8983 escaping: BNTokenEscapingType,
8984 result: *mut *mut BNInstructionTextToken,
8985 resultCount: *mut usize,
8986 ) -> bool,
8987 >,
8988 pub getTypeTokensBeforeName: ::std::option::Option<
8989 unsafe extern "C" fn(
8990 ctxt: *mut ::std::os::raw::c_void,
8991 type_: *mut BNType,
8992 platform: *mut BNPlatform,
8993 baseConfidence: u8,
8994 parentType: *mut BNType,
8995 escaping: BNTokenEscapingType,
8996 result: *mut *mut BNInstructionTextToken,
8997 resultCount: *mut usize,
8998 ) -> bool,
8999 >,
9000 pub getTypeTokensAfterName: ::std::option::Option<
9001 unsafe extern "C" fn(
9002 ctxt: *mut ::std::os::raw::c_void,
9003 type_: *mut BNType,
9004 platform: *mut BNPlatform,
9005 baseConfidence: u8,
9006 parentType: *mut BNType,
9007 escaping: BNTokenEscapingType,
9008 result: *mut *mut BNInstructionTextToken,
9009 resultCount: *mut usize,
9010 ) -> bool,
9011 >,
9012 pub getTypeString: ::std::option::Option<
9013 unsafe extern "C" fn(
9014 ctxt: *mut ::std::os::raw::c_void,
9015 type_: *mut BNType,
9016 platform: *mut BNPlatform,
9017 name: *mut BNQualifiedName,
9018 escaping: BNTokenEscapingType,
9019 result: *mut *mut ::std::os::raw::c_char,
9020 ) -> bool,
9021 >,
9022 pub getTypeStringBeforeName: ::std::option::Option<
9023 unsafe extern "C" fn(
9024 ctxt: *mut ::std::os::raw::c_void,
9025 type_: *mut BNType,
9026 platform: *mut BNPlatform,
9027 escaping: BNTokenEscapingType,
9028 result: *mut *mut ::std::os::raw::c_char,
9029 ) -> bool,
9030 >,
9031 pub getTypeStringAfterName: ::std::option::Option<
9032 unsafe extern "C" fn(
9033 ctxt: *mut ::std::os::raw::c_void,
9034 type_: *mut BNType,
9035 platform: *mut BNPlatform,
9036 escaping: BNTokenEscapingType,
9037 result: *mut *mut ::std::os::raw::c_char,
9038 ) -> bool,
9039 >,
9040 pub getTypeLines: ::std::option::Option<
9041 unsafe extern "C" fn(
9042 ctxt: *mut ::std::os::raw::c_void,
9043 type_: *mut BNType,
9044 types: *mut BNTypeContainer,
9045 name: *mut BNQualifiedName,
9046 paddingCols: ::std::os::raw::c_int,
9047 collapsed: bool,
9048 escaping: BNTokenEscapingType,
9049 result: *mut *mut BNTypeDefinitionLine,
9050 resultCount: *mut usize,
9051 ) -> bool,
9052 >,
9053 pub printAllTypes: ::std::option::Option<
9054 unsafe extern "C" fn(
9055 ctxt: *mut ::std::os::raw::c_void,
9056 names: *mut BNQualifiedName,
9057 types: *mut *mut BNType,
9058 typeCount: usize,
9059 data: *mut BNBinaryView,
9060 paddingCols: ::std::os::raw::c_int,
9061 escaping: BNTokenEscapingType,
9062 result: *mut *mut ::std::os::raw::c_char,
9063 ) -> bool,
9064 >,
9065 pub freeTokens: ::std::option::Option<
9066 unsafe extern "C" fn(
9067 ctxt: *mut ::std::os::raw::c_void,
9068 tokens: *mut BNInstructionTextToken,
9069 count: usize,
9070 ),
9071 >,
9072 pub freeString: ::std::option::Option<
9073 unsafe extern "C" fn(
9074 ctxt: *mut ::std::os::raw::c_void,
9075 string: *mut ::std::os::raw::c_char,
9076 ),
9077 >,
9078 pub freeLines: ::std::option::Option<
9079 unsafe extern "C" fn(
9080 ctxt: *mut ::std::os::raw::c_void,
9081 lines: *mut BNTypeDefinitionLine,
9082 count: usize,
9083 ),
9084 >,
9085}
9086#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9087const _: () = {
9088 ["Size of BNTypePrinterCallbacks"][::std::mem::size_of::<BNTypePrinterCallbacks>() - 96usize];
9089 ["Alignment of BNTypePrinterCallbacks"]
9090 [::std::mem::align_of::<BNTypePrinterCallbacks>() - 8usize];
9091 ["Offset of field: BNTypePrinterCallbacks::context"]
9092 [::std::mem::offset_of!(BNTypePrinterCallbacks, context) - 0usize];
9093 ["Offset of field: BNTypePrinterCallbacks::getTypeTokens"]
9094 [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeTokens) - 8usize];
9095 ["Offset of field: BNTypePrinterCallbacks::getTypeTokensBeforeName"]
9096 [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeTokensBeforeName) - 16usize];
9097 ["Offset of field: BNTypePrinterCallbacks::getTypeTokensAfterName"]
9098 [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeTokensAfterName) - 24usize];
9099 ["Offset of field: BNTypePrinterCallbacks::getTypeString"]
9100 [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeString) - 32usize];
9101 ["Offset of field: BNTypePrinterCallbacks::getTypeStringBeforeName"]
9102 [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeStringBeforeName) - 40usize];
9103 ["Offset of field: BNTypePrinterCallbacks::getTypeStringAfterName"]
9104 [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeStringAfterName) - 48usize];
9105 ["Offset of field: BNTypePrinterCallbacks::getTypeLines"]
9106 [::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeLines) - 56usize];
9107 ["Offset of field: BNTypePrinterCallbacks::printAllTypes"]
9108 [::std::mem::offset_of!(BNTypePrinterCallbacks, printAllTypes) - 64usize];
9109 ["Offset of field: BNTypePrinterCallbacks::freeTokens"]
9110 [::std::mem::offset_of!(BNTypePrinterCallbacks, freeTokens) - 72usize];
9111 ["Offset of field: BNTypePrinterCallbacks::freeString"]
9112 [::std::mem::offset_of!(BNTypePrinterCallbacks, freeString) - 80usize];
9113 ["Offset of field: BNTypePrinterCallbacks::freeLines"]
9114 [::std::mem::offset_of!(BNTypePrinterCallbacks, freeLines) - 88usize];
9115};
9116impl Default for BNTypePrinterCallbacks {
9117 fn default() -> Self {
9118 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9119 unsafe {
9120 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9121 s.assume_init()
9122 }
9123 }
9124}
9125#[repr(C)]
9126#[derive(Debug, Default, Copy, Clone)]
9127pub struct BNConstantReference {
9128 pub value: i64,
9129 pub size: usize,
9130 pub pointer: bool,
9131 pub intermediate: bool,
9132}
9133#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9134const _: () = {
9135 ["Size of BNConstantReference"][::std::mem::size_of::<BNConstantReference>() - 24usize];
9136 ["Alignment of BNConstantReference"][::std::mem::align_of::<BNConstantReference>() - 8usize];
9137 ["Offset of field: BNConstantReference::value"]
9138 [::std::mem::offset_of!(BNConstantReference, value) - 0usize];
9139 ["Offset of field: BNConstantReference::size"]
9140 [::std::mem::offset_of!(BNConstantReference, size) - 8usize];
9141 ["Offset of field: BNConstantReference::pointer"]
9142 [::std::mem::offset_of!(BNConstantReference, pointer) - 16usize];
9143 ["Offset of field: BNConstantReference::intermediate"]
9144 [::std::mem::offset_of!(BNConstantReference, intermediate) - 17usize];
9145};
9146#[repr(C)]
9147#[derive(Debug, Copy, Clone)]
9148pub struct BNMetadataValueStore {
9149 pub size: usize,
9150 pub keys: *mut *mut ::std::os::raw::c_char,
9151 pub values: *mut *mut BNMetadata,
9152}
9153#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9154const _: () = {
9155 ["Size of BNMetadataValueStore"][::std::mem::size_of::<BNMetadataValueStore>() - 24usize];
9156 ["Alignment of BNMetadataValueStore"][::std::mem::align_of::<BNMetadataValueStore>() - 8usize];
9157 ["Offset of field: BNMetadataValueStore::size"]
9158 [::std::mem::offset_of!(BNMetadataValueStore, size) - 0usize];
9159 ["Offset of field: BNMetadataValueStore::keys"]
9160 [::std::mem::offset_of!(BNMetadataValueStore, keys) - 8usize];
9161 ["Offset of field: BNMetadataValueStore::values"]
9162 [::std::mem::offset_of!(BNMetadataValueStore, values) - 16usize];
9163};
9164impl Default for BNMetadataValueStore {
9165 fn default() -> Self {
9166 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9167 unsafe {
9168 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9169 s.assume_init()
9170 }
9171 }
9172}
9173#[repr(u8)]
9174#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9175pub enum BNSaveOption {
9176 RemoveUndoData = 0,
9177 TrimSnapshots = 1,
9178 PurgeOriginalFilenamePath = 2,
9179}
9180#[repr(u8)]
9181#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9182pub enum BNMessageBoxIcon {
9183 InformationIcon = 0,
9184 QuestionIcon = 1,
9185 WarningIcon = 2,
9186 ErrorIcon = 3,
9187}
9188#[repr(u8)]
9189#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9190pub enum BNMessageBoxButtonSet {
9191 OKButtonSet = 0,
9192 YesNoButtonSet = 1,
9193 YesNoCancelButtonSet = 2,
9194}
9195#[repr(u8)]
9196#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9197pub enum BNMessageBoxButtonResult {
9198 NoButton = 0,
9199 YesButton = 1,
9200 OKButton = 2,
9201 CancelButton = 3,
9202}
9203#[repr(u8)]
9204#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9205pub enum BNFormInputFieldType {
9206 LabelFormField = 0,
9207 SeparatorFormField = 1,
9208 TextLineFormField = 2,
9209 MultilineTextFormField = 3,
9210 IntegerFormField = 4,
9211 AddressFormField = 5,
9212 ChoiceFormField = 6,
9213 OpenFileNameFormField = 7,
9214 SaveFileNameFormField = 8,
9215 DirectoryNameFormField = 9,
9216 CheckboxFormField = 10,
9217}
9218#[repr(C)]
9219#[derive(Debug, Copy, Clone)]
9220pub struct BNFormInputField {
9221 pub type_: BNFormInputFieldType,
9222 pub prompt: *const ::std::os::raw::c_char,
9223 #[doc = " For AddressFormField"]
9224 pub view: *mut BNBinaryView,
9225 #[doc = " For AddressFormField"]
9226 pub currentAddress: u64,
9227 #[doc = " For ChoiceFormField"]
9228 pub choices: *mut *const ::std::os::raw::c_char,
9229 #[doc = " For ChoiceFormField"]
9230 pub count: usize,
9231 #[doc = " For OpenFileNameFormField, SaveFileNameFormField"]
9232 pub ext: *const ::std::os::raw::c_char,
9233 #[doc = " For SaveFileNameFormField"]
9234 pub defaultName: *const ::std::os::raw::c_char,
9235 pub intResult: i64,
9236 pub addressResult: u64,
9237 pub stringResult: *mut ::std::os::raw::c_char,
9238 pub indexResult: usize,
9239 pub hasDefault: bool,
9240 pub intDefault: i64,
9241 pub addressDefault: u64,
9242 pub stringDefault: *const ::std::os::raw::c_char,
9243 pub indexDefault: usize,
9244}
9245#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9246const _: () = {
9247 ["Size of BNFormInputField"][::std::mem::size_of::<BNFormInputField>() - 136usize];
9248 ["Alignment of BNFormInputField"][::std::mem::align_of::<BNFormInputField>() - 8usize];
9249 ["Offset of field: BNFormInputField::type_"]
9250 [::std::mem::offset_of!(BNFormInputField, type_) - 0usize];
9251 ["Offset of field: BNFormInputField::prompt"]
9252 [::std::mem::offset_of!(BNFormInputField, prompt) - 8usize];
9253 ["Offset of field: BNFormInputField::view"]
9254 [::std::mem::offset_of!(BNFormInputField, view) - 16usize];
9255 ["Offset of field: BNFormInputField::currentAddress"]
9256 [::std::mem::offset_of!(BNFormInputField, currentAddress) - 24usize];
9257 ["Offset of field: BNFormInputField::choices"]
9258 [::std::mem::offset_of!(BNFormInputField, choices) - 32usize];
9259 ["Offset of field: BNFormInputField::count"]
9260 [::std::mem::offset_of!(BNFormInputField, count) - 40usize];
9261 ["Offset of field: BNFormInputField::ext"]
9262 [::std::mem::offset_of!(BNFormInputField, ext) - 48usize];
9263 ["Offset of field: BNFormInputField::defaultName"]
9264 [::std::mem::offset_of!(BNFormInputField, defaultName) - 56usize];
9265 ["Offset of field: BNFormInputField::intResult"]
9266 [::std::mem::offset_of!(BNFormInputField, intResult) - 64usize];
9267 ["Offset of field: BNFormInputField::addressResult"]
9268 [::std::mem::offset_of!(BNFormInputField, addressResult) - 72usize];
9269 ["Offset of field: BNFormInputField::stringResult"]
9270 [::std::mem::offset_of!(BNFormInputField, stringResult) - 80usize];
9271 ["Offset of field: BNFormInputField::indexResult"]
9272 [::std::mem::offset_of!(BNFormInputField, indexResult) - 88usize];
9273 ["Offset of field: BNFormInputField::hasDefault"]
9274 [::std::mem::offset_of!(BNFormInputField, hasDefault) - 96usize];
9275 ["Offset of field: BNFormInputField::intDefault"]
9276 [::std::mem::offset_of!(BNFormInputField, intDefault) - 104usize];
9277 ["Offset of field: BNFormInputField::addressDefault"]
9278 [::std::mem::offset_of!(BNFormInputField, addressDefault) - 112usize];
9279 ["Offset of field: BNFormInputField::stringDefault"]
9280 [::std::mem::offset_of!(BNFormInputField, stringDefault) - 120usize];
9281 ["Offset of field: BNFormInputField::indexDefault"]
9282 [::std::mem::offset_of!(BNFormInputField, indexDefault) - 128usize];
9283};
9284impl Default for BNFormInputField {
9285 fn default() -> Self {
9286 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9287 unsafe {
9288 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9289 s.assume_init()
9290 }
9291 }
9292}
9293#[repr(C)]
9294#[derive(Debug, Copy, Clone)]
9295pub struct BNInteractionHandlerCallbacks {
9296 pub context: *mut ::std::os::raw::c_void,
9297 pub showPlainTextReport: ::std::option::Option<
9298 unsafe extern "C" fn(
9299 ctxt: *mut ::std::os::raw::c_void,
9300 view: *mut BNBinaryView,
9301 title: *const ::std::os::raw::c_char,
9302 contents: *const ::std::os::raw::c_char,
9303 ),
9304 >,
9305 pub showMarkdownReport: ::std::option::Option<
9306 unsafe extern "C" fn(
9307 ctxt: *mut ::std::os::raw::c_void,
9308 view: *mut BNBinaryView,
9309 title: *const ::std::os::raw::c_char,
9310 contents: *const ::std::os::raw::c_char,
9311 plaintext: *const ::std::os::raw::c_char,
9312 ),
9313 >,
9314 pub showHTMLReport: ::std::option::Option<
9315 unsafe extern "C" fn(
9316 ctxt: *mut ::std::os::raw::c_void,
9317 view: *mut BNBinaryView,
9318 title: *const ::std::os::raw::c_char,
9319 contents: *const ::std::os::raw::c_char,
9320 plaintext: *const ::std::os::raw::c_char,
9321 ),
9322 >,
9323 pub showGraphReport: ::std::option::Option<
9324 unsafe extern "C" fn(
9325 ctxt: *mut ::std::os::raw::c_void,
9326 view: *mut BNBinaryView,
9327 title: *const ::std::os::raw::c_char,
9328 graph: *mut BNFlowGraph,
9329 ),
9330 >,
9331 pub showReportCollection: ::std::option::Option<
9332 unsafe extern "C" fn(
9333 ctxt: *mut ::std::os::raw::c_void,
9334 title: *const ::std::os::raw::c_char,
9335 reports: *mut BNReportCollection,
9336 ),
9337 >,
9338 pub getTextLineInput: ::std::option::Option<
9339 unsafe extern "C" fn(
9340 ctxt: *mut ::std::os::raw::c_void,
9341 result: *mut *mut ::std::os::raw::c_char,
9342 prompt: *const ::std::os::raw::c_char,
9343 title: *const ::std::os::raw::c_char,
9344 ) -> bool,
9345 >,
9346 pub getIntegerInput: ::std::option::Option<
9347 unsafe extern "C" fn(
9348 ctxt: *mut ::std::os::raw::c_void,
9349 result: *mut i64,
9350 prompt: *const ::std::os::raw::c_char,
9351 title: *const ::std::os::raw::c_char,
9352 ) -> bool,
9353 >,
9354 pub getAddressInput: ::std::option::Option<
9355 unsafe extern "C" fn(
9356 ctxt: *mut ::std::os::raw::c_void,
9357 result: *mut u64,
9358 prompt: *const ::std::os::raw::c_char,
9359 title: *const ::std::os::raw::c_char,
9360 view: *mut BNBinaryView,
9361 currentAddr: u64,
9362 ) -> bool,
9363 >,
9364 pub getChoiceInput: ::std::option::Option<
9365 unsafe extern "C" fn(
9366 ctxt: *mut ::std::os::raw::c_void,
9367 result: *mut usize,
9368 prompt: *const ::std::os::raw::c_char,
9369 title: *const ::std::os::raw::c_char,
9370 choices: *mut *const ::std::os::raw::c_char,
9371 count: usize,
9372 ) -> bool,
9373 >,
9374 pub getLargeChoiceInput: ::std::option::Option<
9375 unsafe extern "C" fn(
9376 ctxt: *mut ::std::os::raw::c_void,
9377 result: *mut usize,
9378 prompt: *const ::std::os::raw::c_char,
9379 title: *const ::std::os::raw::c_char,
9380 choices: *mut *const ::std::os::raw::c_char,
9381 count: usize,
9382 ) -> bool,
9383 >,
9384 pub getOpenFileNameInput: ::std::option::Option<
9385 unsafe extern "C" fn(
9386 ctxt: *mut ::std::os::raw::c_void,
9387 result: *mut *mut ::std::os::raw::c_char,
9388 prompt: *const ::std::os::raw::c_char,
9389 ext: *const ::std::os::raw::c_char,
9390 ) -> bool,
9391 >,
9392 pub getSaveFileNameInput: ::std::option::Option<
9393 unsafe extern "C" fn(
9394 ctxt: *mut ::std::os::raw::c_void,
9395 result: *mut *mut ::std::os::raw::c_char,
9396 prompt: *const ::std::os::raw::c_char,
9397 ext: *const ::std::os::raw::c_char,
9398 defaultName: *const ::std::os::raw::c_char,
9399 ) -> bool,
9400 >,
9401 pub getDirectoryNameInput: ::std::option::Option<
9402 unsafe extern "C" fn(
9403 ctxt: *mut ::std::os::raw::c_void,
9404 result: *mut *mut ::std::os::raw::c_char,
9405 prompt: *const ::std::os::raw::c_char,
9406 defaultName: *const ::std::os::raw::c_char,
9407 ) -> bool,
9408 >,
9409 pub getCheckboxInput: ::std::option::Option<
9410 unsafe extern "C" fn(
9411 ctxt: *mut ::std::os::raw::c_void,
9412 result: *mut i64,
9413 prompt: *const ::std::os::raw::c_char,
9414 title: *const ::std::os::raw::c_char,
9415 defaultChoice: *const i64,
9416 ) -> bool,
9417 >,
9418 pub getFormInput: ::std::option::Option<
9419 unsafe extern "C" fn(
9420 ctxt: *mut ::std::os::raw::c_void,
9421 fields: *mut BNFormInputField,
9422 count: usize,
9423 title: *const ::std::os::raw::c_char,
9424 ) -> bool,
9425 >,
9426 pub showMessageBox: ::std::option::Option<
9427 unsafe extern "C" fn(
9428 ctxt: *mut ::std::os::raw::c_void,
9429 title: *const ::std::os::raw::c_char,
9430 text: *const ::std::os::raw::c_char,
9431 buttons: BNMessageBoxButtonSet,
9432 icon: BNMessageBoxIcon,
9433 ) -> BNMessageBoxButtonResult,
9434 >,
9435 pub openUrl: ::std::option::Option<
9436 unsafe extern "C" fn(
9437 ctxt: *mut ::std::os::raw::c_void,
9438 url: *const ::std::os::raw::c_char,
9439 ) -> bool,
9440 >,
9441 pub runProgressDialog: ::std::option::Option<
9442 unsafe extern "C" fn(
9443 ctxt: *mut ::std::os::raw::c_void,
9444 title: *const ::std::os::raw::c_char,
9445 canCancel: bool,
9446 task: ::std::option::Option<
9447 unsafe extern "C" fn(
9448 taskCtxt: *mut ::std::os::raw::c_void,
9449 progress: BNProgressFunction,
9450 progressCtxt: *mut ::std::os::raw::c_void,
9451 ),
9452 >,
9453 taskCtxt: *mut ::std::os::raw::c_void,
9454 ) -> bool,
9455 >,
9456}
9457#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9458const _: () = {
9459 ["Size of BNInteractionHandlerCallbacks"]
9460 [::std::mem::size_of::<BNInteractionHandlerCallbacks>() - 152usize];
9461 ["Alignment of BNInteractionHandlerCallbacks"]
9462 [::std::mem::align_of::<BNInteractionHandlerCallbacks>() - 8usize];
9463 ["Offset of field: BNInteractionHandlerCallbacks::context"]
9464 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, context) - 0usize];
9465 ["Offset of field: BNInteractionHandlerCallbacks::showPlainTextReport"]
9466 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showPlainTextReport) - 8usize];
9467 ["Offset of field: BNInteractionHandlerCallbacks::showMarkdownReport"]
9468 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showMarkdownReport) - 16usize];
9469 ["Offset of field: BNInteractionHandlerCallbacks::showHTMLReport"]
9470 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showHTMLReport) - 24usize];
9471 ["Offset of field: BNInteractionHandlerCallbacks::showGraphReport"]
9472 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showGraphReport) - 32usize];
9473 ["Offset of field: BNInteractionHandlerCallbacks::showReportCollection"]
9474 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showReportCollection) - 40usize];
9475 ["Offset of field: BNInteractionHandlerCallbacks::getTextLineInput"]
9476 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getTextLineInput) - 48usize];
9477 ["Offset of field: BNInteractionHandlerCallbacks::getIntegerInput"]
9478 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getIntegerInput) - 56usize];
9479 ["Offset of field: BNInteractionHandlerCallbacks::getAddressInput"]
9480 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getAddressInput) - 64usize];
9481 ["Offset of field: BNInteractionHandlerCallbacks::getChoiceInput"]
9482 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getChoiceInput) - 72usize];
9483 ["Offset of field: BNInteractionHandlerCallbacks::getLargeChoiceInput"]
9484 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getLargeChoiceInput) - 80usize];
9485 ["Offset of field: BNInteractionHandlerCallbacks::getOpenFileNameInput"]
9486 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getOpenFileNameInput) - 88usize];
9487 ["Offset of field: BNInteractionHandlerCallbacks::getSaveFileNameInput"]
9488 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getSaveFileNameInput) - 96usize];
9489 ["Offset of field: BNInteractionHandlerCallbacks::getDirectoryNameInput"]
9490 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getDirectoryNameInput) - 104usize];
9491 ["Offset of field: BNInteractionHandlerCallbacks::getCheckboxInput"]
9492 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getCheckboxInput) - 112usize];
9493 ["Offset of field: BNInteractionHandlerCallbacks::getFormInput"]
9494 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, getFormInput) - 120usize];
9495 ["Offset of field: BNInteractionHandlerCallbacks::showMessageBox"]
9496 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, showMessageBox) - 128usize];
9497 ["Offset of field: BNInteractionHandlerCallbacks::openUrl"]
9498 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, openUrl) - 136usize];
9499 ["Offset of field: BNInteractionHandlerCallbacks::runProgressDialog"]
9500 [::std::mem::offset_of!(BNInteractionHandlerCallbacks, runProgressDialog) - 144usize];
9501};
9502impl Default for BNInteractionHandlerCallbacks {
9503 fn default() -> Self {
9504 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9505 unsafe {
9506 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9507 s.assume_init()
9508 }
9509 }
9510}
9511#[repr(C)]
9512#[derive(Debug, Copy, Clone)]
9513pub struct BNObjectDestructionCallbacks {
9514 pub context: *mut ::std::os::raw::c_void,
9515 #[doc = " The provided pointers have a reference count of zero. Do not add additional references, doing so\n can lead to a double free. These are provided only for freeing additional state related to the\n objects passed."]
9516 pub destructBinaryView: ::std::option::Option<
9517 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
9518 >,
9519 pub destructFileMetadata: ::std::option::Option<
9520 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, file: *mut BNFileMetadata),
9521 >,
9522 pub destructFunction: ::std::option::Option<
9523 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, func: *mut BNFunction),
9524 >,
9525}
9526#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9527const _: () = {
9528 ["Size of BNObjectDestructionCallbacks"]
9529 [::std::mem::size_of::<BNObjectDestructionCallbacks>() - 32usize];
9530 ["Alignment of BNObjectDestructionCallbacks"]
9531 [::std::mem::align_of::<BNObjectDestructionCallbacks>() - 8usize];
9532 ["Offset of field: BNObjectDestructionCallbacks::context"]
9533 [::std::mem::offset_of!(BNObjectDestructionCallbacks, context) - 0usize];
9534 ["Offset of field: BNObjectDestructionCallbacks::destructBinaryView"]
9535 [::std::mem::offset_of!(BNObjectDestructionCallbacks, destructBinaryView) - 8usize];
9536 ["Offset of field: BNObjectDestructionCallbacks::destructFileMetadata"]
9537 [::std::mem::offset_of!(BNObjectDestructionCallbacks, destructFileMetadata) - 16usize];
9538 ["Offset of field: BNObjectDestructionCallbacks::destructFunction"]
9539 [::std::mem::offset_of!(BNObjectDestructionCallbacks, destructFunction) - 24usize];
9540};
9541impl Default for BNObjectDestructionCallbacks {
9542 fn default() -> Self {
9543 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9544 unsafe {
9545 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9546 s.assume_init()
9547 }
9548 }
9549}
9550#[repr(C)]
9551#[derive(Debug, Copy, Clone)]
9552pub struct BNTypeContext {
9553 pub type_: *mut BNType,
9554 pub offset: usize,
9555}
9556#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9557const _: () = {
9558 ["Size of BNTypeContext"][::std::mem::size_of::<BNTypeContext>() - 16usize];
9559 ["Alignment of BNTypeContext"][::std::mem::align_of::<BNTypeContext>() - 8usize];
9560 ["Offset of field: BNTypeContext::type_"]
9561 [::std::mem::offset_of!(BNTypeContext, type_) - 0usize];
9562 ["Offset of field: BNTypeContext::offset"]
9563 [::std::mem::offset_of!(BNTypeContext, offset) - 8usize];
9564};
9565impl Default for BNTypeContext {
9566 fn default() -> Self {
9567 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9568 unsafe {
9569 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9570 s.assume_init()
9571 }
9572 }
9573}
9574#[repr(C)]
9575#[derive(Debug, Copy, Clone)]
9576pub struct BNCustomDataRenderer {
9577 pub context: *mut ::std::os::raw::c_void,
9578 pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
9579 pub isValidForData: ::std::option::Option<
9580 unsafe extern "C" fn(
9581 ctxt: *mut ::std::os::raw::c_void,
9582 view: *mut BNBinaryView,
9583 addr: u64,
9584 type_: *mut BNType,
9585 typeCtx: *mut BNTypeContext,
9586 ctxCount: usize,
9587 ) -> bool,
9588 >,
9589 pub getLinesForData: ::std::option::Option<
9590 unsafe extern "C" fn(
9591 ctxt: *mut ::std::os::raw::c_void,
9592 view: *mut BNBinaryView,
9593 addr: u64,
9594 type_: *mut BNType,
9595 prefix: *const BNInstructionTextToken,
9596 prefixCount: usize,
9597 width: usize,
9598 count: *mut usize,
9599 typeCtx: *mut BNTypeContext,
9600 ctxCount: usize,
9601 language: *const ::std::os::raw::c_char,
9602 ) -> *mut BNDisassemblyTextLine,
9603 >,
9604 pub freeLines: ::std::option::Option<
9605 unsafe extern "C" fn(
9606 ctx: *mut ::std::os::raw::c_void,
9607 lines: *mut BNDisassemblyTextLine,
9608 count: usize,
9609 ),
9610 >,
9611}
9612#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9613const _: () = {
9614 ["Size of BNCustomDataRenderer"][::std::mem::size_of::<BNCustomDataRenderer>() - 40usize];
9615 ["Alignment of BNCustomDataRenderer"][::std::mem::align_of::<BNCustomDataRenderer>() - 8usize];
9616 ["Offset of field: BNCustomDataRenderer::context"]
9617 [::std::mem::offset_of!(BNCustomDataRenderer, context) - 0usize];
9618 ["Offset of field: BNCustomDataRenderer::freeObject"]
9619 [::std::mem::offset_of!(BNCustomDataRenderer, freeObject) - 8usize];
9620 ["Offset of field: BNCustomDataRenderer::isValidForData"]
9621 [::std::mem::offset_of!(BNCustomDataRenderer, isValidForData) - 16usize];
9622 ["Offset of field: BNCustomDataRenderer::getLinesForData"]
9623 [::std::mem::offset_of!(BNCustomDataRenderer, getLinesForData) - 24usize];
9624 ["Offset of field: BNCustomDataRenderer::freeLines"]
9625 [::std::mem::offset_of!(BNCustomDataRenderer, freeLines) - 32usize];
9626};
9627impl Default for BNCustomDataRenderer {
9628 fn default() -> Self {
9629 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9630 unsafe {
9631 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9632 s.assume_init()
9633 }
9634 }
9635}
9636#[repr(u8)]
9637#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9638pub enum BNSectionSemantics {
9639 DefaultSectionSemantics = 0,
9640 ReadOnlyCodeSectionSemantics = 1,
9641 ReadOnlyDataSectionSemantics = 2,
9642 ReadWriteDataSectionSemantics = 3,
9643 ExternalSectionSemantics = 4,
9644}
9645#[repr(C)]
9646#[derive(Debug, Default, Copy, Clone)]
9647pub struct BNAddressRange {
9648 pub start: u64,
9649 pub end: u64,
9650}
9651#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9652const _: () = {
9653 ["Size of BNAddressRange"][::std::mem::size_of::<BNAddressRange>() - 16usize];
9654 ["Alignment of BNAddressRange"][::std::mem::align_of::<BNAddressRange>() - 8usize];
9655 ["Offset of field: BNAddressRange::start"]
9656 [::std::mem::offset_of!(BNAddressRange, start) - 0usize];
9657 ["Offset of field: BNAddressRange::end"][::std::mem::offset_of!(BNAddressRange, end) - 8usize];
9658};
9659#[repr(C)]
9660#[derive(Debug, Copy, Clone)]
9661pub struct BNSystemCallInfo {
9662 pub number: u32,
9663 pub name: BNQualifiedName,
9664 pub type_: *mut BNType,
9665}
9666#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9667const _: () = {
9668 ["Size of BNSystemCallInfo"][::std::mem::size_of::<BNSystemCallInfo>() - 40usize];
9669 ["Alignment of BNSystemCallInfo"][::std::mem::align_of::<BNSystemCallInfo>() - 8usize];
9670 ["Offset of field: BNSystemCallInfo::number"]
9671 [::std::mem::offset_of!(BNSystemCallInfo, number) - 0usize];
9672 ["Offset of field: BNSystemCallInfo::name"]
9673 [::std::mem::offset_of!(BNSystemCallInfo, name) - 8usize];
9674 ["Offset of field: BNSystemCallInfo::type_"]
9675 [::std::mem::offset_of!(BNSystemCallInfo, type_) - 32usize];
9676};
9677impl Default for BNSystemCallInfo {
9678 fn default() -> Self {
9679 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9680 unsafe {
9681 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9682 s.assume_init()
9683 }
9684 }
9685}
9686#[repr(u8)]
9687#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9688pub enum BNILBranchDependence {
9689 NotBranchDependent = 0,
9690 TrueBranchDependent = 1,
9691 FalseBranchDependent = 2,
9692}
9693#[repr(C)]
9694#[derive(Debug, Copy, Clone)]
9695pub struct BNILBranchInstructionAndDependence {
9696 pub branch: usize,
9697 pub dependence: BNILBranchDependence,
9698}
9699#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9700const _: () = {
9701 ["Size of BNILBranchInstructionAndDependence"]
9702 [::std::mem::size_of::<BNILBranchInstructionAndDependence>() - 16usize];
9703 ["Alignment of BNILBranchInstructionAndDependence"]
9704 [::std::mem::align_of::<BNILBranchInstructionAndDependence>() - 8usize];
9705 ["Offset of field: BNILBranchInstructionAndDependence::branch"]
9706 [::std::mem::offset_of!(BNILBranchInstructionAndDependence, branch) - 0usize];
9707 ["Offset of field: BNILBranchInstructionAndDependence::dependence"]
9708 [::std::mem::offset_of!(BNILBranchInstructionAndDependence, dependence) - 8usize];
9709};
9710impl Default for BNILBranchInstructionAndDependence {
9711 fn default() -> Self {
9712 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9713 unsafe {
9714 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9715 s.assume_init()
9716 }
9717 }
9718}
9719#[repr(C)]
9720#[derive(Debug, Copy, Clone)]
9721pub struct BNPerformanceInfo {
9722 pub name: *mut ::std::os::raw::c_char,
9723 pub seconds: f64,
9724}
9725#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9726const _: () = {
9727 ["Size of BNPerformanceInfo"][::std::mem::size_of::<BNPerformanceInfo>() - 16usize];
9728 ["Alignment of BNPerformanceInfo"][::std::mem::align_of::<BNPerformanceInfo>() - 8usize];
9729 ["Offset of field: BNPerformanceInfo::name"]
9730 [::std::mem::offset_of!(BNPerformanceInfo, name) - 0usize];
9731 ["Offset of field: BNPerformanceInfo::seconds"]
9732 [::std::mem::offset_of!(BNPerformanceInfo, seconds) - 8usize];
9733};
9734impl Default for BNPerformanceInfo {
9735 fn default() -> Self {
9736 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9737 unsafe {
9738 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9739 s.assume_init()
9740 }
9741 }
9742}
9743#[repr(C)]
9744#[derive(Debug, Copy, Clone)]
9745pub struct BNStatHistogram {
9746 pub name: *mut ::std::os::raw::c_char,
9747 pub total: u64,
9748 pub buckets: [u64; 65usize],
9749}
9750#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9751const _: () = {
9752 ["Size of BNStatHistogram"][::std::mem::size_of::<BNStatHistogram>() - 536usize];
9753 ["Alignment of BNStatHistogram"][::std::mem::align_of::<BNStatHistogram>() - 8usize];
9754 ["Offset of field: BNStatHistogram::name"]
9755 [::std::mem::offset_of!(BNStatHistogram, name) - 0usize];
9756 ["Offset of field: BNStatHistogram::total"]
9757 [::std::mem::offset_of!(BNStatHistogram, total) - 8usize];
9758 ["Offset of field: BNStatHistogram::buckets"]
9759 [::std::mem::offset_of!(BNStatHistogram, buckets) - 16usize];
9760};
9761impl Default for BNStatHistogram {
9762 fn default() -> Self {
9763 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9764 unsafe {
9765 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9766 s.assume_init()
9767 }
9768 }
9769}
9770#[repr(C)]
9771#[derive(Debug, Copy, Clone)]
9772pub struct BNMemoryUsageInfo {
9773 pub name: *mut ::std::os::raw::c_char,
9774 pub value: u64,
9775}
9776#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9777const _: () = {
9778 ["Size of BNMemoryUsageInfo"][::std::mem::size_of::<BNMemoryUsageInfo>() - 16usize];
9779 ["Alignment of BNMemoryUsageInfo"][::std::mem::align_of::<BNMemoryUsageInfo>() - 8usize];
9780 ["Offset of field: BNMemoryUsageInfo::name"]
9781 [::std::mem::offset_of!(BNMemoryUsageInfo, name) - 0usize];
9782 ["Offset of field: BNMemoryUsageInfo::value"]
9783 [::std::mem::offset_of!(BNMemoryUsageInfo, value) - 8usize];
9784};
9785impl Default for BNMemoryUsageInfo {
9786 fn default() -> Self {
9787 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9788 unsafe {
9789 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9790 s.assume_init()
9791 }
9792 }
9793}
9794#[repr(u8)]
9795#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9796pub enum BNMetadataType {
9797 InvalidDataType = 0,
9798 BooleanDataType = 1,
9799 StringDataType = 2,
9800 UnsignedIntegerDataType = 3,
9801 SignedIntegerDataType = 4,
9802 DoubleDataType = 5,
9803 RawDataType = 6,
9804 KeyValueDataType = 7,
9805 ArrayDataType = 8,
9806}
9807impl BNMetadataStoreFlag {
9808 #[doc = " The value is kept in memory for this session only."]
9809 pub const MetadataStoreEphemeral: BNMetadataStoreFlag = BNMetadataStoreFlag(0);
9810 #[doc = " Serialize the value into the BNDB snapshot so it survives reload."]
9811 pub const MetadataStorePersistent: BNMetadataStoreFlag = BNMetadataStoreFlag(1);
9812 #[doc = " Mark the file as analysis-changed (drives the \"dirty\" indicator). Set this for\n genuine user-visible edits. Leave it clear when caching re-derivable data."]
9813 pub const MetadataStoreMarksAnalysisChanged: BNMetadataStoreFlag = BNMetadataStoreFlag(2);
9814}
9815impl ::std::ops::BitOr<BNMetadataStoreFlag> for BNMetadataStoreFlag {
9816 type Output = Self;
9817 #[inline]
9818 fn bitor(self, other: Self) -> Self {
9819 BNMetadataStoreFlag(self.0 | other.0)
9820 }
9821}
9822impl ::std::ops::BitOrAssign for BNMetadataStoreFlag {
9823 #[inline]
9824 fn bitor_assign(&mut self, rhs: BNMetadataStoreFlag) {
9825 self.0 |= rhs.0;
9826 }
9827}
9828impl ::std::ops::BitAnd<BNMetadataStoreFlag> for BNMetadataStoreFlag {
9829 type Output = Self;
9830 #[inline]
9831 fn bitand(self, other: Self) -> Self {
9832 BNMetadataStoreFlag(self.0 & other.0)
9833 }
9834}
9835impl ::std::ops::BitAndAssign for BNMetadataStoreFlag {
9836 #[inline]
9837 fn bitand_assign(&mut self, rhs: BNMetadataStoreFlag) {
9838 self.0 &= rhs.0;
9839 }
9840}
9841#[repr(transparent)]
9842#[doc = " Controls how a metadata write behaves on a BinaryView or Function."]
9843#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9844pub struct BNMetadataStoreFlag(pub u8);
9845#[repr(C)]
9846#[derive(Debug, Default, Copy, Clone)]
9847pub struct BNRegisterStackAdjustment {
9848 pub regStack: u32,
9849 pub adjustment: i32,
9850 pub confidence: u8,
9851}
9852#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9853const _: () = {
9854 ["Size of BNRegisterStackAdjustment"]
9855 [::std::mem::size_of::<BNRegisterStackAdjustment>() - 12usize];
9856 ["Alignment of BNRegisterStackAdjustment"]
9857 [::std::mem::align_of::<BNRegisterStackAdjustment>() - 4usize];
9858 ["Offset of field: BNRegisterStackAdjustment::regStack"]
9859 [::std::mem::offset_of!(BNRegisterStackAdjustment, regStack) - 0usize];
9860 ["Offset of field: BNRegisterStackAdjustment::adjustment"]
9861 [::std::mem::offset_of!(BNRegisterStackAdjustment, adjustment) - 4usize];
9862 ["Offset of field: BNRegisterStackAdjustment::confidence"]
9863 [::std::mem::offset_of!(BNRegisterStackAdjustment, confidence) - 8usize];
9864};
9865#[repr(u8)]
9866#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9867pub enum BNReportType {
9868 PlainTextReportType = 0,
9869 MarkdownReportType = 1,
9870 HTMLReportType = 2,
9871 FlowGraphReportType = 3,
9872}
9873#[repr(C)]
9874#[derive(Debug, Copy, Clone)]
9875pub struct BNCustomFlowGraph {
9876 pub context: *mut ::std::os::raw::c_void,
9877 pub prepareForLayout:
9878 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
9879 pub populateNodes:
9880 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
9881 pub completeLayout:
9882 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
9883 pub update: ::std::option::Option<
9884 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNFlowGraph,
9885 >,
9886 pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
9887 pub externalRefTaken:
9888 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
9889 pub externalRefReleased:
9890 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
9891}
9892#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9893const _: () = {
9894 ["Size of BNCustomFlowGraph"][::std::mem::size_of::<BNCustomFlowGraph>() - 64usize];
9895 ["Alignment of BNCustomFlowGraph"][::std::mem::align_of::<BNCustomFlowGraph>() - 8usize];
9896 ["Offset of field: BNCustomFlowGraph::context"]
9897 [::std::mem::offset_of!(BNCustomFlowGraph, context) - 0usize];
9898 ["Offset of field: BNCustomFlowGraph::prepareForLayout"]
9899 [::std::mem::offset_of!(BNCustomFlowGraph, prepareForLayout) - 8usize];
9900 ["Offset of field: BNCustomFlowGraph::populateNodes"]
9901 [::std::mem::offset_of!(BNCustomFlowGraph, populateNodes) - 16usize];
9902 ["Offset of field: BNCustomFlowGraph::completeLayout"]
9903 [::std::mem::offset_of!(BNCustomFlowGraph, completeLayout) - 24usize];
9904 ["Offset of field: BNCustomFlowGraph::update"]
9905 [::std::mem::offset_of!(BNCustomFlowGraph, update) - 32usize];
9906 ["Offset of field: BNCustomFlowGraph::freeObject"]
9907 [::std::mem::offset_of!(BNCustomFlowGraph, freeObject) - 40usize];
9908 ["Offset of field: BNCustomFlowGraph::externalRefTaken"]
9909 [::std::mem::offset_of!(BNCustomFlowGraph, externalRefTaken) - 48usize];
9910 ["Offset of field: BNCustomFlowGraph::externalRefReleased"]
9911 [::std::mem::offset_of!(BNCustomFlowGraph, externalRefReleased) - 56usize];
9912};
9913impl Default for BNCustomFlowGraph {
9914 fn default() -> Self {
9915 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9916 unsafe {
9917 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9918 s.assume_init()
9919 }
9920 }
9921}
9922#[repr(C)]
9923#[derive(Debug, Copy, Clone)]
9924pub struct BNCustomFlowGraphLayout {
9925 pub context: *mut ::std::os::raw::c_void,
9926 pub layout: ::std::option::Option<
9927 unsafe extern "C" fn(
9928 ctxt: *mut ::std::os::raw::c_void,
9929 graph: *mut BNFlowGraph,
9930 nodes: *mut *mut BNFlowGraphNode,
9931 nodeCount: usize,
9932 ) -> bool,
9933 >,
9934}
9935#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9936const _: () = {
9937 ["Size of BNCustomFlowGraphLayout"][::std::mem::size_of::<BNCustomFlowGraphLayout>() - 16usize];
9938 ["Alignment of BNCustomFlowGraphLayout"]
9939 [::std::mem::align_of::<BNCustomFlowGraphLayout>() - 8usize];
9940 ["Offset of field: BNCustomFlowGraphLayout::context"]
9941 [::std::mem::offset_of!(BNCustomFlowGraphLayout, context) - 0usize];
9942 ["Offset of field: BNCustomFlowGraphLayout::layout"]
9943 [::std::mem::offset_of!(BNCustomFlowGraphLayout, layout) - 8usize];
9944};
9945impl Default for BNCustomFlowGraphLayout {
9946 fn default() -> Self {
9947 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
9948 unsafe {
9949 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9950 s.assume_init()
9951 }
9952 }
9953}
9954#[repr(C)]
9955#[derive(Debug, Default, Copy, Clone)]
9956pub struct BNRange {
9957 pub start: u64,
9958 pub end: u64,
9959}
9960#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9961const _: () = {
9962 ["Size of BNRange"][::std::mem::size_of::<BNRange>() - 16usize];
9963 ["Alignment of BNRange"][::std::mem::align_of::<BNRange>() - 8usize];
9964 ["Offset of field: BNRange::start"][::std::mem::offset_of!(BNRange, start) - 0usize];
9965 ["Offset of field: BNRange::end"][::std::mem::offset_of!(BNRange, end) - 8usize];
9966};
9967#[repr(u8)]
9968#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9969pub enum BNAnalysisSkipReason {
9970 NoSkipReason = 0,
9971 AlwaysSkipReason = 1,
9972 ExceedFunctionSizeSkipReason = 2,
9973 ExceedFunctionAnalysisTimeSkipReason = 3,
9974 ExceedFunctionUpdateCountSkipReason = 4,
9975 NewAutoFunctionAnalysisSuppressedReason = 5,
9976 BasicAnalysisSkipReason = 6,
9977 IntermediateAnalysisSkipReason = 7,
9978 AnalysisPipelineSuspendedReason = 8,
9979}
9980#[repr(u8)]
9981#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9982pub enum BNSettingsScope {
9983 SettingsInvalidScope = 0,
9984 SettingsAutoScope = 1,
9985 SettingsDefaultScope = 2,
9986 SettingsUserScope = 4,
9987 SettingsProjectScope = 8,
9988 SettingsResourceScope = 16,
9989}
9990#[repr(u8)]
9991#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9992pub enum BNLinearViewObjectIdentifierType {
9993 SingleLinearViewObject = 0,
9994 AddressLinearViewObject = 1,
9995 AddressRangeLinearViewObject = 2,
9996}
9997#[repr(C)]
9998#[derive(Debug, Copy, Clone)]
9999pub struct BNLinearViewObjectIdentifier {
10000 pub name: *mut ::std::os::raw::c_char,
10001 pub type_: BNLinearViewObjectIdentifierType,
10002 pub start: u64,
10003 pub end: u64,
10004}
10005#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10006const _: () = {
10007 ["Size of BNLinearViewObjectIdentifier"]
10008 [::std::mem::size_of::<BNLinearViewObjectIdentifier>() - 32usize];
10009 ["Alignment of BNLinearViewObjectIdentifier"]
10010 [::std::mem::align_of::<BNLinearViewObjectIdentifier>() - 8usize];
10011 ["Offset of field: BNLinearViewObjectIdentifier::name"]
10012 [::std::mem::offset_of!(BNLinearViewObjectIdentifier, name) - 0usize];
10013 ["Offset of field: BNLinearViewObjectIdentifier::type_"]
10014 [::std::mem::offset_of!(BNLinearViewObjectIdentifier, type_) - 8usize];
10015 ["Offset of field: BNLinearViewObjectIdentifier::start"]
10016 [::std::mem::offset_of!(BNLinearViewObjectIdentifier, start) - 16usize];
10017 ["Offset of field: BNLinearViewObjectIdentifier::end"]
10018 [::std::mem::offset_of!(BNLinearViewObjectIdentifier, end) - 24usize];
10019};
10020impl Default for BNLinearViewObjectIdentifier {
10021 fn default() -> Self {
10022 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10023 unsafe {
10024 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10025 s.assume_init()
10026 }
10027 }
10028}
10029#[repr(u8)]
10030#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10031pub enum BNBinaryViewEventType {
10032 BinaryViewFinalizationEvent = 0,
10033 BinaryViewInitialAnalysisCompletionEvent = 1,
10034}
10035#[repr(u8)]
10036#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10037pub enum BNDeadStoreElimination {
10038 DefaultDeadStoreElimination = 0,
10039 PreventDeadStoreElimination = 1,
10040 AllowDeadStoreElimination = 2,
10041}
10042#[repr(u8)]
10043#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10044pub enum BNExprFolding {
10045 DefaultExprFolding = 0,
10046 PreventExprFolding = 1,
10047 AllowExprFolding = 2,
10048}
10049#[repr(u8)]
10050#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10051pub enum BNEarlyReturn {
10052 DefaultEarlyReturn = 0,
10053 PreventEarlyReturn = 1,
10054 SmallestSideEarlyReturn = 2,
10055 TrueSideEarlyReturn = 3,
10056 FalseSideEarlyReturn = 4,
10057}
10058#[repr(u8)]
10059#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10060pub enum BNSwitchRecovery {
10061 DefaultSwitchRecovery = 0,
10062 PreventSwitchRecovery = 1,
10063 AllowSwitchRecovery = 2,
10064}
10065#[repr(C)]
10066#[derive(Debug, Copy, Clone)]
10067pub struct BNDebugFunctionInfo {
10068 pub shortName: *mut ::std::os::raw::c_char,
10069 pub fullName: *mut ::std::os::raw::c_char,
10070 pub rawName: *mut ::std::os::raw::c_char,
10071 pub address: u64,
10072 pub type_: *mut BNType,
10073 pub platform: *mut BNPlatform,
10074 pub components: *mut *mut ::std::os::raw::c_char,
10075 pub componentN: usize,
10076 pub localVariables: *mut BNVariableNameAndType,
10077 pub localVariableN: usize,
10078}
10079#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10080const _: () = {
10081 ["Size of BNDebugFunctionInfo"][::std::mem::size_of::<BNDebugFunctionInfo>() - 80usize];
10082 ["Alignment of BNDebugFunctionInfo"][::std::mem::align_of::<BNDebugFunctionInfo>() - 8usize];
10083 ["Offset of field: BNDebugFunctionInfo::shortName"]
10084 [::std::mem::offset_of!(BNDebugFunctionInfo, shortName) - 0usize];
10085 ["Offset of field: BNDebugFunctionInfo::fullName"]
10086 [::std::mem::offset_of!(BNDebugFunctionInfo, fullName) - 8usize];
10087 ["Offset of field: BNDebugFunctionInfo::rawName"]
10088 [::std::mem::offset_of!(BNDebugFunctionInfo, rawName) - 16usize];
10089 ["Offset of field: BNDebugFunctionInfo::address"]
10090 [::std::mem::offset_of!(BNDebugFunctionInfo, address) - 24usize];
10091 ["Offset of field: BNDebugFunctionInfo::type_"]
10092 [::std::mem::offset_of!(BNDebugFunctionInfo, type_) - 32usize];
10093 ["Offset of field: BNDebugFunctionInfo::platform"]
10094 [::std::mem::offset_of!(BNDebugFunctionInfo, platform) - 40usize];
10095 ["Offset of field: BNDebugFunctionInfo::components"]
10096 [::std::mem::offset_of!(BNDebugFunctionInfo, components) - 48usize];
10097 ["Offset of field: BNDebugFunctionInfo::componentN"]
10098 [::std::mem::offset_of!(BNDebugFunctionInfo, componentN) - 56usize];
10099 ["Offset of field: BNDebugFunctionInfo::localVariables"]
10100 [::std::mem::offset_of!(BNDebugFunctionInfo, localVariables) - 64usize];
10101 ["Offset of field: BNDebugFunctionInfo::localVariableN"]
10102 [::std::mem::offset_of!(BNDebugFunctionInfo, localVariableN) - 72usize];
10103};
10104impl Default for BNDebugFunctionInfo {
10105 fn default() -> Self {
10106 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10107 unsafe {
10108 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10109 s.assume_init()
10110 }
10111 }
10112}
10113#[repr(C)]
10114#[derive(Debug, Copy, Clone)]
10115pub struct BNSecretsProviderCallbacks {
10116 pub context: *mut ::std::os::raw::c_void,
10117 pub hasData: ::std::option::Option<
10118 unsafe extern "C" fn(
10119 ctxt: *mut ::std::os::raw::c_void,
10120 key: *const ::std::os::raw::c_char,
10121 ) -> bool,
10122 >,
10123 pub getData: ::std::option::Option<
10124 unsafe extern "C" fn(
10125 ctxt: *mut ::std::os::raw::c_void,
10126 key: *const ::std::os::raw::c_char,
10127 ) -> *mut ::std::os::raw::c_char,
10128 >,
10129 pub storeData: ::std::option::Option<
10130 unsafe extern "C" fn(
10131 ctxt: *mut ::std::os::raw::c_void,
10132 key: *const ::std::os::raw::c_char,
10133 data: *const ::std::os::raw::c_char,
10134 ) -> bool,
10135 >,
10136 pub deleteData: ::std::option::Option<
10137 unsafe extern "C" fn(
10138 ctxt: *mut ::std::os::raw::c_void,
10139 key: *const ::std::os::raw::c_char,
10140 ) -> bool,
10141 >,
10142}
10143#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10144const _: () = {
10145 ["Size of BNSecretsProviderCallbacks"]
10146 [::std::mem::size_of::<BNSecretsProviderCallbacks>() - 40usize];
10147 ["Alignment of BNSecretsProviderCallbacks"]
10148 [::std::mem::align_of::<BNSecretsProviderCallbacks>() - 8usize];
10149 ["Offset of field: BNSecretsProviderCallbacks::context"]
10150 [::std::mem::offset_of!(BNSecretsProviderCallbacks, context) - 0usize];
10151 ["Offset of field: BNSecretsProviderCallbacks::hasData"]
10152 [::std::mem::offset_of!(BNSecretsProviderCallbacks, hasData) - 8usize];
10153 ["Offset of field: BNSecretsProviderCallbacks::getData"]
10154 [::std::mem::offset_of!(BNSecretsProviderCallbacks, getData) - 16usize];
10155 ["Offset of field: BNSecretsProviderCallbacks::storeData"]
10156 [::std::mem::offset_of!(BNSecretsProviderCallbacks, storeData) - 24usize];
10157 ["Offset of field: BNSecretsProviderCallbacks::deleteData"]
10158 [::std::mem::offset_of!(BNSecretsProviderCallbacks, deleteData) - 32usize];
10159};
10160impl Default for BNSecretsProviderCallbacks {
10161 fn default() -> Self {
10162 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10163 unsafe {
10164 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10165 s.assume_init()
10166 }
10167 }
10168}
10169#[repr(C)]
10170#[derive(Debug, Copy, Clone)]
10171pub struct BNMergedVariable {
10172 pub target: BNVariable,
10173 pub sources: *mut BNVariable,
10174 pub sourceCount: usize,
10175}
10176#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10177const _: () = {
10178 ["Size of BNMergedVariable"][::std::mem::size_of::<BNMergedVariable>() - 32usize];
10179 ["Alignment of BNMergedVariable"][::std::mem::align_of::<BNMergedVariable>() - 8usize];
10180 ["Offset of field: BNMergedVariable::target"]
10181 [::std::mem::offset_of!(BNMergedVariable, target) - 0usize];
10182 ["Offset of field: BNMergedVariable::sources"]
10183 [::std::mem::offset_of!(BNMergedVariable, sources) - 16usize];
10184 ["Offset of field: BNMergedVariable::sourceCount"]
10185 [::std::mem::offset_of!(BNMergedVariable, sourceCount) - 24usize];
10186};
10187impl Default for BNMergedVariable {
10188 fn default() -> Self {
10189 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10190 unsafe {
10191 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10192 s.assume_init()
10193 }
10194 }
10195}
10196#[repr(C)]
10197#[derive(Debug, Copy, Clone)]
10198pub struct BNEnterpriseServerCallbacks {
10199 pub context: *mut ::std::os::raw::c_void,
10200 pub licenseStatusChanged: ::std::option::Option<
10201 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, stillValid: bool),
10202 >,
10203}
10204#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10205const _: () = {
10206 ["Size of BNEnterpriseServerCallbacks"]
10207 [::std::mem::size_of::<BNEnterpriseServerCallbacks>() - 16usize];
10208 ["Alignment of BNEnterpriseServerCallbacks"]
10209 [::std::mem::align_of::<BNEnterpriseServerCallbacks>() - 8usize];
10210 ["Offset of field: BNEnterpriseServerCallbacks::context"]
10211 [::std::mem::offset_of!(BNEnterpriseServerCallbacks, context) - 0usize];
10212 ["Offset of field: BNEnterpriseServerCallbacks::licenseStatusChanged"]
10213 [::std::mem::offset_of!(BNEnterpriseServerCallbacks, licenseStatusChanged) - 8usize];
10214};
10215impl Default for BNEnterpriseServerCallbacks {
10216 fn default() -> Self {
10217 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10218 unsafe {
10219 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10220 s.assume_init()
10221 }
10222 }
10223}
10224#[repr(C)]
10225#[derive(Debug, Copy, Clone)]
10226pub struct BNTypeArchiveNotification {
10227 pub context: *mut ::std::os::raw::c_void,
10228 pub typeAdded: ::std::option::Option<
10229 unsafe extern "C" fn(
10230 ctxt: *mut ::std::os::raw::c_void,
10231 archive: *mut BNTypeArchive,
10232 id: *const ::std::os::raw::c_char,
10233 definition: *mut BNType,
10234 ),
10235 >,
10236 pub typeUpdated: ::std::option::Option<
10237 unsafe extern "C" fn(
10238 ctxt: *mut ::std::os::raw::c_void,
10239 archive: *mut BNTypeArchive,
10240 id: *const ::std::os::raw::c_char,
10241 oldDefinition: *mut BNType,
10242 newDefinition: *mut BNType,
10243 ),
10244 >,
10245 pub typeRenamed: ::std::option::Option<
10246 unsafe extern "C" fn(
10247 ctxt: *mut ::std::os::raw::c_void,
10248 archive: *mut BNTypeArchive,
10249 id: *const ::std::os::raw::c_char,
10250 oldName: *const BNQualifiedName,
10251 newName: *const BNQualifiedName,
10252 ),
10253 >,
10254 pub typeDeleted: ::std::option::Option<
10255 unsafe extern "C" fn(
10256 ctxt: *mut ::std::os::raw::c_void,
10257 archive: *mut BNTypeArchive,
10258 id: *const ::std::os::raw::c_char,
10259 definition: *mut BNType,
10260 ),
10261 >,
10262}
10263#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10264const _: () = {
10265 ["Size of BNTypeArchiveNotification"]
10266 [::std::mem::size_of::<BNTypeArchiveNotification>() - 40usize];
10267 ["Alignment of BNTypeArchiveNotification"]
10268 [::std::mem::align_of::<BNTypeArchiveNotification>() - 8usize];
10269 ["Offset of field: BNTypeArchiveNotification::context"]
10270 [::std::mem::offset_of!(BNTypeArchiveNotification, context) - 0usize];
10271 ["Offset of field: BNTypeArchiveNotification::typeAdded"]
10272 [::std::mem::offset_of!(BNTypeArchiveNotification, typeAdded) - 8usize];
10273 ["Offset of field: BNTypeArchiveNotification::typeUpdated"]
10274 [::std::mem::offset_of!(BNTypeArchiveNotification, typeUpdated) - 16usize];
10275 ["Offset of field: BNTypeArchiveNotification::typeRenamed"]
10276 [::std::mem::offset_of!(BNTypeArchiveNotification, typeRenamed) - 24usize];
10277 ["Offset of field: BNTypeArchiveNotification::typeDeleted"]
10278 [::std::mem::offset_of!(BNTypeArchiveNotification, typeDeleted) - 32usize];
10279};
10280impl Default for BNTypeArchiveNotification {
10281 fn default() -> Self {
10282 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10283 unsafe {
10284 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10285 s.assume_init()
10286 }
10287 }
10288}
10289#[repr(u8)]
10290#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10291pub enum BNTypeContainerType {
10292 AnalysisTypeContainerType = 0,
10293 AnalysisAutoTypeContainerType = 1,
10294 AnalysisUserTypeContainerType = 2,
10295 TypeLibraryTypeContainerType = 3,
10296 TypeArchiveTypeContainerType = 4,
10297 DebugInfoTypeContainerType = 5,
10298 PlatformTypeContainerType = 6,
10299 EmptyTypeContainerType = 7,
10300 OtherTypeContainerType = 8,
10301}
10302#[repr(u8)]
10303#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10304pub enum BNSyncStatus {
10305 NotSyncedSyncStatus = 0,
10306 NoChangesSyncStatus = 1,
10307 UnknownSyncStatus = 2,
10308 CanPushSyncStatus = 3,
10309 CanPullSyncStatus = 4,
10310 CanPushAndPullSyncStatus = 5,
10311 ConflictSyncStatus = 6,
10312}
10313#[repr(u8)]
10314#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10315pub enum BNBaseAddressDetectionPOISetting {
10316 POIAnalysisStringsOnly = 0,
10317 POIAnalysisFunctionsOnly = 1,
10318 POIAnalysisAll = 2,
10319}
10320#[repr(u8)]
10321#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10322pub enum BNBaseAddressDetectionAnalysisMode {
10323 InstructionAnalysisBaseAddressDetection = 0,
10324 SamplingBaseAddressDetection = 1,
10325}
10326#[repr(u8)]
10327#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10328pub enum BNBaseAddressDetectionPOIType {
10329 POIString = 0,
10330 POIFunction = 1,
10331 POIDataVariable = 2,
10332 POIFileStart = 3,
10333 POIFileEnd = 4,
10334}
10335#[repr(u8)]
10336#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10337pub enum BNBaseAddressDetectionConfidence {
10338 NoConfidence = 0,
10339 LowConfidence = 1,
10340 HighConfidence = 2,
10341}
10342#[repr(C)]
10343#[derive(Debug, Copy, Clone)]
10344pub struct BNBaseAddressDetectionCommonSettings {
10345 pub Architecture: *const ::std::os::raw::c_char,
10346 pub MinStrlen: u32,
10347 pub LowerBoundary: u64,
10348 pub UpperBoundary: u64,
10349}
10350#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10351const _: () = {
10352 ["Size of BNBaseAddressDetectionCommonSettings"]
10353 [::std::mem::size_of::<BNBaseAddressDetectionCommonSettings>() - 32usize];
10354 ["Alignment of BNBaseAddressDetectionCommonSettings"]
10355 [::std::mem::align_of::<BNBaseAddressDetectionCommonSettings>() - 8usize];
10356 ["Offset of field: BNBaseAddressDetectionCommonSettings::Architecture"]
10357 [::std::mem::offset_of!(BNBaseAddressDetectionCommonSettings, Architecture) - 0usize];
10358 ["Offset of field: BNBaseAddressDetectionCommonSettings::MinStrlen"]
10359 [::std::mem::offset_of!(BNBaseAddressDetectionCommonSettings, MinStrlen) - 8usize];
10360 ["Offset of field: BNBaseAddressDetectionCommonSettings::LowerBoundary"]
10361 [::std::mem::offset_of!(BNBaseAddressDetectionCommonSettings, LowerBoundary) - 16usize];
10362 ["Offset of field: BNBaseAddressDetectionCommonSettings::UpperBoundary"]
10363 [::std::mem::offset_of!(BNBaseAddressDetectionCommonSettings, UpperBoundary) - 24usize];
10364};
10365impl Default for BNBaseAddressDetectionCommonSettings {
10366 fn default() -> Self {
10367 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10368 unsafe {
10369 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10370 s.assume_init()
10371 }
10372 }
10373}
10374#[repr(C)]
10375#[derive(Debug, Copy, Clone)]
10376pub struct BNBaseAddressDetectionInstructionAnalysisSettings {
10377 pub Common: BNBaseAddressDetectionCommonSettings,
10378 pub Analysis: *const ::std::os::raw::c_char,
10379 pub Alignment: u32,
10380 pub POIAnalysis: BNBaseAddressDetectionPOISetting,
10381 pub MaxPointersPerCluster: u32,
10382}
10383#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10384const _: () = {
10385 ["Size of BNBaseAddressDetectionInstructionAnalysisSettings"]
10386 [::std::mem::size_of::<BNBaseAddressDetectionInstructionAnalysisSettings>() - 56usize];
10387 ["Alignment of BNBaseAddressDetectionInstructionAnalysisSettings"]
10388 [::std::mem::align_of::<BNBaseAddressDetectionInstructionAnalysisSettings>() - 8usize];
10389 ["Offset of field: BNBaseAddressDetectionInstructionAnalysisSettings::Common"][::std::mem::offset_of!(
10390 BNBaseAddressDetectionInstructionAnalysisSettings,
10391 Common
10392 ) - 0usize];
10393 ["Offset of field: BNBaseAddressDetectionInstructionAnalysisSettings::Analysis"][::std::mem::offset_of!(
10394 BNBaseAddressDetectionInstructionAnalysisSettings,
10395 Analysis
10396 ) - 32usize];
10397 ["Offset of field: BNBaseAddressDetectionInstructionAnalysisSettings::Alignment"][::std::mem::offset_of!(
10398 BNBaseAddressDetectionInstructionAnalysisSettings,
10399 Alignment
10400 ) - 40usize];
10401 ["Offset of field: BNBaseAddressDetectionInstructionAnalysisSettings::POIAnalysis"][::std::mem::offset_of!(
10402 BNBaseAddressDetectionInstructionAnalysisSettings,
10403 POIAnalysis
10404 )
10405 - 44usize];
10406 ["Offset of field: BNBaseAddressDetectionInstructionAnalysisSettings::MaxPointersPerCluster"][::std::mem::offset_of!(
10407 BNBaseAddressDetectionInstructionAnalysisSettings,
10408 MaxPointersPerCluster
10409 )
10410 - 48usize];
10411};
10412impl Default for BNBaseAddressDetectionInstructionAnalysisSettings {
10413 fn default() -> Self {
10414 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10415 unsafe {
10416 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10417 s.assume_init()
10418 }
10419 }
10420}
10421#[repr(C)]
10422#[derive(Debug, Copy, Clone)]
10423pub struct BNBaseAddressDetectionSamplingSettings {
10424 pub Common: BNBaseAddressDetectionCommonSettings,
10425 pub Alignment: u32,
10426}
10427#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10428const _: () = {
10429 ["Size of BNBaseAddressDetectionSamplingSettings"]
10430 [::std::mem::size_of::<BNBaseAddressDetectionSamplingSettings>() - 40usize];
10431 ["Alignment of BNBaseAddressDetectionSamplingSettings"]
10432 [::std::mem::align_of::<BNBaseAddressDetectionSamplingSettings>() - 8usize];
10433 ["Offset of field: BNBaseAddressDetectionSamplingSettings::Common"]
10434 [::std::mem::offset_of!(BNBaseAddressDetectionSamplingSettings, Common) - 0usize];
10435 ["Offset of field: BNBaseAddressDetectionSamplingSettings::Alignment"]
10436 [::std::mem::offset_of!(BNBaseAddressDetectionSamplingSettings, Alignment) - 32usize];
10437};
10438impl Default for BNBaseAddressDetectionSamplingSettings {
10439 fn default() -> Self {
10440 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10441 unsafe {
10442 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10443 s.assume_init()
10444 }
10445 }
10446}
10447#[repr(C)]
10448#[derive(Debug, Copy, Clone)]
10449pub struct BNBaseAddressDetectionSettings {
10450 pub Architecture: *const ::std::os::raw::c_char,
10451 pub Analysis: *const ::std::os::raw::c_char,
10452 pub MinStrlen: u32,
10453 pub Alignment: u32,
10454 pub LowerBoundary: u64,
10455 pub UpperBoundary: u64,
10456 pub POIAnalysis: BNBaseAddressDetectionPOISetting,
10457 pub MaxPointersPerCluster: u32,
10458 pub AnalysisMode: BNBaseAddressDetectionAnalysisMode,
10459}
10460#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10461const _: () = {
10462 ["Size of BNBaseAddressDetectionSettings"]
10463 [::std::mem::size_of::<BNBaseAddressDetectionSettings>() - 56usize];
10464 ["Alignment of BNBaseAddressDetectionSettings"]
10465 [::std::mem::align_of::<BNBaseAddressDetectionSettings>() - 8usize];
10466 ["Offset of field: BNBaseAddressDetectionSettings::Architecture"]
10467 [::std::mem::offset_of!(BNBaseAddressDetectionSettings, Architecture) - 0usize];
10468 ["Offset of field: BNBaseAddressDetectionSettings::Analysis"]
10469 [::std::mem::offset_of!(BNBaseAddressDetectionSettings, Analysis) - 8usize];
10470 ["Offset of field: BNBaseAddressDetectionSettings::MinStrlen"]
10471 [::std::mem::offset_of!(BNBaseAddressDetectionSettings, MinStrlen) - 16usize];
10472 ["Offset of field: BNBaseAddressDetectionSettings::Alignment"]
10473 [::std::mem::offset_of!(BNBaseAddressDetectionSettings, Alignment) - 20usize];
10474 ["Offset of field: BNBaseAddressDetectionSettings::LowerBoundary"]
10475 [::std::mem::offset_of!(BNBaseAddressDetectionSettings, LowerBoundary) - 24usize];
10476 ["Offset of field: BNBaseAddressDetectionSettings::UpperBoundary"]
10477 [::std::mem::offset_of!(BNBaseAddressDetectionSettings, UpperBoundary) - 32usize];
10478 ["Offset of field: BNBaseAddressDetectionSettings::POIAnalysis"]
10479 [::std::mem::offset_of!(BNBaseAddressDetectionSettings, POIAnalysis) - 40usize];
10480 ["Offset of field: BNBaseAddressDetectionSettings::MaxPointersPerCluster"]
10481 [::std::mem::offset_of!(BNBaseAddressDetectionSettings, MaxPointersPerCluster) - 44usize];
10482 ["Offset of field: BNBaseAddressDetectionSettings::AnalysisMode"]
10483 [::std::mem::offset_of!(BNBaseAddressDetectionSettings, AnalysisMode) - 48usize];
10484};
10485impl Default for BNBaseAddressDetectionSettings {
10486 fn default() -> Self {
10487 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10488 unsafe {
10489 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10490 s.assume_init()
10491 }
10492 }
10493}
10494#[repr(C)]
10495#[derive(Debug, Copy, Clone)]
10496pub struct BNBaseAddressDetectionReason {
10497 pub Pointer: u64,
10498 pub POIOffset: u64,
10499 pub POIType: BNBaseAddressDetectionPOIType,
10500}
10501#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10502const _: () = {
10503 ["Size of BNBaseAddressDetectionReason"]
10504 [::std::mem::size_of::<BNBaseAddressDetectionReason>() - 24usize];
10505 ["Alignment of BNBaseAddressDetectionReason"]
10506 [::std::mem::align_of::<BNBaseAddressDetectionReason>() - 8usize];
10507 ["Offset of field: BNBaseAddressDetectionReason::Pointer"]
10508 [::std::mem::offset_of!(BNBaseAddressDetectionReason, Pointer) - 0usize];
10509 ["Offset of field: BNBaseAddressDetectionReason::POIOffset"]
10510 [::std::mem::offset_of!(BNBaseAddressDetectionReason, POIOffset) - 8usize];
10511 ["Offset of field: BNBaseAddressDetectionReason::POIType"]
10512 [::std::mem::offset_of!(BNBaseAddressDetectionReason, POIType) - 16usize];
10513};
10514impl Default for BNBaseAddressDetectionReason {
10515 fn default() -> Self {
10516 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10517 unsafe {
10518 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10519 s.assume_init()
10520 }
10521 }
10522}
10523#[repr(C)]
10524#[derive(Debug, Default, Copy, Clone)]
10525pub struct BNBaseAddressDetectionScore {
10526 pub Score: usize,
10527 pub BaseAddress: u64,
10528}
10529#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10530const _: () = {
10531 ["Size of BNBaseAddressDetectionScore"]
10532 [::std::mem::size_of::<BNBaseAddressDetectionScore>() - 16usize];
10533 ["Alignment of BNBaseAddressDetectionScore"]
10534 [::std::mem::align_of::<BNBaseAddressDetectionScore>() - 8usize];
10535 ["Offset of field: BNBaseAddressDetectionScore::Score"]
10536 [::std::mem::offset_of!(BNBaseAddressDetectionScore, Score) - 0usize];
10537 ["Offset of field: BNBaseAddressDetectionScore::BaseAddress"]
10538 [::std::mem::offset_of!(BNBaseAddressDetectionScore, BaseAddress) - 8usize];
10539};
10540#[repr(u8)]
10541#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10542pub enum BNCollaborationPermissionLevel {
10543 AdminPermission = 1,
10544 EditPermission = 2,
10545 ViewPermission = 3,
10546}
10547#[repr(u8)]
10548#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10549pub enum BNRemoteFileType {
10550 #[doc = " \"RW\""]
10551 RawDataFileType = 0,
10552 #[doc = " \"BV\""]
10553 BinaryViewAnalysisFileType = 1,
10554 #[doc = " \"TA\""]
10555 TypeArchiveFileType = 2,
10556 #[doc = " Others"]
10557 UnknownFileType = 3,
10558}
10559#[repr(u8)]
10560#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10561pub enum BNMergeConflictDataType {
10562 TextConflictDataType = 0,
10563 JsonConflictDataType = 1,
10564 BinaryConflictDataType = 2,
10565}
10566#[repr(C)]
10567#[derive(Debug, Copy, Clone)]
10568pub struct BNAnalysisMergeConflictSplitterCallbacks {
10569 pub context: *mut ::std::os::raw::c_void,
10570 pub getName: ::std::option::Option<
10571 unsafe extern "C" fn(context: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
10572 >,
10573 pub reset: ::std::option::Option<unsafe extern "C" fn(context: *mut ::std::os::raw::c_void)>,
10574 pub finished: ::std::option::Option<unsafe extern "C" fn(context: *mut ::std::os::raw::c_void)>,
10575 pub canSplit: ::std::option::Option<
10576 unsafe extern "C" fn(
10577 context: *mut ::std::os::raw::c_void,
10578 key: *const ::std::os::raw::c_char,
10579 conflict: *const BNAnalysisMergeConflict,
10580 ) -> bool,
10581 >,
10582 pub split: ::std::option::Option<
10583 unsafe extern "C" fn(
10584 context: *mut ::std::os::raw::c_void,
10585 originalKey: *const ::std::os::raw::c_char,
10586 originalConflict: *const BNAnalysisMergeConflict,
10587 result: *mut BNKeyValueStore,
10588 newKeys: *mut *mut *mut ::std::os::raw::c_char,
10589 newConflicts: *mut *mut *mut BNAnalysisMergeConflict,
10590 newCount: *mut usize,
10591 ) -> bool,
10592 >,
10593 pub freeName: ::std::option::Option<
10594 unsafe extern "C" fn(
10595 context: *mut ::std::os::raw::c_void,
10596 name: *mut ::std::os::raw::c_char,
10597 ),
10598 >,
10599 pub freeKeyList: ::std::option::Option<
10600 unsafe extern "C" fn(
10601 context: *mut ::std::os::raw::c_void,
10602 keyList: *mut *mut ::std::os::raw::c_char,
10603 count: usize,
10604 ),
10605 >,
10606 pub freeConflictList: ::std::option::Option<
10607 unsafe extern "C" fn(
10608 context: *mut ::std::os::raw::c_void,
10609 conflictList: *mut *mut BNAnalysisMergeConflict,
10610 count: usize,
10611 ),
10612 >,
10613}
10614#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10615const _: () = {
10616 ["Size of BNAnalysisMergeConflictSplitterCallbacks"]
10617 [::std::mem::size_of::<BNAnalysisMergeConflictSplitterCallbacks>() - 72usize];
10618 ["Alignment of BNAnalysisMergeConflictSplitterCallbacks"]
10619 [::std::mem::align_of::<BNAnalysisMergeConflictSplitterCallbacks>() - 8usize];
10620 ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::context"]
10621 [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, context) - 0usize];
10622 ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::getName"]
10623 [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, getName) - 8usize];
10624 ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::reset"]
10625 [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, reset) - 16usize];
10626 ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::finished"]
10627 [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, finished) - 24usize];
10628 ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::canSplit"]
10629 [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, canSplit) - 32usize];
10630 ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::split"]
10631 [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, split) - 40usize];
10632 ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::freeName"]
10633 [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, freeName) - 48usize];
10634 ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::freeKeyList"]
10635 [::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, freeKeyList) - 56usize];
10636 ["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::freeConflictList"][::std::mem::offset_of!(
10637 BNAnalysisMergeConflictSplitterCallbacks,
10638 freeConflictList
10639 ) - 64usize];
10640};
10641impl Default for BNAnalysisMergeConflictSplitterCallbacks {
10642 fn default() -> Self {
10643 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10644 unsafe {
10645 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10646 s.assume_init()
10647 }
10648 }
10649}
10650#[repr(C)]
10651#[derive(Debug, Copy, Clone)]
10652pub struct BNDemanglerConfig {
10653 pub platform: *mut BNPlatform,
10654 pub view: *mut BNBinaryView,
10655 pub simplifyTemplates: bool,
10656}
10657#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10658const _: () = {
10659 ["Size of BNDemanglerConfig"][::std::mem::size_of::<BNDemanglerConfig>() - 24usize];
10660 ["Alignment of BNDemanglerConfig"][::std::mem::align_of::<BNDemanglerConfig>() - 8usize];
10661 ["Offset of field: BNDemanglerConfig::platform"]
10662 [::std::mem::offset_of!(BNDemanglerConfig, platform) - 0usize];
10663 ["Offset of field: BNDemanglerConfig::view"]
10664 [::std::mem::offset_of!(BNDemanglerConfig, view) - 8usize];
10665 ["Offset of field: BNDemanglerConfig::simplifyTemplates"]
10666 [::std::mem::offset_of!(BNDemanglerConfig, simplifyTemplates) - 16usize];
10667};
10668impl Default for BNDemanglerConfig {
10669 fn default() -> Self {
10670 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10671 unsafe {
10672 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10673 s.assume_init()
10674 }
10675 }
10676}
10677#[repr(C)]
10678#[derive(Debug, Copy, Clone)]
10679pub struct BNDemanglerResult {
10680 pub name: BNQualifiedName,
10681 pub type_: *mut BNType,
10682}
10683#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10684const _: () = {
10685 ["Size of BNDemanglerResult"][::std::mem::size_of::<BNDemanglerResult>() - 32usize];
10686 ["Alignment of BNDemanglerResult"][::std::mem::align_of::<BNDemanglerResult>() - 8usize];
10687 ["Offset of field: BNDemanglerResult::name"]
10688 [::std::mem::offset_of!(BNDemanglerResult, name) - 0usize];
10689 ["Offset of field: BNDemanglerResult::type_"]
10690 [::std::mem::offset_of!(BNDemanglerResult, type_) - 24usize];
10691};
10692impl Default for BNDemanglerResult {
10693 fn default() -> Self {
10694 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10695 unsafe {
10696 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10697 s.assume_init()
10698 }
10699 }
10700}
10701#[repr(C)]
10702#[derive(Debug, Copy, Clone)]
10703pub struct BNDemanglerCallbacks {
10704 pub context: *mut ::std::os::raw::c_void,
10705 pub isMangledString: ::std::option::Option<
10706 unsafe extern "C" fn(
10707 ctxt: *mut ::std::os::raw::c_void,
10708 name: *const ::std::os::raw::c_char,
10709 ) -> bool,
10710 >,
10711 pub demangle: ::std::option::Option<
10712 unsafe extern "C" fn(
10713 ctxt: *mut ::std::os::raw::c_void,
10714 name: *const ::std::os::raw::c_char,
10715 config: *const BNDemanglerConfig,
10716 result: *mut BNDemanglerResult,
10717 ) -> bool,
10718 >,
10719 pub freeResult: ::std::option::Option<
10720 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, result: *mut BNDemanglerResult),
10721 >,
10722}
10723#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10724const _: () = {
10725 ["Size of BNDemanglerCallbacks"][::std::mem::size_of::<BNDemanglerCallbacks>() - 32usize];
10726 ["Alignment of BNDemanglerCallbacks"][::std::mem::align_of::<BNDemanglerCallbacks>() - 8usize];
10727 ["Offset of field: BNDemanglerCallbacks::context"]
10728 [::std::mem::offset_of!(BNDemanglerCallbacks, context) - 0usize];
10729 ["Offset of field: BNDemanglerCallbacks::isMangledString"]
10730 [::std::mem::offset_of!(BNDemanglerCallbacks, isMangledString) - 8usize];
10731 ["Offset of field: BNDemanglerCallbacks::demangle"]
10732 [::std::mem::offset_of!(BNDemanglerCallbacks, demangle) - 16usize];
10733 ["Offset of field: BNDemanglerCallbacks::freeResult"]
10734 [::std::mem::offset_of!(BNDemanglerCallbacks, freeResult) - 24usize];
10735};
10736impl Default for BNDemanglerCallbacks {
10737 fn default() -> Self {
10738 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10739 unsafe {
10740 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10741 s.assume_init()
10742 }
10743 }
10744}
10745#[repr(u8)]
10746#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10747pub enum BNScopeType {
10748 OneLineScopeType = 0,
10749 HasSubScopeScopeType = 1,
10750 BlockScopeType = 2,
10751 SwitchScopeType = 3,
10752 CaseScopeType = 4,
10753}
10754#[repr(u8)]
10755#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10756pub enum BNBraceRequirement {
10757 OptionalBraces = 0,
10758 BracesNotAllowed = 1,
10759 BracesAlwaysRequired = 2,
10760}
10761#[repr(C)]
10762#[derive(Debug, Default, Copy, Clone)]
10763pub struct BNTokenEmitterExpr {
10764 pub address: u64,
10765 pub sourceOperand: u32,
10766 pub exprIndex: usize,
10767 pub instrIndex: usize,
10768}
10769#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10770const _: () = {
10771 ["Size of BNTokenEmitterExpr"][::std::mem::size_of::<BNTokenEmitterExpr>() - 32usize];
10772 ["Alignment of BNTokenEmitterExpr"][::std::mem::align_of::<BNTokenEmitterExpr>() - 8usize];
10773 ["Offset of field: BNTokenEmitterExpr::address"]
10774 [::std::mem::offset_of!(BNTokenEmitterExpr, address) - 0usize];
10775 ["Offset of field: BNTokenEmitterExpr::sourceOperand"]
10776 [::std::mem::offset_of!(BNTokenEmitterExpr, sourceOperand) - 8usize];
10777 ["Offset of field: BNTokenEmitterExpr::exprIndex"]
10778 [::std::mem::offset_of!(BNTokenEmitterExpr, exprIndex) - 16usize];
10779 ["Offset of field: BNTokenEmitterExpr::instrIndex"]
10780 [::std::mem::offset_of!(BNTokenEmitterExpr, instrIndex) - 24usize];
10781};
10782#[repr(u8)]
10783#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10784pub enum BNOperatorPrecedence {
10785 TopLevelOperatorPrecedence = 0,
10786 AssignmentOperatorPrecedence = 1,
10787 TernaryOperatorPrecedence = 2,
10788 LogicalOrOperatorPrecedence = 3,
10789 LogicalAndOperatorPrecedence = 4,
10790 BitwiseOrOperatorPrecedence = 5,
10791 BitwiseXorOperatorPrecedence = 6,
10792 BitwiseAndOperatorPrecedence = 7,
10793 EqualityOperatorPrecedence = 8,
10794 CompareOperatorPrecedence = 9,
10795 ShiftOperatorPrecedence = 10,
10796 AddOperatorPrecedence = 11,
10797 SubOperatorPrecedence = 12,
10798 MultiplyOperatorPrecedence = 13,
10799 DivideOperatorPrecedence = 14,
10800 LowUnaryOperatorPrecedence = 15,
10801 UnaryOperatorPrecedence = 16,
10802 HighUnaryOperatorPrecedence = 17,
10803 MemberAndFunctionOperatorPrecedence = 18,
10804 ScopeOperatorPrecedence = 19,
10805}
10806#[repr(u8)]
10807#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10808pub enum BNSymbolDisplayType {
10809 DisplaySymbolOnly = 0,
10810 AddressOfDataSymbols = 1,
10811 DereferenceNonDataSymbols = 2,
10812}
10813#[repr(u8)]
10814#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
10815pub enum BNSymbolDisplayResult {
10816 NoSymbolAvailable = 0,
10817 DataSymbolResult = 1,
10818 OtherSymbolResult = 2,
10819}
10820#[repr(C)]
10821#[derive(Debug, Copy, Clone)]
10822pub struct BNCustomLanguageRepresentationFunction {
10823 pub context: *mut ::std::os::raw::c_void,
10824 pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
10825 pub externalRefTaken:
10826 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
10827 pub externalRefReleased:
10828 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
10829 pub initTokenEmitter: ::std::option::Option<
10830 unsafe extern "C" fn(
10831 ctxt: *mut ::std::os::raw::c_void,
10832 tokens: *mut BNHighLevelILTokenEmitter,
10833 ),
10834 >,
10835 pub getExprText: ::std::option::Option<
10836 unsafe extern "C" fn(
10837 ctxt: *mut ::std::os::raw::c_void,
10838 il: *mut BNHighLevelILFunction,
10839 exprIndex: usize,
10840 tokens: *mut BNHighLevelILTokenEmitter,
10841 settings: *mut BNDisassemblySettings,
10842 asFullAst: bool,
10843 precedence: BNOperatorPrecedence,
10844 statement: bool,
10845 ),
10846 >,
10847 pub beginLines: ::std::option::Option<
10848 unsafe extern "C" fn(
10849 ctxt: *mut ::std::os::raw::c_void,
10850 il: *mut BNHighLevelILFunction,
10851 exprIndex: usize,
10852 tokens: *mut BNHighLevelILTokenEmitter,
10853 ),
10854 >,
10855 pub endLines: ::std::option::Option<
10856 unsafe extern "C" fn(
10857 ctxt: *mut ::std::os::raw::c_void,
10858 il: *mut BNHighLevelILFunction,
10859 exprIndex: usize,
10860 tokens: *mut BNHighLevelILTokenEmitter,
10861 ),
10862 >,
10863 pub getCommentStartString: ::std::option::Option<
10864 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
10865 >,
10866 pub getCommentEndString: ::std::option::Option<
10867 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
10868 >,
10869 pub getAnnotationStartString: ::std::option::Option<
10870 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
10871 >,
10872 pub getAnnotationEndString: ::std::option::Option<
10873 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
10874 >,
10875}
10876#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10877const _: () = {
10878 ["Size of BNCustomLanguageRepresentationFunction"]
10879 [::std::mem::size_of::<BNCustomLanguageRepresentationFunction>() - 96usize];
10880 ["Alignment of BNCustomLanguageRepresentationFunction"]
10881 [::std::mem::align_of::<BNCustomLanguageRepresentationFunction>() - 8usize];
10882 ["Offset of field: BNCustomLanguageRepresentationFunction::context"]
10883 [::std::mem::offset_of!(BNCustomLanguageRepresentationFunction, context) - 0usize];
10884 ["Offset of field: BNCustomLanguageRepresentationFunction::freeObject"]
10885 [::std::mem::offset_of!(BNCustomLanguageRepresentationFunction, freeObject) - 8usize];
10886 ["Offset of field: BNCustomLanguageRepresentationFunction::externalRefTaken"][::std::mem::offset_of!(
10887 BNCustomLanguageRepresentationFunction,
10888 externalRefTaken
10889 ) - 16usize];
10890 ["Offset of field: BNCustomLanguageRepresentationFunction::externalRefReleased"][::std::mem::offset_of!(
10891 BNCustomLanguageRepresentationFunction,
10892 externalRefReleased
10893 ) - 24usize];
10894 ["Offset of field: BNCustomLanguageRepresentationFunction::initTokenEmitter"][::std::mem::offset_of!(
10895 BNCustomLanguageRepresentationFunction,
10896 initTokenEmitter
10897 ) - 32usize];
10898 ["Offset of field: BNCustomLanguageRepresentationFunction::getExprText"]
10899 [::std::mem::offset_of!(BNCustomLanguageRepresentationFunction, getExprText) - 40usize];
10900 ["Offset of field: BNCustomLanguageRepresentationFunction::beginLines"]
10901 [::std::mem::offset_of!(BNCustomLanguageRepresentationFunction, beginLines) - 48usize];
10902 ["Offset of field: BNCustomLanguageRepresentationFunction::endLines"]
10903 [::std::mem::offset_of!(BNCustomLanguageRepresentationFunction, endLines) - 56usize];
10904 ["Offset of field: BNCustomLanguageRepresentationFunction::getCommentStartString"][::std::mem::offset_of!(
10905 BNCustomLanguageRepresentationFunction,
10906 getCommentStartString
10907 ) - 64usize];
10908 ["Offset of field: BNCustomLanguageRepresentationFunction::getCommentEndString"][::std::mem::offset_of!(
10909 BNCustomLanguageRepresentationFunction,
10910 getCommentEndString
10911 ) - 72usize];
10912 ["Offset of field: BNCustomLanguageRepresentationFunction::getAnnotationStartString"][::std::mem::offset_of!(
10913 BNCustomLanguageRepresentationFunction,
10914 getAnnotationStartString
10915 )
10916 - 80usize];
10917 ["Offset of field: BNCustomLanguageRepresentationFunction::getAnnotationEndString"][::std::mem::offset_of!(
10918 BNCustomLanguageRepresentationFunction,
10919 getAnnotationEndString
10920 )
10921 - 88usize];
10922};
10923impl Default for BNCustomLanguageRepresentationFunction {
10924 fn default() -> Self {
10925 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
10926 unsafe {
10927 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10928 s.assume_init()
10929 }
10930 }
10931}
10932#[repr(C)]
10933#[derive(Debug, Copy, Clone)]
10934pub struct BNCustomLanguageRepresentationFunctionType {
10935 pub context: *mut ::std::os::raw::c_void,
10936 pub create: ::std::option::Option<
10937 unsafe extern "C" fn(
10938 ctxt: *mut ::std::os::raw::c_void,
10939 arch: *mut BNArchitecture,
10940 owner: *mut BNFunction,
10941 highLevelIL: *mut BNHighLevelILFunction,
10942 ) -> *mut BNLanguageRepresentationFunction,
10943 >,
10944 pub isValid: ::std::option::Option<
10945 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView) -> bool,
10946 >,
10947 pub getTypePrinter: ::std::option::Option<
10948 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNTypePrinter,
10949 >,
10950 pub getTypeParser: ::std::option::Option<
10951 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNTypeParser,
10952 >,
10953 pub getLineFormatter: ::std::option::Option<
10954 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNLineFormatter,
10955 >,
10956 pub getFunctionTypeTokens: ::std::option::Option<
10957 unsafe extern "C" fn(
10958 ctxt: *mut ::std::os::raw::c_void,
10959 func: *mut BNFunction,
10960 settings: *mut BNDisassemblySettings,
10961 count: *mut usize,
10962 ) -> *mut BNDisassemblyTextLine,
10963 >,
10964 pub freeLines: ::std::option::Option<
10965 unsafe extern "C" fn(
10966 ctxt: *mut ::std::os::raw::c_void,
10967 lines: *mut BNDisassemblyTextLine,
10968 count: usize,
10969 ),
10970 >,
10971}
10972#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10973const _: () = {
10974 ["Size of BNCustomLanguageRepresentationFunctionType"]
10975 [::std::mem::size_of::<BNCustomLanguageRepresentationFunctionType>() - 64usize];
10976 ["Alignment of BNCustomLanguageRepresentationFunctionType"]
10977 [::std::mem::align_of::<BNCustomLanguageRepresentationFunctionType>() - 8usize];
10978 ["Offset of field: BNCustomLanguageRepresentationFunctionType::context"]
10979 [::std::mem::offset_of!(BNCustomLanguageRepresentationFunctionType, context) - 0usize];
10980 ["Offset of field: BNCustomLanguageRepresentationFunctionType::create"]
10981 [::std::mem::offset_of!(BNCustomLanguageRepresentationFunctionType, create) - 8usize];
10982 ["Offset of field: BNCustomLanguageRepresentationFunctionType::isValid"]
10983 [::std::mem::offset_of!(BNCustomLanguageRepresentationFunctionType, isValid) - 16usize];
10984 ["Offset of field: BNCustomLanguageRepresentationFunctionType::getTypePrinter"][::std::mem::offset_of!(
10985 BNCustomLanguageRepresentationFunctionType,
10986 getTypePrinter
10987 ) - 24usize];
10988 ["Offset of field: BNCustomLanguageRepresentationFunctionType::getTypeParser"][::std::mem::offset_of!(
10989 BNCustomLanguageRepresentationFunctionType,
10990 getTypeParser
10991 ) - 32usize];
10992 ["Offset of field: BNCustomLanguageRepresentationFunctionType::getLineFormatter"][::std::mem::offset_of!(
10993 BNCustomLanguageRepresentationFunctionType,
10994 getLineFormatter
10995 ) - 40usize];
10996 ["Offset of field: BNCustomLanguageRepresentationFunctionType::getFunctionTypeTokens"][::std::mem::offset_of!(
10997 BNCustomLanguageRepresentationFunctionType,
10998 getFunctionTypeTokens
10999 )
11000 - 48usize];
11001 ["Offset of field: BNCustomLanguageRepresentationFunctionType::freeLines"]
11002 [::std::mem::offset_of!(BNCustomLanguageRepresentationFunctionType, freeLines) - 56usize];
11003};
11004impl Default for BNCustomLanguageRepresentationFunctionType {
11005 fn default() -> Self {
11006 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11007 unsafe {
11008 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11009 s.assume_init()
11010 }
11011 }
11012}
11013#[repr(u8)]
11014#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11015pub enum BNBuiltinType {
11016 BuiltinNone = 0,
11017 BuiltinMemcpy = 1,
11018 BuiltinMemset = 2,
11019 BuiltinStrncpy = 3,
11020 BuiltinStrcpy = 4,
11021 BuiltinWcscpy = 5,
11022 BuiltinWmemcpy = 6,
11023}
11024#[repr(C)]
11025#[derive(Debug, Default, Copy, Clone)]
11026pub struct BNSegmentInfo {
11027 pub start: u64,
11028 pub length: u64,
11029 pub dataOffset: u64,
11030 pub dataLength: u64,
11031 pub flags: u32,
11032}
11033#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11034const _: () = {
11035 ["Size of BNSegmentInfo"][::std::mem::size_of::<BNSegmentInfo>() - 40usize];
11036 ["Alignment of BNSegmentInfo"][::std::mem::align_of::<BNSegmentInfo>() - 8usize];
11037 ["Offset of field: BNSegmentInfo::start"]
11038 [::std::mem::offset_of!(BNSegmentInfo, start) - 0usize];
11039 ["Offset of field: BNSegmentInfo::length"]
11040 [::std::mem::offset_of!(BNSegmentInfo, length) - 8usize];
11041 ["Offset of field: BNSegmentInfo::dataOffset"]
11042 [::std::mem::offset_of!(BNSegmentInfo, dataOffset) - 16usize];
11043 ["Offset of field: BNSegmentInfo::dataLength"]
11044 [::std::mem::offset_of!(BNSegmentInfo, dataLength) - 24usize];
11045 ["Offset of field: BNSegmentInfo::flags"]
11046 [::std::mem::offset_of!(BNSegmentInfo, flags) - 32usize];
11047};
11048#[repr(C)]
11049#[derive(Debug, Copy, Clone)]
11050pub struct BNSectionInfo {
11051 pub name: *const ::std::os::raw::c_char,
11052 pub start: u64,
11053 pub length: u64,
11054 pub semantics: BNSectionSemantics,
11055 pub type_: *const ::std::os::raw::c_char,
11056 pub align: u64,
11057 pub entrySize: u64,
11058 pub linkedSection: *const ::std::os::raw::c_char,
11059 pub infoSection: *const ::std::os::raw::c_char,
11060 pub infoData: u64,
11061}
11062#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11063const _: () = {
11064 ["Size of BNSectionInfo"][::std::mem::size_of::<BNSectionInfo>() - 80usize];
11065 ["Alignment of BNSectionInfo"][::std::mem::align_of::<BNSectionInfo>() - 8usize];
11066 ["Offset of field: BNSectionInfo::name"][::std::mem::offset_of!(BNSectionInfo, name) - 0usize];
11067 ["Offset of field: BNSectionInfo::start"]
11068 [::std::mem::offset_of!(BNSectionInfo, start) - 8usize];
11069 ["Offset of field: BNSectionInfo::length"]
11070 [::std::mem::offset_of!(BNSectionInfo, length) - 16usize];
11071 ["Offset of field: BNSectionInfo::semantics"]
11072 [::std::mem::offset_of!(BNSectionInfo, semantics) - 24usize];
11073 ["Offset of field: BNSectionInfo::type_"]
11074 [::std::mem::offset_of!(BNSectionInfo, type_) - 32usize];
11075 ["Offset of field: BNSectionInfo::align"]
11076 [::std::mem::offset_of!(BNSectionInfo, align) - 40usize];
11077 ["Offset of field: BNSectionInfo::entrySize"]
11078 [::std::mem::offset_of!(BNSectionInfo, entrySize) - 48usize];
11079 ["Offset of field: BNSectionInfo::linkedSection"]
11080 [::std::mem::offset_of!(BNSectionInfo, linkedSection) - 56usize];
11081 ["Offset of field: BNSectionInfo::infoSection"]
11082 [::std::mem::offset_of!(BNSectionInfo, infoSection) - 64usize];
11083 ["Offset of field: BNSectionInfo::infoData"]
11084 [::std::mem::offset_of!(BNSectionInfo, infoData) - 72usize];
11085};
11086impl Default for BNSectionInfo {
11087 fn default() -> Self {
11088 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11089 unsafe {
11090 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11091 s.assume_init()
11092 }
11093 }
11094}
11095#[repr(C)]
11096#[derive(Debug, Copy, Clone)]
11097pub struct BNMemoryRegionInfo {
11098 pub name: *mut ::std::os::raw::c_char,
11099 pub displayName: *mut ::std::os::raw::c_char,
11100 pub start: u64,
11101 pub length: u64,
11102 pub flags: u32,
11103 pub enabled: bool,
11104 pub rebaseable: bool,
11105 pub fill: u8,
11106 pub hasTarget: bool,
11107 pub absoluteAddressMode: bool,
11108 pub local: bool,
11109}
11110#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11111const _: () = {
11112 ["Size of BNMemoryRegionInfo"][::std::mem::size_of::<BNMemoryRegionInfo>() - 48usize];
11113 ["Alignment of BNMemoryRegionInfo"][::std::mem::align_of::<BNMemoryRegionInfo>() - 8usize];
11114 ["Offset of field: BNMemoryRegionInfo::name"]
11115 [::std::mem::offset_of!(BNMemoryRegionInfo, name) - 0usize];
11116 ["Offset of field: BNMemoryRegionInfo::displayName"]
11117 [::std::mem::offset_of!(BNMemoryRegionInfo, displayName) - 8usize];
11118 ["Offset of field: BNMemoryRegionInfo::start"]
11119 [::std::mem::offset_of!(BNMemoryRegionInfo, start) - 16usize];
11120 ["Offset of field: BNMemoryRegionInfo::length"]
11121 [::std::mem::offset_of!(BNMemoryRegionInfo, length) - 24usize];
11122 ["Offset of field: BNMemoryRegionInfo::flags"]
11123 [::std::mem::offset_of!(BNMemoryRegionInfo, flags) - 32usize];
11124 ["Offset of field: BNMemoryRegionInfo::enabled"]
11125 [::std::mem::offset_of!(BNMemoryRegionInfo, enabled) - 36usize];
11126 ["Offset of field: BNMemoryRegionInfo::rebaseable"]
11127 [::std::mem::offset_of!(BNMemoryRegionInfo, rebaseable) - 37usize];
11128 ["Offset of field: BNMemoryRegionInfo::fill"]
11129 [::std::mem::offset_of!(BNMemoryRegionInfo, fill) - 38usize];
11130 ["Offset of field: BNMemoryRegionInfo::hasTarget"]
11131 [::std::mem::offset_of!(BNMemoryRegionInfo, hasTarget) - 39usize];
11132 ["Offset of field: BNMemoryRegionInfo::absoluteAddressMode"]
11133 [::std::mem::offset_of!(BNMemoryRegionInfo, absoluteAddressMode) - 40usize];
11134 ["Offset of field: BNMemoryRegionInfo::local"]
11135 [::std::mem::offset_of!(BNMemoryRegionInfo, local) - 41usize];
11136};
11137impl Default for BNMemoryRegionInfo {
11138 fn default() -> Self {
11139 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11140 unsafe {
11141 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11142 s.assume_init()
11143 }
11144 }
11145}
11146#[repr(C)]
11147#[derive(Debug, Copy, Clone)]
11148pub struct BNResolvedMemoryRange {
11149 pub start: u64,
11150 pub length: u64,
11151 pub regions: *mut BNMemoryRegionInfo,
11152 pub regionCount: usize,
11153}
11154#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11155const _: () = {
11156 ["Size of BNResolvedMemoryRange"][::std::mem::size_of::<BNResolvedMemoryRange>() - 32usize];
11157 ["Alignment of BNResolvedMemoryRange"]
11158 [::std::mem::align_of::<BNResolvedMemoryRange>() - 8usize];
11159 ["Offset of field: BNResolvedMemoryRange::start"]
11160 [::std::mem::offset_of!(BNResolvedMemoryRange, start) - 0usize];
11161 ["Offset of field: BNResolvedMemoryRange::length"]
11162 [::std::mem::offset_of!(BNResolvedMemoryRange, length) - 8usize];
11163 ["Offset of field: BNResolvedMemoryRange::regions"]
11164 [::std::mem::offset_of!(BNResolvedMemoryRange, regions) - 16usize];
11165 ["Offset of field: BNResolvedMemoryRange::regionCount"]
11166 [::std::mem::offset_of!(BNResolvedMemoryRange, regionCount) - 24usize];
11167};
11168impl Default for BNResolvedMemoryRange {
11169 fn default() -> Self {
11170 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11171 unsafe {
11172 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11173 s.assume_init()
11174 }
11175 }
11176}
11177pub type BNCollaborationAnalysisConflictHandler = ::std::option::Option<
11178 unsafe extern "C" fn(
11179 arg1: *mut ::std::os::raw::c_void,
11180 keys: *mut *const ::std::os::raw::c_char,
11181 conflicts: *mut *mut BNAnalysisMergeConflict,
11182 conflictCount: usize,
11183 ) -> bool,
11184>;
11185pub type BNCollaborationNameChangesetFunction = ::std::option::Option<
11186 unsafe extern "C" fn(
11187 arg1: *mut ::std::os::raw::c_void,
11188 arg2: *mut BNCollaborationChangeset,
11189 ) -> bool,
11190>;
11191#[repr(C)]
11192#[derive(Debug, Copy, Clone)]
11193pub struct BNFirmwareNinjaDevice {
11194 pub name: *mut ::std::os::raw::c_char,
11195 pub start: u64,
11196 pub end: u64,
11197 pub info: *mut ::std::os::raw::c_char,
11198}
11199#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11200const _: () = {
11201 ["Size of BNFirmwareNinjaDevice"][::std::mem::size_of::<BNFirmwareNinjaDevice>() - 32usize];
11202 ["Alignment of BNFirmwareNinjaDevice"]
11203 [::std::mem::align_of::<BNFirmwareNinjaDevice>() - 8usize];
11204 ["Offset of field: BNFirmwareNinjaDevice::name"]
11205 [::std::mem::offset_of!(BNFirmwareNinjaDevice, name) - 0usize];
11206 ["Offset of field: BNFirmwareNinjaDevice::start"]
11207 [::std::mem::offset_of!(BNFirmwareNinjaDevice, start) - 8usize];
11208 ["Offset of field: BNFirmwareNinjaDevice::end"]
11209 [::std::mem::offset_of!(BNFirmwareNinjaDevice, end) - 16usize];
11210 ["Offset of field: BNFirmwareNinjaDevice::info"]
11211 [::std::mem::offset_of!(BNFirmwareNinjaDevice, info) - 24usize];
11212};
11213impl Default for BNFirmwareNinjaDevice {
11214 fn default() -> Self {
11215 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11216 unsafe {
11217 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11218 s.assume_init()
11219 }
11220 }
11221}
11222#[repr(u8)]
11223#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11224pub enum BNFirmwareNinjaSectionType {
11225 CodeSectionType = 0,
11226 DataSectionType = 1,
11227 CompressionSectionType = 2,
11228 PaddingSectionType = 3,
11229}
11230#[repr(u8)]
11231#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11232pub enum BNFirmwareNinjaSectionAnalysisMode {
11233 DefaultSectionAnalysisMode = 0,
11234 IgnorePaddingSectionAnalysisMode = 1,
11235 DetectStringsSectionAnalysisMode = 2,
11236}
11237#[repr(C)]
11238#[derive(Debug, Copy, Clone)]
11239pub struct BNFirmwareNinjaSection {
11240 pub type_: BNFirmwareNinjaSectionType,
11241 pub start: u64,
11242 pub end: u64,
11243 pub entropy: f32,
11244}
11245#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11246const _: () = {
11247 ["Size of BNFirmwareNinjaSection"][::std::mem::size_of::<BNFirmwareNinjaSection>() - 32usize];
11248 ["Alignment of BNFirmwareNinjaSection"]
11249 [::std::mem::align_of::<BNFirmwareNinjaSection>() - 8usize];
11250 ["Offset of field: BNFirmwareNinjaSection::type_"]
11251 [::std::mem::offset_of!(BNFirmwareNinjaSection, type_) - 0usize];
11252 ["Offset of field: BNFirmwareNinjaSection::start"]
11253 [::std::mem::offset_of!(BNFirmwareNinjaSection, start) - 8usize];
11254 ["Offset of field: BNFirmwareNinjaSection::end"]
11255 [::std::mem::offset_of!(BNFirmwareNinjaSection, end) - 16usize];
11256 ["Offset of field: BNFirmwareNinjaSection::entropy"]
11257 [::std::mem::offset_of!(BNFirmwareNinjaSection, entropy) - 24usize];
11258};
11259impl Default for BNFirmwareNinjaSection {
11260 fn default() -> Self {
11261 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11262 unsafe {
11263 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11264 s.assume_init()
11265 }
11266 }
11267}
11268#[repr(u8)]
11269#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11270pub enum BNFirmwareNinjaMemoryHeuristic {
11271 NoMemoryHeuristic = 0,
11272 HasReadBarrierMemoryHeuristic = 1,
11273 HasWriteBarrierMemoryHeuristic = 2,
11274 StoreToOOBMemoryMemoryHeuristic = 3,
11275 LoadFromOOBMemoryMemoryHeuristic = 4,
11276 RepeatLoadStoreMemoryHeuristic = 5,
11277 CallParamOOBPointerMemoryHeuristic = 6,
11278}
11279#[repr(u8)]
11280#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11281pub enum BNFirmwareNinjaMemoryAccessType {
11282 NoMemoryAccessType = 0,
11283 ReadMemoryAccessType = 1,
11284 WriteMemoryAccessType = 2,
11285}
11286#[repr(C)]
11287#[derive(Debug, Copy, Clone)]
11288pub struct BNFirmwareNinjaMemoryAccess {
11289 pub instrAddress: u64,
11290 pub memAddress: BNRegisterValue,
11291 pub heuristic: BNFirmwareNinjaMemoryHeuristic,
11292 pub type_: BNFirmwareNinjaMemoryAccessType,
11293 pub value: BNRegisterValue,
11294}
11295#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11296const _: () = {
11297 ["Size of BNFirmwareNinjaMemoryAccess"]
11298 [::std::mem::size_of::<BNFirmwareNinjaMemoryAccess>() - 80usize];
11299 ["Alignment of BNFirmwareNinjaMemoryAccess"]
11300 [::std::mem::align_of::<BNFirmwareNinjaMemoryAccess>() - 8usize];
11301 ["Offset of field: BNFirmwareNinjaMemoryAccess::instrAddress"]
11302 [::std::mem::offset_of!(BNFirmwareNinjaMemoryAccess, instrAddress) - 0usize];
11303 ["Offset of field: BNFirmwareNinjaMemoryAccess::memAddress"]
11304 [::std::mem::offset_of!(BNFirmwareNinjaMemoryAccess, memAddress) - 8usize];
11305 ["Offset of field: BNFirmwareNinjaMemoryAccess::heuristic"]
11306 [::std::mem::offset_of!(BNFirmwareNinjaMemoryAccess, heuristic) - 40usize];
11307 ["Offset of field: BNFirmwareNinjaMemoryAccess::type_"]
11308 [::std::mem::offset_of!(BNFirmwareNinjaMemoryAccess, type_) - 41usize];
11309 ["Offset of field: BNFirmwareNinjaMemoryAccess::value"]
11310 [::std::mem::offset_of!(BNFirmwareNinjaMemoryAccess, value) - 48usize];
11311};
11312impl Default for BNFirmwareNinjaMemoryAccess {
11313 fn default() -> Self {
11314 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11315 unsafe {
11316 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11317 s.assume_init()
11318 }
11319 }
11320}
11321#[repr(C)]
11322#[derive(Debug, Copy, Clone)]
11323pub struct BNFirmwareNinjaFunctionMemoryAccesses {
11324 pub start: u64,
11325 pub count: usize,
11326 pub accesses: *mut *mut BNFirmwareNinjaMemoryAccess,
11327}
11328#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11329const _: () = {
11330 ["Size of BNFirmwareNinjaFunctionMemoryAccesses"]
11331 [::std::mem::size_of::<BNFirmwareNinjaFunctionMemoryAccesses>() - 24usize];
11332 ["Alignment of BNFirmwareNinjaFunctionMemoryAccesses"]
11333 [::std::mem::align_of::<BNFirmwareNinjaFunctionMemoryAccesses>() - 8usize];
11334 ["Offset of field: BNFirmwareNinjaFunctionMemoryAccesses::start"]
11335 [::std::mem::offset_of!(BNFirmwareNinjaFunctionMemoryAccesses, start) - 0usize];
11336 ["Offset of field: BNFirmwareNinjaFunctionMemoryAccesses::count"]
11337 [::std::mem::offset_of!(BNFirmwareNinjaFunctionMemoryAccesses, count) - 8usize];
11338 ["Offset of field: BNFirmwareNinjaFunctionMemoryAccesses::accesses"]
11339 [::std::mem::offset_of!(BNFirmwareNinjaFunctionMemoryAccesses, accesses) - 16usize];
11340};
11341impl Default for BNFirmwareNinjaFunctionMemoryAccesses {
11342 fn default() -> Self {
11343 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11344 unsafe {
11345 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11346 s.assume_init()
11347 }
11348 }
11349}
11350#[repr(C)]
11351#[derive(Debug, Copy, Clone)]
11352pub struct BNFirmwareNinjaDeviceAccesses {
11353 pub name: *mut ::std::os::raw::c_char,
11354 pub total: usize,
11355 pub unique: usize,
11356}
11357#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11358const _: () = {
11359 ["Size of BNFirmwareNinjaDeviceAccesses"]
11360 [::std::mem::size_of::<BNFirmwareNinjaDeviceAccesses>() - 24usize];
11361 ["Alignment of BNFirmwareNinjaDeviceAccesses"]
11362 [::std::mem::align_of::<BNFirmwareNinjaDeviceAccesses>() - 8usize];
11363 ["Offset of field: BNFirmwareNinjaDeviceAccesses::name"]
11364 [::std::mem::offset_of!(BNFirmwareNinjaDeviceAccesses, name) - 0usize];
11365 ["Offset of field: BNFirmwareNinjaDeviceAccesses::total"]
11366 [::std::mem::offset_of!(BNFirmwareNinjaDeviceAccesses, total) - 8usize];
11367 ["Offset of field: BNFirmwareNinjaDeviceAccesses::unique"]
11368 [::std::mem::offset_of!(BNFirmwareNinjaDeviceAccesses, unique) - 16usize];
11369};
11370impl Default for BNFirmwareNinjaDeviceAccesses {
11371 fn default() -> Self {
11372 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11373 unsafe {
11374 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11375 s.assume_init()
11376 }
11377 }
11378}
11379#[repr(C)]
11380#[derive(Debug, Copy, Clone)]
11381pub struct BNLineFormatterSettings {
11382 pub highLevelIL: *mut BNHighLevelILFunction,
11383 pub desiredLineLength: usize,
11384 pub minimumContentLength: usize,
11385 pub tabWidth: usize,
11386 pub maximumAnnotationLength: usize,
11387 pub stringWrappingWidth: usize,
11388 pub languageName: *mut ::std::os::raw::c_char,
11389 pub commentStartString: *mut ::std::os::raw::c_char,
11390 pub commentEndString: *mut ::std::os::raw::c_char,
11391 pub annotationStartString: *mut ::std::os::raw::c_char,
11392 pub annotationEndString: *mut ::std::os::raw::c_char,
11393}
11394#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11395const _: () = {
11396 ["Size of BNLineFormatterSettings"][::std::mem::size_of::<BNLineFormatterSettings>() - 88usize];
11397 ["Alignment of BNLineFormatterSettings"]
11398 [::std::mem::align_of::<BNLineFormatterSettings>() - 8usize];
11399 ["Offset of field: BNLineFormatterSettings::highLevelIL"]
11400 [::std::mem::offset_of!(BNLineFormatterSettings, highLevelIL) - 0usize];
11401 ["Offset of field: BNLineFormatterSettings::desiredLineLength"]
11402 [::std::mem::offset_of!(BNLineFormatterSettings, desiredLineLength) - 8usize];
11403 ["Offset of field: BNLineFormatterSettings::minimumContentLength"]
11404 [::std::mem::offset_of!(BNLineFormatterSettings, minimumContentLength) - 16usize];
11405 ["Offset of field: BNLineFormatterSettings::tabWidth"]
11406 [::std::mem::offset_of!(BNLineFormatterSettings, tabWidth) - 24usize];
11407 ["Offset of field: BNLineFormatterSettings::maximumAnnotationLength"]
11408 [::std::mem::offset_of!(BNLineFormatterSettings, maximumAnnotationLength) - 32usize];
11409 ["Offset of field: BNLineFormatterSettings::stringWrappingWidth"]
11410 [::std::mem::offset_of!(BNLineFormatterSettings, stringWrappingWidth) - 40usize];
11411 ["Offset of field: BNLineFormatterSettings::languageName"]
11412 [::std::mem::offset_of!(BNLineFormatterSettings, languageName) - 48usize];
11413 ["Offset of field: BNLineFormatterSettings::commentStartString"]
11414 [::std::mem::offset_of!(BNLineFormatterSettings, commentStartString) - 56usize];
11415 ["Offset of field: BNLineFormatterSettings::commentEndString"]
11416 [::std::mem::offset_of!(BNLineFormatterSettings, commentEndString) - 64usize];
11417 ["Offset of field: BNLineFormatterSettings::annotationStartString"]
11418 [::std::mem::offset_of!(BNLineFormatterSettings, annotationStartString) - 72usize];
11419 ["Offset of field: BNLineFormatterSettings::annotationEndString"]
11420 [::std::mem::offset_of!(BNLineFormatterSettings, annotationEndString) - 80usize];
11421};
11422impl Default for BNLineFormatterSettings {
11423 fn default() -> Self {
11424 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11425 unsafe {
11426 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11427 s.assume_init()
11428 }
11429 }
11430}
11431#[repr(C)]
11432#[derive(Debug, Copy, Clone)]
11433pub struct BNCustomLineFormatter {
11434 pub context: *mut ::std::os::raw::c_void,
11435 pub formatLines: ::std::option::Option<
11436 unsafe extern "C" fn(
11437 ctxt: *mut ::std::os::raw::c_void,
11438 inLines: *mut BNDisassemblyTextLine,
11439 inCount: usize,
11440 settings: *const BNLineFormatterSettings,
11441 outCount: *mut usize,
11442 ) -> *mut BNDisassemblyTextLine,
11443 >,
11444 pub freeLines: ::std::option::Option<
11445 unsafe extern "C" fn(
11446 ctxt: *mut ::std::os::raw::c_void,
11447 lines: *mut BNDisassemblyTextLine,
11448 count: usize,
11449 ),
11450 >,
11451}
11452#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11453const _: () = {
11454 ["Size of BNCustomLineFormatter"][::std::mem::size_of::<BNCustomLineFormatter>() - 24usize];
11455 ["Alignment of BNCustomLineFormatter"]
11456 [::std::mem::align_of::<BNCustomLineFormatter>() - 8usize];
11457 ["Offset of field: BNCustomLineFormatter::context"]
11458 [::std::mem::offset_of!(BNCustomLineFormatter, context) - 0usize];
11459 ["Offset of field: BNCustomLineFormatter::formatLines"]
11460 [::std::mem::offset_of!(BNCustomLineFormatter, formatLines) - 8usize];
11461 ["Offset of field: BNCustomLineFormatter::freeLines"]
11462 [::std::mem::offset_of!(BNCustomLineFormatter, freeLines) - 16usize];
11463};
11464impl Default for BNCustomLineFormatter {
11465 fn default() -> Self {
11466 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11467 unsafe {
11468 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11469 s.assume_init()
11470 }
11471 }
11472}
11473#[repr(C)]
11474#[derive(Debug, Copy, Clone)]
11475pub struct BNRenderLayerCallbacks {
11476 pub context: *mut ::std::os::raw::c_void,
11477 pub applyToFlowGraph: ::std::option::Option<
11478 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, graph: *mut BNFlowGraph),
11479 >,
11480 pub applyToLinearViewObject: ::std::option::Option<
11481 unsafe extern "C" fn(
11482 ctxt: *mut ::std::os::raw::c_void,
11483 obj: *mut BNLinearViewObject,
11484 prev: *mut BNLinearViewObject,
11485 next: *mut BNLinearViewObject,
11486 inLines: *mut BNLinearDisassemblyLine,
11487 inLineCount: usize,
11488 outLines: *mut *mut BNLinearDisassemblyLine,
11489 outLineCount: *mut usize,
11490 ),
11491 >,
11492 pub freeLines: ::std::option::Option<
11493 unsafe extern "C" fn(
11494 ctxt: *mut ::std::os::raw::c_void,
11495 lines: *mut BNLinearDisassemblyLine,
11496 count: usize,
11497 ),
11498 >,
11499}
11500#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11501const _: () = {
11502 ["Size of BNRenderLayerCallbacks"][::std::mem::size_of::<BNRenderLayerCallbacks>() - 32usize];
11503 ["Alignment of BNRenderLayerCallbacks"]
11504 [::std::mem::align_of::<BNRenderLayerCallbacks>() - 8usize];
11505 ["Offset of field: BNRenderLayerCallbacks::context"]
11506 [::std::mem::offset_of!(BNRenderLayerCallbacks, context) - 0usize];
11507 ["Offset of field: BNRenderLayerCallbacks::applyToFlowGraph"]
11508 [::std::mem::offset_of!(BNRenderLayerCallbacks, applyToFlowGraph) - 8usize];
11509 ["Offset of field: BNRenderLayerCallbacks::applyToLinearViewObject"]
11510 [::std::mem::offset_of!(BNRenderLayerCallbacks, applyToLinearViewObject) - 16usize];
11511 ["Offset of field: BNRenderLayerCallbacks::freeLines"]
11512 [::std::mem::offset_of!(BNRenderLayerCallbacks, freeLines) - 24usize];
11513};
11514impl Default for BNRenderLayerCallbacks {
11515 fn default() -> Self {
11516 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11517 unsafe {
11518 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11519 s.assume_init()
11520 }
11521 }
11522}
11523#[repr(u8)]
11524#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11525pub enum BNRenderLayerDefaultEnableState {
11526 DisabledByDefaultRenderLayerDefaultEnableState = 0,
11527 EnabledByDefaultRenderLayerDefaultEnableState = 1,
11528 AlwaysEnabledRenderLayerDefaultEnableState = 2,
11529}
11530#[repr(C)]
11531#[derive(Debug, Default, Copy, Clone)]
11532pub struct BNExprMapInfo {
11533 pub lowerIndex: usize,
11534 pub higherIndex: usize,
11535 pub mapLowerToHigher: bool,
11536 pub mapHigherToLower: bool,
11537 pub lowerToHigherDirect: bool,
11538 pub higherToLowerDirect: bool,
11539}
11540#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11541const _: () = {
11542 ["Size of BNExprMapInfo"][::std::mem::size_of::<BNExprMapInfo>() - 24usize];
11543 ["Alignment of BNExprMapInfo"][::std::mem::align_of::<BNExprMapInfo>() - 8usize];
11544 ["Offset of field: BNExprMapInfo::lowerIndex"]
11545 [::std::mem::offset_of!(BNExprMapInfo, lowerIndex) - 0usize];
11546 ["Offset of field: BNExprMapInfo::higherIndex"]
11547 [::std::mem::offset_of!(BNExprMapInfo, higherIndex) - 8usize];
11548 ["Offset of field: BNExprMapInfo::mapLowerToHigher"]
11549 [::std::mem::offset_of!(BNExprMapInfo, mapLowerToHigher) - 16usize];
11550 ["Offset of field: BNExprMapInfo::mapHigherToLower"]
11551 [::std::mem::offset_of!(BNExprMapInfo, mapHigherToLower) - 17usize];
11552 ["Offset of field: BNExprMapInfo::lowerToHigherDirect"]
11553 [::std::mem::offset_of!(BNExprMapInfo, lowerToHigherDirect) - 18usize];
11554 ["Offset of field: BNExprMapInfo::higherToLowerDirect"]
11555 [::std::mem::offset_of!(BNExprMapInfo, higherToLowerDirect) - 19usize];
11556};
11557#[repr(C)]
11558#[derive(Debug, Copy, Clone)]
11559pub struct BNAllTypeReferences {
11560 pub codeRefs: *mut BNReferenceSource,
11561 pub codeRefCount: usize,
11562 pub dataRefs: *mut u64,
11563 pub dataRefCount: usize,
11564 pub typeRefs: *mut BNTypeReferenceSource,
11565 pub typeRefCount: usize,
11566}
11567#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11568const _: () = {
11569 ["Size of BNAllTypeReferences"][::std::mem::size_of::<BNAllTypeReferences>() - 48usize];
11570 ["Alignment of BNAllTypeReferences"][::std::mem::align_of::<BNAllTypeReferences>() - 8usize];
11571 ["Offset of field: BNAllTypeReferences::codeRefs"]
11572 [::std::mem::offset_of!(BNAllTypeReferences, codeRefs) - 0usize];
11573 ["Offset of field: BNAllTypeReferences::codeRefCount"]
11574 [::std::mem::offset_of!(BNAllTypeReferences, codeRefCount) - 8usize];
11575 ["Offset of field: BNAllTypeReferences::dataRefs"]
11576 [::std::mem::offset_of!(BNAllTypeReferences, dataRefs) - 16usize];
11577 ["Offset of field: BNAllTypeReferences::dataRefCount"]
11578 [::std::mem::offset_of!(BNAllTypeReferences, dataRefCount) - 24usize];
11579 ["Offset of field: BNAllTypeReferences::typeRefs"]
11580 [::std::mem::offset_of!(BNAllTypeReferences, typeRefs) - 32usize];
11581 ["Offset of field: BNAllTypeReferences::typeRefCount"]
11582 [::std::mem::offset_of!(BNAllTypeReferences, typeRefCount) - 40usize];
11583};
11584impl Default for BNAllTypeReferences {
11585 fn default() -> Self {
11586 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11587 unsafe {
11588 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11589 s.assume_init()
11590 }
11591 }
11592}
11593#[repr(C)]
11594#[derive(Debug, Copy, Clone)]
11595pub struct BNAllTypeFieldReferences {
11596 pub codeRefs: *mut BNTypeFieldReference,
11597 pub codeRefCount: usize,
11598 pub dataRefsTo: *mut u64,
11599 pub dataRefToCount: usize,
11600 pub dataRefsFrom: *mut u64,
11601 pub dataRefFromCount: usize,
11602 pub typeRefs: *mut BNTypeReferenceSource,
11603 pub typeRefCount: usize,
11604}
11605#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11606const _: () = {
11607 ["Size of BNAllTypeFieldReferences"]
11608 [::std::mem::size_of::<BNAllTypeFieldReferences>() - 64usize];
11609 ["Alignment of BNAllTypeFieldReferences"]
11610 [::std::mem::align_of::<BNAllTypeFieldReferences>() - 8usize];
11611 ["Offset of field: BNAllTypeFieldReferences::codeRefs"]
11612 [::std::mem::offset_of!(BNAllTypeFieldReferences, codeRefs) - 0usize];
11613 ["Offset of field: BNAllTypeFieldReferences::codeRefCount"]
11614 [::std::mem::offset_of!(BNAllTypeFieldReferences, codeRefCount) - 8usize];
11615 ["Offset of field: BNAllTypeFieldReferences::dataRefsTo"]
11616 [::std::mem::offset_of!(BNAllTypeFieldReferences, dataRefsTo) - 16usize];
11617 ["Offset of field: BNAllTypeFieldReferences::dataRefToCount"]
11618 [::std::mem::offset_of!(BNAllTypeFieldReferences, dataRefToCount) - 24usize];
11619 ["Offset of field: BNAllTypeFieldReferences::dataRefsFrom"]
11620 [::std::mem::offset_of!(BNAllTypeFieldReferences, dataRefsFrom) - 32usize];
11621 ["Offset of field: BNAllTypeFieldReferences::dataRefFromCount"]
11622 [::std::mem::offset_of!(BNAllTypeFieldReferences, dataRefFromCount) - 40usize];
11623 ["Offset of field: BNAllTypeFieldReferences::typeRefs"]
11624 [::std::mem::offset_of!(BNAllTypeFieldReferences, typeRefs) - 48usize];
11625 ["Offset of field: BNAllTypeFieldReferences::typeRefCount"]
11626 [::std::mem::offset_of!(BNAllTypeFieldReferences, typeRefCount) - 56usize];
11627};
11628impl Default for BNAllTypeFieldReferences {
11629 fn default() -> Self {
11630 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11631 unsafe {
11632 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11633 s.assume_init()
11634 }
11635 }
11636}
11637#[repr(C)]
11638#[derive(Debug, Copy, Clone)]
11639pub struct BNTypeAttribute {
11640 pub name: *mut ::std::os::raw::c_char,
11641 pub value: *mut ::std::os::raw::c_char,
11642}
11643#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11644const _: () = {
11645 ["Size of BNTypeAttribute"][::std::mem::size_of::<BNTypeAttribute>() - 16usize];
11646 ["Alignment of BNTypeAttribute"][::std::mem::align_of::<BNTypeAttribute>() - 8usize];
11647 ["Offset of field: BNTypeAttribute::name"]
11648 [::std::mem::offset_of!(BNTypeAttribute, name) - 0usize];
11649 ["Offset of field: BNTypeAttribute::value"]
11650 [::std::mem::offset_of!(BNTypeAttribute, value) - 8usize];
11651};
11652impl Default for BNTypeAttribute {
11653 fn default() -> Self {
11654 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11655 unsafe {
11656 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11657 s.assume_init()
11658 }
11659 }
11660}
11661#[repr(C)]
11662#[derive(Debug, Copy, Clone)]
11663pub struct BNCustomConstantRenderer {
11664 pub context: *mut ::std::os::raw::c_void,
11665 pub isValidForType: ::std::option::Option<
11666 unsafe extern "C" fn(
11667 ctxt: *mut ::std::os::raw::c_void,
11668 hlil: *mut BNHighLevelILFunction,
11669 type_: *mut BNType,
11670 ) -> bool,
11671 >,
11672 pub renderConstant: ::std::option::Option<
11673 unsafe extern "C" fn(
11674 ctxt: *mut ::std::os::raw::c_void,
11675 hlil: *mut BNHighLevelILFunction,
11676 expr: usize,
11677 type_: *mut BNType,
11678 val: i64,
11679 tokens: *mut BNHighLevelILTokenEmitter,
11680 settings: *mut BNDisassemblySettings,
11681 precedence: BNOperatorPrecedence,
11682 ) -> bool,
11683 >,
11684 pub renderConstantPointer: ::std::option::Option<
11685 unsafe extern "C" fn(
11686 ctxt: *mut ::std::os::raw::c_void,
11687 hlil: *mut BNHighLevelILFunction,
11688 expr: usize,
11689 type_: *mut BNType,
11690 val: i64,
11691 tokens: *mut BNHighLevelILTokenEmitter,
11692 settings: *mut BNDisassemblySettings,
11693 symbolDisplay: BNSymbolDisplayType,
11694 precedence: BNOperatorPrecedence,
11695 ) -> bool,
11696 >,
11697}
11698#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11699const _: () = {
11700 ["Size of BNCustomConstantRenderer"]
11701 [::std::mem::size_of::<BNCustomConstantRenderer>() - 32usize];
11702 ["Alignment of BNCustomConstantRenderer"]
11703 [::std::mem::align_of::<BNCustomConstantRenderer>() - 8usize];
11704 ["Offset of field: BNCustomConstantRenderer::context"]
11705 [::std::mem::offset_of!(BNCustomConstantRenderer, context) - 0usize];
11706 ["Offset of field: BNCustomConstantRenderer::isValidForType"]
11707 [::std::mem::offset_of!(BNCustomConstantRenderer, isValidForType) - 8usize];
11708 ["Offset of field: BNCustomConstantRenderer::renderConstant"]
11709 [::std::mem::offset_of!(BNCustomConstantRenderer, renderConstant) - 16usize];
11710 ["Offset of field: BNCustomConstantRenderer::renderConstantPointer"]
11711 [::std::mem::offset_of!(BNCustomConstantRenderer, renderConstantPointer) - 24usize];
11712};
11713impl Default for BNCustomConstantRenderer {
11714 fn default() -> Self {
11715 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11716 unsafe {
11717 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11718 s.assume_init()
11719 }
11720 }
11721}
11722#[repr(C)]
11723#[derive(Debug, Copy, Clone)]
11724pub struct BNCustomStringRecognizer {
11725 pub context: *mut ::std::os::raw::c_void,
11726 pub isValidForType: ::std::option::Option<
11727 unsafe extern "C" fn(
11728 ctxt: *mut ::std::os::raw::c_void,
11729 hlil: *mut BNHighLevelILFunction,
11730 type_: *mut BNType,
11731 ) -> bool,
11732 >,
11733 pub recognizeConstant: ::std::option::Option<
11734 unsafe extern "C" fn(
11735 ctxt: *mut ::std::os::raw::c_void,
11736 hlil: *mut BNHighLevelILFunction,
11737 expr: usize,
11738 type_: *mut BNType,
11739 val: i64,
11740 result: *mut BNDerivedString,
11741 ) -> bool,
11742 >,
11743 pub recognizeConstantPointer: ::std::option::Option<
11744 unsafe extern "C" fn(
11745 ctxt: *mut ::std::os::raw::c_void,
11746 hlil: *mut BNHighLevelILFunction,
11747 expr: usize,
11748 type_: *mut BNType,
11749 val: i64,
11750 result: *mut BNDerivedString,
11751 ) -> bool,
11752 >,
11753 pub recognizeExternPointer: ::std::option::Option<
11754 unsafe extern "C" fn(
11755 ctxt: *mut ::std::os::raw::c_void,
11756 hlil: *mut BNHighLevelILFunction,
11757 expr: usize,
11758 type_: *mut BNType,
11759 val: i64,
11760 offset: u64,
11761 result: *mut BNDerivedString,
11762 ) -> bool,
11763 >,
11764 pub recognizeImport: ::std::option::Option<
11765 unsafe extern "C" fn(
11766 ctxt: *mut ::std::os::raw::c_void,
11767 hlil: *mut BNHighLevelILFunction,
11768 expr: usize,
11769 type_: *mut BNType,
11770 val: i64,
11771 result: *mut BNDerivedString,
11772 ) -> bool,
11773 >,
11774 pub recognizeConstantData: ::std::option::Option<
11775 unsafe extern "C" fn(
11776 ctxt: *mut ::std::os::raw::c_void,
11777 hlil: *mut BNHighLevelILFunction,
11778 expr: usize,
11779 result: *mut BNDerivedString,
11780 ) -> bool,
11781 >,
11782 pub recognizeStructInit: ::std::option::Option<
11783 unsafe extern "C" fn(
11784 ctxt: *mut ::std::os::raw::c_void,
11785 hlil: *mut BNHighLevelILFunction,
11786 expr: usize,
11787 type_: *mut BNType,
11788 fieldOffsets: *const u64,
11789 fieldValues: *const i64,
11790 fieldCount: usize,
11791 result: *mut BNDerivedString,
11792 ) -> bool,
11793 >,
11794}
11795#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11796const _: () = {
11797 ["Size of BNCustomStringRecognizer"]
11798 [::std::mem::size_of::<BNCustomStringRecognizer>() - 64usize];
11799 ["Alignment of BNCustomStringRecognizer"]
11800 [::std::mem::align_of::<BNCustomStringRecognizer>() - 8usize];
11801 ["Offset of field: BNCustomStringRecognizer::context"]
11802 [::std::mem::offset_of!(BNCustomStringRecognizer, context) - 0usize];
11803 ["Offset of field: BNCustomStringRecognizer::isValidForType"]
11804 [::std::mem::offset_of!(BNCustomStringRecognizer, isValidForType) - 8usize];
11805 ["Offset of field: BNCustomStringRecognizer::recognizeConstant"]
11806 [::std::mem::offset_of!(BNCustomStringRecognizer, recognizeConstant) - 16usize];
11807 ["Offset of field: BNCustomStringRecognizer::recognizeConstantPointer"]
11808 [::std::mem::offset_of!(BNCustomStringRecognizer, recognizeConstantPointer) - 24usize];
11809 ["Offset of field: BNCustomStringRecognizer::recognizeExternPointer"]
11810 [::std::mem::offset_of!(BNCustomStringRecognizer, recognizeExternPointer) - 32usize];
11811 ["Offset of field: BNCustomStringRecognizer::recognizeImport"]
11812 [::std::mem::offset_of!(BNCustomStringRecognizer, recognizeImport) - 40usize];
11813 ["Offset of field: BNCustomStringRecognizer::recognizeConstantData"]
11814 [::std::mem::offset_of!(BNCustomStringRecognizer, recognizeConstantData) - 48usize];
11815 ["Offset of field: BNCustomStringRecognizer::recognizeStructInit"]
11816 [::std::mem::offset_of!(BNCustomStringRecognizer, recognizeStructInit) - 56usize];
11817};
11818impl Default for BNCustomStringRecognizer {
11819 fn default() -> Self {
11820 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11821 unsafe {
11822 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11823 s.assume_init()
11824 }
11825 }
11826}
11827#[repr(C)]
11828#[derive(Debug, Copy, Clone)]
11829pub struct BNCustomStringTypeInfo {
11830 pub name: *mut ::std::os::raw::c_char,
11831 pub stringPrefix: *mut ::std::os::raw::c_char,
11832 pub stringPostfix: *mut ::std::os::raw::c_char,
11833}
11834#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11835const _: () = {
11836 ["Size of BNCustomStringTypeInfo"][::std::mem::size_of::<BNCustomStringTypeInfo>() - 24usize];
11837 ["Alignment of BNCustomStringTypeInfo"]
11838 [::std::mem::align_of::<BNCustomStringTypeInfo>() - 8usize];
11839 ["Offset of field: BNCustomStringTypeInfo::name"]
11840 [::std::mem::offset_of!(BNCustomStringTypeInfo, name) - 0usize];
11841 ["Offset of field: BNCustomStringTypeInfo::stringPrefix"]
11842 [::std::mem::offset_of!(BNCustomStringTypeInfo, stringPrefix) - 8usize];
11843 ["Offset of field: BNCustomStringTypeInfo::stringPostfix"]
11844 [::std::mem::offset_of!(BNCustomStringTypeInfo, stringPostfix) - 16usize];
11845};
11846impl Default for BNCustomStringTypeInfo {
11847 fn default() -> Self {
11848 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
11849 unsafe {
11850 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11851 s.assume_init()
11852 }
11853 }
11854}
11855#[repr(C)]
11856#[derive(Debug, Default, Copy, Clone)]
11857pub struct BNSimilarityEntityId {
11858 pub value: u32,
11859}
11860#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11861const _: () = {
11862 ["Size of BNSimilarityEntityId"][::std::mem::size_of::<BNSimilarityEntityId>() - 4usize];
11863 ["Alignment of BNSimilarityEntityId"][::std::mem::align_of::<BNSimilarityEntityId>() - 4usize];
11864 ["Offset of field: BNSimilarityEntityId::value"]
11865 [::std::mem::offset_of!(BNSimilarityEntityId, value) - 0usize];
11866};
11867#[repr(C)]
11868#[derive(Debug, Default, Copy, Clone)]
11869pub struct BNSimilarityResultId {
11870 pub value: u64,
11871}
11872#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11873const _: () = {
11874 ["Size of BNSimilarityResultId"][::std::mem::size_of::<BNSimilarityResultId>() - 8usize];
11875 ["Alignment of BNSimilarityResultId"][::std::mem::align_of::<BNSimilarityResultId>() - 8usize];
11876 ["Offset of field: BNSimilarityResultId::value"]
11877 [::std::mem::offset_of!(BNSimilarityResultId, value) - 0usize];
11878};
11879#[repr(C)]
11880#[derive(Debug, Default, Copy, Clone)]
11881pub struct BNSimilaritySessionNodeId {
11882 pub value: u32,
11883}
11884#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11885const _: () = {
11886 ["Size of BNSimilaritySessionNodeId"]
11887 [::std::mem::size_of::<BNSimilaritySessionNodeId>() - 4usize];
11888 ["Alignment of BNSimilaritySessionNodeId"]
11889 [::std::mem::align_of::<BNSimilaritySessionNodeId>() - 4usize];
11890 ["Offset of field: BNSimilaritySessionNodeId::value"]
11891 [::std::mem::offset_of!(BNSimilaritySessionNodeId, value) - 0usize];
11892};
11893#[repr(C)]
11894#[derive(Debug, Default, Copy, Clone)]
11895pub struct BNSimilaritySessionId {
11896 pub value: u32,
11897}
11898#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11899const _: () = {
11900 ["Size of BNSimilaritySessionId"][::std::mem::size_of::<BNSimilaritySessionId>() - 4usize];
11901 ["Alignment of BNSimilaritySessionId"]
11902 [::std::mem::align_of::<BNSimilaritySessionId>() - 4usize];
11903 ["Offset of field: BNSimilaritySessionId::value"]
11904 [::std::mem::offset_of!(BNSimilaritySessionId, value) - 0usize];
11905};
11906#[repr(C)]
11907#[derive(Debug, Default, Copy, Clone)]
11908pub struct BNSimilarityProviderId {
11909 pub value: u32,
11910}
11911#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11912const _: () = {
11913 ["Size of BNSimilarityProviderId"][::std::mem::size_of::<BNSimilarityProviderId>() - 4usize];
11914 ["Alignment of BNSimilarityProviderId"]
11915 [::std::mem::align_of::<BNSimilarityProviderId>() - 4usize];
11916 ["Offset of field: BNSimilarityProviderId::value"]
11917 [::std::mem::offset_of!(BNSimilarityProviderId, value) - 0usize];
11918};
11919#[repr(C)]
11920#[derive(Debug, Default, Copy, Clone)]
11921pub struct BNSimilaritySessionResolverId {
11922 pub value: u32,
11923}
11924#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11925const _: () = {
11926 ["Size of BNSimilaritySessionResolverId"]
11927 [::std::mem::size_of::<BNSimilaritySessionResolverId>() - 4usize];
11928 ["Alignment of BNSimilaritySessionResolverId"]
11929 [::std::mem::align_of::<BNSimilaritySessionResolverId>() - 4usize];
11930 ["Offset of field: BNSimilaritySessionResolverId::value"]
11931 [::std::mem::offset_of!(BNSimilaritySessionResolverId, value) - 0usize];
11932};
11933#[repr(C)]
11934#[derive(Debug, Default, Copy, Clone)]
11935pub struct BNSimilarityEntityRef {
11936 pub nodeId: BNSimilaritySessionNodeId,
11937 pub entityId: BNSimilarityEntityId,
11938}
11939#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11940const _: () = {
11941 ["Size of BNSimilarityEntityRef"][::std::mem::size_of::<BNSimilarityEntityRef>() - 8usize];
11942 ["Alignment of BNSimilarityEntityRef"]
11943 [::std::mem::align_of::<BNSimilarityEntityRef>() - 4usize];
11944 ["Offset of field: BNSimilarityEntityRef::nodeId"]
11945 [::std::mem::offset_of!(BNSimilarityEntityRef, nodeId) - 0usize];
11946 ["Offset of field: BNSimilarityEntityRef::entityId"]
11947 [::std::mem::offset_of!(BNSimilarityEntityRef, entityId) - 4usize];
11948};
11949#[repr(u8)]
11950#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11951pub enum BNSimilarityEntityType {
11952 SimilarityEntityFunction = 0,
11953}
11954#[repr(u8)]
11955#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11956pub enum BNSimilarityApplyStatus {
11957 SimilarityApplySuccess = 0,
11958 SimilarityApplyNodeInactive = 1,
11959 SimilarityApplyEntityNotFound = 2,
11960 SimilarityApplyUnsupported = 3,
11961 SimilarityApplyFailed = 4,
11962}
11963#[repr(C)]
11964#[derive(Debug, Default, Copy, Clone)]
11965pub struct BNSimilarityResult {
11966 pub providerId: BNSimilarityProviderId,
11967 pub similarity: u8,
11968 pub confidence: u8,
11969 pub target: BNSimilarityEntityRef,
11970}
11971#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11972const _: () = {
11973 ["Size of BNSimilarityResult"][::std::mem::size_of::<BNSimilarityResult>() - 16usize];
11974 ["Alignment of BNSimilarityResult"][::std::mem::align_of::<BNSimilarityResult>() - 4usize];
11975 ["Offset of field: BNSimilarityResult::providerId"]
11976 [::std::mem::offset_of!(BNSimilarityResult, providerId) - 0usize];
11977 ["Offset of field: BNSimilarityResult::similarity"]
11978 [::std::mem::offset_of!(BNSimilarityResult, similarity) - 4usize];
11979 ["Offset of field: BNSimilarityResult::confidence"]
11980 [::std::mem::offset_of!(BNSimilarityResult, confidence) - 5usize];
11981 ["Offset of field: BNSimilarityResult::target"]
11982 [::std::mem::offset_of!(BNSimilarityResult, target) - 8usize];
11983};
11984#[repr(C)]
11985#[derive(Debug, Copy, Clone)]
11986pub struct BNSimilarityEntityInfo {
11987 pub type_: BNSimilarityEntityType,
11988 pub address: u64,
11989 pub name: *const ::std::os::raw::c_char,
11990}
11991#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11992const _: () = {
11993 ["Size of BNSimilarityEntityInfo"][::std::mem::size_of::<BNSimilarityEntityInfo>() - 24usize];
11994 ["Alignment of BNSimilarityEntityInfo"]
11995 [::std::mem::align_of::<BNSimilarityEntityInfo>() - 8usize];
11996 ["Offset of field: BNSimilarityEntityInfo::type_"]
11997 [::std::mem::offset_of!(BNSimilarityEntityInfo, type_) - 0usize];
11998 ["Offset of field: BNSimilarityEntityInfo::address"]
11999 [::std::mem::offset_of!(BNSimilarityEntityInfo, address) - 8usize];
12000 ["Offset of field: BNSimilarityEntityInfo::name"]
12001 [::std::mem::offset_of!(BNSimilarityEntityInfo, name) - 16usize];
12002};
12003impl Default for BNSimilarityEntityInfo {
12004 fn default() -> Self {
12005 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12006 unsafe {
12007 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12008 s.assume_init()
12009 }
12010 }
12011}
12012#[repr(u8)]
12013#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
12014pub enum BNSimilarityViewType {
12015 SimilarityViewFlowGraph = 0,
12016 SimilarityViewLinear = 1,
12017}
12018#[repr(u8)]
12019#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
12020pub enum BNSimilarityAnnotationType {
12021 SimilarityAnnotationAdded = 0,
12022 SimilarityAnnotationRemoved = 1,
12023 SimilarityAnnotationChanged = 2,
12024}
12025#[repr(C)]
12026#[derive(Debug, Default, Copy, Clone)]
12027pub struct BNSimilaritySessionCompletionQuery {
12028 pub hasNodeId: bool,
12029 pub nodeId: BNSimilaritySessionNodeId,
12030 pub hasProviderId: bool,
12031 pub providerId: BNSimilarityProviderId,
12032 pub hasResolverId: bool,
12033 pub resolverId: BNSimilaritySessionResolverId,
12034}
12035#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12036const _: () = {
12037 ["Size of BNSimilaritySessionCompletionQuery"]
12038 [::std::mem::size_of::<BNSimilaritySessionCompletionQuery>() - 24usize];
12039 ["Alignment of BNSimilaritySessionCompletionQuery"]
12040 [::std::mem::align_of::<BNSimilaritySessionCompletionQuery>() - 4usize];
12041 ["Offset of field: BNSimilaritySessionCompletionQuery::hasNodeId"]
12042 [::std::mem::offset_of!(BNSimilaritySessionCompletionQuery, hasNodeId) - 0usize];
12043 ["Offset of field: BNSimilaritySessionCompletionQuery::nodeId"]
12044 [::std::mem::offset_of!(BNSimilaritySessionCompletionQuery, nodeId) - 4usize];
12045 ["Offset of field: BNSimilaritySessionCompletionQuery::hasProviderId"]
12046 [::std::mem::offset_of!(BNSimilaritySessionCompletionQuery, hasProviderId) - 8usize];
12047 ["Offset of field: BNSimilaritySessionCompletionQuery::providerId"]
12048 [::std::mem::offset_of!(BNSimilaritySessionCompletionQuery, providerId) - 12usize];
12049 ["Offset of field: BNSimilaritySessionCompletionQuery::hasResolverId"]
12050 [::std::mem::offset_of!(BNSimilaritySessionCompletionQuery, hasResolverId) - 16usize];
12051 ["Offset of field: BNSimilaritySessionCompletionQuery::resolverId"]
12052 [::std::mem::offset_of!(BNSimilaritySessionCompletionQuery, resolverId) - 20usize];
12053};
12054#[repr(C)]
12055#[derive(Debug, Copy, Clone)]
12056pub struct BNCustomSimilarityProvider {
12057 pub context: *mut ::std::os::raw::c_void,
12058 pub externalRefTaken:
12059 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
12060 pub externalRefReleased:
12061 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
12062 pub updateSettings: ::std::option::Option<
12063 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, settings: *mut BNSettings) -> bool,
12064 >,
12065 pub visitNode: ::std::option::Option<
12066 unsafe extern "C" fn(
12067 ctxt: *mut ::std::os::raw::c_void,
12068 node: *mut BNSimilaritySessionNode,
12069 results: *mut BNSimilarityProviderResults,
12070 completion: *mut BNSimilaritySessionCompletion,
12071 ) -> bool,
12072 >,
12073 pub visitNodeEdge: ::std::option::Option<
12074 unsafe extern "C" fn(
12075 ctxt: *mut ::std::os::raw::c_void,
12076 from: *mut BNSimilaritySessionNode,
12077 to: *mut BNSimilaritySessionNode,
12078 results: *mut BNSimilarityProviderResults,
12079 completion: *mut BNSimilaritySessionCompletion,
12080 ) -> bool,
12081 >,
12082 pub getName: ::std::option::Option<
12083 unsafe extern "C" fn(
12084 ctxt: *mut ::std::os::raw::c_void,
12085 node: *mut BNSimilaritySessionNode,
12086 entity: BNSimilarityEntityId,
12087 result: BNSimilarityResultId,
12088 ) -> *mut ::std::os::raw::c_char,
12089 >,
12090 pub apply: ::std::option::Option<
12091 unsafe extern "C" fn(
12092 ctxt: *mut ::std::os::raw::c_void,
12093 node: *mut BNSimilaritySessionNode,
12094 entity: BNSimilarityEntityId,
12095 result: BNSimilarityResultId,
12096 ) -> BNSimilarityApplyStatus,
12097 >,
12098 pub render: ::std::option::Option<
12099 unsafe extern "C" fn(
12100 ctxt: *mut ::std::os::raw::c_void,
12101 node: *mut BNSimilaritySessionNode,
12102 entity: BNSimilarityEntityId,
12103 context: *mut BNSimilarityRenderContext,
12104 result: BNSimilarityResultId,
12105 ),
12106 >,
12107 pub free: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
12108}
12109#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12110const _: () = {
12111 ["Size of BNCustomSimilarityProvider"]
12112 [::std::mem::size_of::<BNCustomSimilarityProvider>() - 80usize];
12113 ["Alignment of BNCustomSimilarityProvider"]
12114 [::std::mem::align_of::<BNCustomSimilarityProvider>() - 8usize];
12115 ["Offset of field: BNCustomSimilarityProvider::context"]
12116 [::std::mem::offset_of!(BNCustomSimilarityProvider, context) - 0usize];
12117 ["Offset of field: BNCustomSimilarityProvider::externalRefTaken"]
12118 [::std::mem::offset_of!(BNCustomSimilarityProvider, externalRefTaken) - 8usize];
12119 ["Offset of field: BNCustomSimilarityProvider::externalRefReleased"]
12120 [::std::mem::offset_of!(BNCustomSimilarityProvider, externalRefReleased) - 16usize];
12121 ["Offset of field: BNCustomSimilarityProvider::updateSettings"]
12122 [::std::mem::offset_of!(BNCustomSimilarityProvider, updateSettings) - 24usize];
12123 ["Offset of field: BNCustomSimilarityProvider::visitNode"]
12124 [::std::mem::offset_of!(BNCustomSimilarityProvider, visitNode) - 32usize];
12125 ["Offset of field: BNCustomSimilarityProvider::visitNodeEdge"]
12126 [::std::mem::offset_of!(BNCustomSimilarityProvider, visitNodeEdge) - 40usize];
12127 ["Offset of field: BNCustomSimilarityProvider::getName"]
12128 [::std::mem::offset_of!(BNCustomSimilarityProvider, getName) - 48usize];
12129 ["Offset of field: BNCustomSimilarityProvider::apply"]
12130 [::std::mem::offset_of!(BNCustomSimilarityProvider, apply) - 56usize];
12131 ["Offset of field: BNCustomSimilarityProvider::render"]
12132 [::std::mem::offset_of!(BNCustomSimilarityProvider, render) - 64usize];
12133 ["Offset of field: BNCustomSimilarityProvider::free"]
12134 [::std::mem::offset_of!(BNCustomSimilarityProvider, free) - 72usize];
12135};
12136impl Default for BNCustomSimilarityProvider {
12137 fn default() -> Self {
12138 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12139 unsafe {
12140 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12141 s.assume_init()
12142 }
12143 }
12144}
12145#[repr(C)]
12146#[derive(Debug, Copy, Clone)]
12147pub struct BNCustomSimilarityProviderType {
12148 pub context: *mut ::std::os::raw::c_void,
12149 pub create: ::std::option::Option<
12150 unsafe extern "C" fn(
12151 ctxt: *mut ::std::os::raw::c_void,
12152 settings: *mut BNSettings,
12153 ) -> *mut BNSimilarityProvider,
12154 >,
12155 pub getDefaultSettings: ::std::option::Option<
12156 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNSettings,
12157 >,
12158}
12159#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12160const _: () = {
12161 ["Size of BNCustomSimilarityProviderType"]
12162 [::std::mem::size_of::<BNCustomSimilarityProviderType>() - 24usize];
12163 ["Alignment of BNCustomSimilarityProviderType"]
12164 [::std::mem::align_of::<BNCustomSimilarityProviderType>() - 8usize];
12165 ["Offset of field: BNCustomSimilarityProviderType::context"]
12166 [::std::mem::offset_of!(BNCustomSimilarityProviderType, context) - 0usize];
12167 ["Offset of field: BNCustomSimilarityProviderType::create"]
12168 [::std::mem::offset_of!(BNCustomSimilarityProviderType, create) - 8usize];
12169 ["Offset of field: BNCustomSimilarityProviderType::getDefaultSettings"]
12170 [::std::mem::offset_of!(BNCustomSimilarityProviderType, getDefaultSettings) - 16usize];
12171};
12172impl Default for BNCustomSimilarityProviderType {
12173 fn default() -> Self {
12174 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12175 unsafe {
12176 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12177 s.assume_init()
12178 }
12179 }
12180}
12181#[repr(C)]
12182#[derive(Debug, Copy, Clone)]
12183pub struct BNCustomSimilaritySessionResolver {
12184 pub context: *mut ::std::os::raw::c_void,
12185 pub externalRefTaken:
12186 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
12187 pub externalRefReleased:
12188 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
12189 pub updateSettings: ::std::option::Option<
12190 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, settings: *mut BNSettings) -> bool,
12191 >,
12192 pub prepareForNode: ::std::option::Option<
12193 unsafe extern "C" fn(
12194 ctxt: *mut ::std::os::raw::c_void,
12195 session: *mut BNSimilaritySession,
12196 node: *mut BNSimilaritySessionNode,
12197 completion: *mut BNSimilaritySessionCompletion,
12198 resolverId: BNSimilaritySessionResolverId,
12199 ),
12200 >,
12201 pub resolveForNode: ::std::option::Option<
12202 unsafe extern "C" fn(
12203 ctxt: *mut ::std::os::raw::c_void,
12204 session: *mut BNSimilaritySession,
12205 node: *mut BNSimilaritySessionNode,
12206 entities: *const BNSimilarityEntityId,
12207 entityCount: usize,
12208 completion: *mut BNSimilaritySessionCompletion,
12209 resolverId: BNSimilaritySessionResolverId,
12210 ),
12211 >,
12212 pub free: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
12213}
12214#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12215const _: () = {
12216 ["Size of BNCustomSimilaritySessionResolver"]
12217 [::std::mem::size_of::<BNCustomSimilaritySessionResolver>() - 56usize];
12218 ["Alignment of BNCustomSimilaritySessionResolver"]
12219 [::std::mem::align_of::<BNCustomSimilaritySessionResolver>() - 8usize];
12220 ["Offset of field: BNCustomSimilaritySessionResolver::context"]
12221 [::std::mem::offset_of!(BNCustomSimilaritySessionResolver, context) - 0usize];
12222 ["Offset of field: BNCustomSimilaritySessionResolver::externalRefTaken"]
12223 [::std::mem::offset_of!(BNCustomSimilaritySessionResolver, externalRefTaken) - 8usize];
12224 ["Offset of field: BNCustomSimilaritySessionResolver::externalRefReleased"]
12225 [::std::mem::offset_of!(BNCustomSimilaritySessionResolver, externalRefReleased) - 16usize];
12226 ["Offset of field: BNCustomSimilaritySessionResolver::updateSettings"]
12227 [::std::mem::offset_of!(BNCustomSimilaritySessionResolver, updateSettings) - 24usize];
12228 ["Offset of field: BNCustomSimilaritySessionResolver::prepareForNode"]
12229 [::std::mem::offset_of!(BNCustomSimilaritySessionResolver, prepareForNode) - 32usize];
12230 ["Offset of field: BNCustomSimilaritySessionResolver::resolveForNode"]
12231 [::std::mem::offset_of!(BNCustomSimilaritySessionResolver, resolveForNode) - 40usize];
12232 ["Offset of field: BNCustomSimilaritySessionResolver::free"]
12233 [::std::mem::offset_of!(BNCustomSimilaritySessionResolver, free) - 48usize];
12234};
12235impl Default for BNCustomSimilaritySessionResolver {
12236 fn default() -> Self {
12237 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12238 unsafe {
12239 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12240 s.assume_init()
12241 }
12242 }
12243}
12244#[repr(C)]
12245#[derive(Debug, Copy, Clone)]
12246pub struct BNCustomSimilaritySessionResolverType {
12247 pub context: *mut ::std::os::raw::c_void,
12248 pub create: ::std::option::Option<
12249 unsafe extern "C" fn(
12250 ctxt: *mut ::std::os::raw::c_void,
12251 session: *mut BNSimilaritySession,
12252 settings: *mut BNSettings,
12253 ) -> *mut BNSimilaritySessionResolver,
12254 >,
12255 pub getDefaultSettings: ::std::option::Option<
12256 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNSettings,
12257 >,
12258}
12259#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12260const _: () = {
12261 ["Size of BNCustomSimilaritySessionResolverType"]
12262 [::std::mem::size_of::<BNCustomSimilaritySessionResolverType>() - 24usize];
12263 ["Alignment of BNCustomSimilaritySessionResolverType"]
12264 [::std::mem::align_of::<BNCustomSimilaritySessionResolverType>() - 8usize];
12265 ["Offset of field: BNCustomSimilaritySessionResolverType::context"]
12266 [::std::mem::offset_of!(BNCustomSimilaritySessionResolverType, context) - 0usize];
12267 ["Offset of field: BNCustomSimilaritySessionResolverType::create"]
12268 [::std::mem::offset_of!(BNCustomSimilaritySessionResolverType, create) - 8usize];
12269 ["Offset of field: BNCustomSimilaritySessionResolverType::getDefaultSettings"][::std::mem::offset_of!(
12270 BNCustomSimilaritySessionResolverType,
12271 getDefaultSettings
12272 ) - 16usize];
12273};
12274impl Default for BNCustomSimilaritySessionResolverType {
12275 fn default() -> Self {
12276 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12277 unsafe {
12278 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12279 s.assume_init()
12280 }
12281 }
12282}
12283#[repr(C)]
12284#[derive(Debug, Copy, Clone)]
12285pub struct BNCustomSimilaritySessionReceiver {
12286 pub context: *mut ::std::os::raw::c_void,
12287 pub externalRefTaken:
12288 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
12289 pub externalRefReleased:
12290 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
12291 pub onStarted: ::std::option::Option<
12292 unsafe extern "C" fn(
12293 ctxt: *mut ::std::os::raw::c_void,
12294 completion: *mut BNSimilaritySessionCompletion,
12295 ),
12296 >,
12297 pub onUpdated: ::std::option::Option<
12298 unsafe extern "C" fn(
12299 ctxt: *mut ::std::os::raw::c_void,
12300 node: *mut BNSimilaritySessionNode,
12301 provider: *mut BNSimilarityProvider,
12302 entities: *const BNSimilarityEntityId,
12303 count: usize,
12304 ),
12305 >,
12306 pub free: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
12307}
12308#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12309const _: () = {
12310 ["Size of BNCustomSimilaritySessionReceiver"]
12311 [::std::mem::size_of::<BNCustomSimilaritySessionReceiver>() - 48usize];
12312 ["Alignment of BNCustomSimilaritySessionReceiver"]
12313 [::std::mem::align_of::<BNCustomSimilaritySessionReceiver>() - 8usize];
12314 ["Offset of field: BNCustomSimilaritySessionReceiver::context"]
12315 [::std::mem::offset_of!(BNCustomSimilaritySessionReceiver, context) - 0usize];
12316 ["Offset of field: BNCustomSimilaritySessionReceiver::externalRefTaken"]
12317 [::std::mem::offset_of!(BNCustomSimilaritySessionReceiver, externalRefTaken) - 8usize];
12318 ["Offset of field: BNCustomSimilaritySessionReceiver::externalRefReleased"]
12319 [::std::mem::offset_of!(BNCustomSimilaritySessionReceiver, externalRefReleased) - 16usize];
12320 ["Offset of field: BNCustomSimilaritySessionReceiver::onStarted"]
12321 [::std::mem::offset_of!(BNCustomSimilaritySessionReceiver, onStarted) - 24usize];
12322 ["Offset of field: BNCustomSimilaritySessionReceiver::onUpdated"]
12323 [::std::mem::offset_of!(BNCustomSimilaritySessionReceiver, onUpdated) - 32usize];
12324 ["Offset of field: BNCustomSimilaritySessionReceiver::free"]
12325 [::std::mem::offset_of!(BNCustomSimilaritySessionReceiver, free) - 40usize];
12326};
12327impl Default for BNCustomSimilaritySessionReceiver {
12328 fn default() -> Self {
12329 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12330 unsafe {
12331 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12332 s.assume_init()
12333 }
12334 }
12335}
12336#[repr(C)]
12337#[derive(Debug, Copy, Clone)]
12338pub struct BNCustomSimilaritySessionGraphReceiver {
12339 pub context: *mut ::std::os::raw::c_void,
12340 pub externalRefTaken:
12341 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
12342 pub externalRefReleased:
12343 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
12344 pub onGraphChanged:
12345 ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
12346 pub free: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
12347}
12348#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12349const _: () = {
12350 ["Size of BNCustomSimilaritySessionGraphReceiver"]
12351 [::std::mem::size_of::<BNCustomSimilaritySessionGraphReceiver>() - 40usize];
12352 ["Alignment of BNCustomSimilaritySessionGraphReceiver"]
12353 [::std::mem::align_of::<BNCustomSimilaritySessionGraphReceiver>() - 8usize];
12354 ["Offset of field: BNCustomSimilaritySessionGraphReceiver::context"]
12355 [::std::mem::offset_of!(BNCustomSimilaritySessionGraphReceiver, context) - 0usize];
12356 ["Offset of field: BNCustomSimilaritySessionGraphReceiver::externalRefTaken"]
12357 [::std::mem::offset_of!(BNCustomSimilaritySessionGraphReceiver, externalRefTaken) - 8usize];
12358 ["Offset of field: BNCustomSimilaritySessionGraphReceiver::externalRefReleased"][::std::mem::offset_of!(
12359 BNCustomSimilaritySessionGraphReceiver,
12360 externalRefReleased
12361 ) - 16usize];
12362 ["Offset of field: BNCustomSimilaritySessionGraphReceiver::onGraphChanged"]
12363 [::std::mem::offset_of!(BNCustomSimilaritySessionGraphReceiver, onGraphChanged) - 24usize];
12364 ["Offset of field: BNCustomSimilaritySessionGraphReceiver::free"]
12365 [::std::mem::offset_of!(BNCustomSimilaritySessionGraphReceiver, free) - 32usize];
12366};
12367impl Default for BNCustomSimilaritySessionGraphReceiver {
12368 fn default() -> Self {
12369 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
12370 unsafe {
12371 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
12372 s.assume_init()
12373 }
12374 }
12375}
12376unsafe extern "C" {
12377 pub fn BNRegisterSimilarityProviderType(
12378 name: *const ::std::os::raw::c_char,
12379 description: *const ::std::os::raw::c_char,
12380 type_: *mut BNCustomSimilarityProviderType,
12381 ) -> *mut BNSimilarityProviderType;
12382}
12383unsafe extern "C" {
12384 pub fn BNGetSimilarityProviderTypeByName(
12385 name: *const ::std::os::raw::c_char,
12386 ) -> *mut BNSimilarityProviderType;
12387}
12388unsafe extern "C" {
12389 pub fn BNGetSimilarityProviderTypeList(count: *mut usize)
12390 -> *mut *mut BNSimilarityProviderType;
12391}
12392unsafe extern "C" {
12393 pub fn BNFreeSimilarityProviderTypeList(types: *mut *mut BNSimilarityProviderType);
12394}
12395unsafe extern "C" {
12396 pub fn BNSimilarityProviderTypeGetName(
12397 type_: *mut BNSimilarityProviderType,
12398 ) -> *mut ::std::os::raw::c_char;
12399}
12400unsafe extern "C" {
12401 pub fn BNSimilarityProviderTypeGetDescription(
12402 type_: *mut BNSimilarityProviderType,
12403 ) -> *mut ::std::os::raw::c_char;
12404}
12405unsafe extern "C" {
12406 #[doc = " Returns `nullptr` outside the Ultimate edition."]
12407 pub fn BNSimilarityProviderTypeCreateProvider(
12408 type_: *mut BNSimilarityProviderType,
12409 settings: *mut BNSettings,
12410 ) -> *mut BNSimilarityProvider;
12411}
12412unsafe extern "C" {
12413 pub fn BNSimilarityProviderTypeGetDefaultSettings(
12414 type_: *mut BNSimilarityProviderType,
12415 ) -> *mut BNSettings;
12416}
12417unsafe extern "C" {
12418 #[doc = " Returns `nullptr` outside the Ultimate edition without taking ownership of `callbacks`."]
12419 pub fn BNCreateCustomSimilarityProvider(
12420 type_: *mut BNSimilarityProviderType,
12421 callbacks: *mut BNCustomSimilarityProvider,
12422 ) -> *mut BNSimilarityProvider;
12423}
12424unsafe extern "C" {
12425 pub fn BNSimilarityProviderVisitNode(
12426 provider: *mut BNSimilarityProvider,
12427 node: *mut BNSimilaritySessionNode,
12428 completion: *mut BNSimilaritySessionCompletion,
12429 );
12430}
12431unsafe extern "C" {
12432 pub fn BNSimilarityProviderVisitNodeEdge(
12433 provider: *mut BNSimilarityProvider,
12434 from: *mut BNSimilaritySessionNode,
12435 to: *mut BNSimilaritySessionNode,
12436 completion: *mut BNSimilaritySessionCompletion,
12437 );
12438}
12439unsafe extern "C" {
12440 pub fn BNSimilarityProviderPerformVisitNode(
12441 provider: *mut BNSimilarityProvider,
12442 node: *mut BNSimilaritySessionNode,
12443 results: *mut BNSimilarityProviderResults,
12444 completion: *mut BNSimilaritySessionCompletion,
12445 ) -> bool;
12446}
12447unsafe extern "C" {
12448 pub fn BNSimilarityProviderPerformVisitNodeEdge(
12449 provider: *mut BNSimilarityProvider,
12450 from: *mut BNSimilaritySessionNode,
12451 to: *mut BNSimilaritySessionNode,
12452 results: *mut BNSimilarityProviderResults,
12453 completion: *mut BNSimilaritySessionCompletion,
12454 ) -> bool;
12455}
12456unsafe extern "C" {
12457 pub fn BNSimilarityProviderResultsAddResult(
12458 results: *mut BNSimilarityProviderResults,
12459 source: *const BNSimilarityEntityRef,
12460 target: *const BNSimilarityEntityRef,
12461 similarity: u8,
12462 confidence: u8,
12463 ) -> BNSimilarityResultId;
12464}
12465unsafe extern "C" {
12466 pub fn BNSimilarityProviderGetType(
12467 provider: *mut BNSimilarityProvider,
12468 ) -> *mut BNSimilarityProviderType;
12469}
12470unsafe extern "C" {
12471 pub fn BNSimilarityProviderGetId(provider: *mut BNSimilarityProvider)
12472 -> BNSimilarityProviderId;
12473}
12474unsafe extern "C" {
12475 pub fn BNSimilarityProviderGetName(
12476 provider: *mut BNSimilarityProvider,
12477 node: *mut BNSimilaritySessionNode,
12478 entity: BNSimilarityEntityId,
12479 result: BNSimilarityResultId,
12480 ) -> *mut ::std::os::raw::c_char;
12481}
12482unsafe extern "C" {
12483 pub fn BNSimilarityProviderApply(
12484 provider: *mut BNSimilarityProvider,
12485 node: *mut BNSimilaritySessionNode,
12486 entity: BNSimilarityEntityId,
12487 result: BNSimilarityResultId,
12488 ) -> BNSimilarityApplyStatus;
12489}
12490unsafe extern "C" {
12491 pub fn BNSimilaritySessionNodeApplyTarget(
12492 node: *mut BNSimilaritySessionNode,
12493 entity: BNSimilarityEntityId,
12494 target: *const BNSimilarityEntityRef,
12495 ) -> BNSimilarityApplyStatus;
12496}
12497unsafe extern "C" {
12498 pub fn BNSimilarityProviderRender(
12499 provider: *mut BNSimilarityProvider,
12500 node: *mut BNSimilaritySessionNode,
12501 entity: BNSimilarityEntityId,
12502 context: *mut BNSimilarityRenderContext,
12503 result: BNSimilarityResultId,
12504 );
12505}
12506unsafe extern "C" {
12507 pub fn BNCreateSimilarityRenderContext() -> *mut BNSimilarityRenderContext;
12508}
12509unsafe extern "C" {
12510 pub fn BNSimilarityRenderContextSetPreferredViewType(
12511 context: *mut BNSimilarityRenderContext,
12512 type_: BNFunctionViewType,
12513 );
12514}
12515unsafe extern "C" {
12516 pub fn BNSimilarityRenderContextGetPreferredViewType(
12517 context: *mut BNSimilarityRenderContext,
12518 ) -> BNFunctionGraphType;
12519}
12520unsafe extern "C" {
12521 pub fn BNSimilarityRenderContextGetPreferredViewTypeName(
12522 context: *mut BNSimilarityRenderContext,
12523 ) -> *mut ::std::os::raw::c_char;
12524}
12525unsafe extern "C" {
12526 pub fn BNSimilarityRenderContextAddFlowGraph(
12527 context: *mut BNSimilarityRenderContext,
12528 group: *const ::std::os::raw::c_char,
12529 graph: *mut BNFlowGraph,
12530 );
12531}
12532unsafe extern "C" {
12533 pub fn BNSimilarityRenderContextAddFlowGraphForEntity(
12534 context: *mut BNSimilarityRenderContext,
12535 group: *const ::std::os::raw::c_char,
12536 graph: *mut BNFlowGraph,
12537 entity: *const BNSimilarityEntityRef,
12538 );
12539}
12540unsafe extern "C" {
12541 pub fn BNSimilarityRenderContextAddLinearView(
12542 context: *mut BNSimilarityRenderContext,
12543 group: *const ::std::os::raw::c_char,
12544 data: *mut BNBinaryView,
12545 linearView: *mut BNLinearViewObject,
12546 );
12547}
12548unsafe extern "C" {
12549 pub fn BNSimilarityRenderContextAddLinearViewForEntity(
12550 context: *mut BNSimilarityRenderContext,
12551 group: *const ::std::os::raw::c_char,
12552 data: *mut BNBinaryView,
12553 linearView: *mut BNLinearViewObject,
12554 entity: *const BNSimilarityEntityRef,
12555 );
12556}
12557unsafe extern "C" {
12558 pub fn BNGetSimilarityRenderContextViews(
12559 context: *mut BNSimilarityRenderContext,
12560 count: *mut usize,
12561 ) -> *mut *mut BNSimilarityView;
12562}
12563unsafe extern "C" {
12564 pub fn BNFreeSimilarityViewList(views: *mut *mut BNSimilarityView, count: usize);
12565}
12566unsafe extern "C" {
12567 pub fn BNSimilarityViewGetGroup(view: *mut BNSimilarityView) -> *mut ::std::os::raw::c_char;
12568}
12569unsafe extern "C" {
12570 pub fn BNSimilarityViewGetType(view: *mut BNSimilarityView) -> BNSimilarityViewType;
12571}
12572unsafe extern "C" {
12573 pub fn BNSimilarityViewGetFlowGraph(view: *mut BNSimilarityView) -> *mut BNFlowGraph;
12574}
12575unsafe extern "C" {
12576 pub fn BNSimilarityViewGetLinearViewData(view: *mut BNSimilarityView) -> *mut BNBinaryView;
12577}
12578unsafe extern "C" {
12579 pub fn BNSimilarityViewGetLinearView(view: *mut BNSimilarityView) -> *mut BNLinearViewObject;
12580}
12581unsafe extern "C" {
12582 pub fn BNSimilarityViewGetEntity(
12583 view: *mut BNSimilarityView,
12584 entity: *mut BNSimilarityEntityRef,
12585 ) -> bool;
12586}
12587unsafe extern "C" {
12588 pub fn BNNewSimilarityViewReference(view: *mut BNSimilarityView) -> *mut BNSimilarityView;
12589}
12590unsafe extern "C" {
12591 pub fn BNFreeSimilarityView(view: *mut BNSimilarityView);
12592}
12593unsafe extern "C" {
12594 pub fn BNNewSimilarityRenderContextReference(
12595 context: *mut BNSimilarityRenderContext,
12596 ) -> *mut BNSimilarityRenderContext;
12597}
12598unsafe extern "C" {
12599 pub fn BNFreeSimilarityRenderContext(context: *mut BNSimilarityRenderContext);
12600}
12601unsafe extern "C" {
12602 pub fn BNCreateDiffRenderer() -> *mut BNDiffRenderer;
12603}
12604unsafe extern "C" {
12605 pub fn BNDiffRendererAddRangeAnnotation(
12606 renderer: *mut BNDiffRenderer,
12607 start: u64,
12608 end: u64,
12609 type_: BNSimilarityAnnotationType,
12610 );
12611}
12612unsafe extern "C" {
12613 pub fn BNDiffRendererRenderFunction(
12614 renderer: *mut BNDiffRenderer,
12615 context: *mut BNSimilarityRenderContext,
12616 function: *mut BNFunction,
12617 );
12618}
12619unsafe extern "C" {
12620 pub fn BNDiffRendererRenderFunctionForEntity(
12621 renderer: *mut BNDiffRenderer,
12622 context: *mut BNSimilarityRenderContext,
12623 function: *mut BNFunction,
12624 entity: *const BNSimilarityEntityRef,
12625 );
12626}
12627unsafe extern "C" {
12628 pub fn BNDiffRendererRenderFlowGraph(
12629 renderer: *mut BNDiffRenderer,
12630 context: *mut BNSimilarityRenderContext,
12631 group: *const ::std::os::raw::c_char,
12632 graph: *mut BNFlowGraph,
12633 );
12634}
12635unsafe extern "C" {
12636 pub fn BNDiffRendererRenderFlowGraphForEntity(
12637 renderer: *mut BNDiffRenderer,
12638 context: *mut BNSimilarityRenderContext,
12639 group: *const ::std::os::raw::c_char,
12640 graph: *mut BNFlowGraph,
12641 entity: *const BNSimilarityEntityRef,
12642 );
12643}
12644unsafe extern "C" {
12645 pub fn BNDiffRendererRenderLinearView(
12646 renderer: *mut BNDiffRenderer,
12647 context: *mut BNSimilarityRenderContext,
12648 group: *const ::std::os::raw::c_char,
12649 data: *mut BNBinaryView,
12650 linearView: *mut BNLinearViewObject,
12651 );
12652}
12653unsafe extern "C" {
12654 pub fn BNDiffRendererRenderLinearViewForEntity(
12655 renderer: *mut BNDiffRenderer,
12656 context: *mut BNSimilarityRenderContext,
12657 group: *const ::std::os::raw::c_char,
12658 data: *mut BNBinaryView,
12659 linearView: *mut BNLinearViewObject,
12660 entity: *const BNSimilarityEntityRef,
12661 );
12662}
12663unsafe extern "C" {
12664 pub fn BNNewDiffRendererReference(renderer: *mut BNDiffRenderer) -> *mut BNDiffRenderer;
12665}
12666unsafe extern "C" {
12667 pub fn BNFreeDiffRenderer(renderer: *mut BNDiffRenderer);
12668}
12669unsafe extern "C" {
12670 pub fn BNNewSimilarityProviderReference(
12671 provider: *mut BNSimilarityProvider,
12672 ) -> *mut BNSimilarityProvider;
12673}
12674unsafe extern "C" {
12675 pub fn BNFreeSimilarityProvider(provider: *mut BNSimilarityProvider);
12676}
12677unsafe extern "C" {
12678 pub fn BNFreeSimilarityResultIdList(results: *mut BNSimilarityResultId);
12679}
12680unsafe extern "C" {
12681 pub fn BNRegisterSimilaritySessionResolverType(
12682 name: *const ::std::os::raw::c_char,
12683 description: *const ::std::os::raw::c_char,
12684 type_: *mut BNCustomSimilaritySessionResolverType,
12685 ) -> *mut BNSimilaritySessionResolverType;
12686}
12687unsafe extern "C" {
12688 pub fn BNGetSimilaritySessionResolverTypeByName(
12689 name: *const ::std::os::raw::c_char,
12690 ) -> *mut BNSimilaritySessionResolverType;
12691}
12692unsafe extern "C" {
12693 pub fn BNGetSimilaritySessionResolverTypeList(
12694 count: *mut usize,
12695 ) -> *mut *mut BNSimilaritySessionResolverType;
12696}
12697unsafe extern "C" {
12698 pub fn BNFreeSimilaritySessionResolverTypeList(
12699 types: *mut *mut BNSimilaritySessionResolverType,
12700 );
12701}
12702unsafe extern "C" {
12703 pub fn BNSimilaritySessionResolverTypeGetName(
12704 type_: *mut BNSimilaritySessionResolverType,
12705 ) -> *mut ::std::os::raw::c_char;
12706}
12707unsafe extern "C" {
12708 pub fn BNSimilaritySessionResolverTypeGetDescription(
12709 type_: *mut BNSimilaritySessionResolverType,
12710 ) -> *mut ::std::os::raw::c_char;
12711}
12712unsafe extern "C" {
12713 pub fn BNSimilaritySessionResolverTypeCreateResolver(
12714 type_: *mut BNSimilaritySessionResolverType,
12715 session: *mut BNSimilaritySession,
12716 settings: *mut BNSettings,
12717 ) -> *mut BNSimilaritySessionResolver;
12718}
12719unsafe extern "C" {
12720 pub fn BNSimilaritySessionResolverTypeGetDefaultSettings(
12721 type_: *mut BNSimilaritySessionResolverType,
12722 ) -> *mut BNSettings;
12723}
12724unsafe extern "C" {
12725 pub fn BNCreateCustomSimilaritySessionResolver(
12726 type_: *mut BNSimilaritySessionResolverType,
12727 session: *mut BNSimilaritySession,
12728 callbacks: *mut BNCustomSimilaritySessionResolver,
12729 ) -> *mut BNSimilaritySessionResolver;
12730}
12731unsafe extern "C" {
12732 pub fn BNSimilaritySessionResolverGetType(
12733 resolver: *mut BNSimilaritySessionResolver,
12734 ) -> *mut BNSimilaritySessionResolverType;
12735}
12736unsafe extern "C" {
12737 pub fn BNSimilaritySessionResolverGetId(
12738 resolver: *mut BNSimilaritySessionResolver,
12739 ) -> BNSimilaritySessionResolverId;
12740}
12741unsafe extern "C" {
12742 pub fn BNSimilaritySessionResolverPrepareForNode(
12743 resolver: *mut BNSimilaritySessionResolver,
12744 session: *mut BNSimilaritySession,
12745 node: *mut BNSimilaritySessionNode,
12746 completion: *mut BNSimilaritySessionCompletion,
12747 );
12748}
12749unsafe extern "C" {
12750 pub fn BNSimilaritySessionResolverResolveForNode(
12751 resolver: *mut BNSimilaritySessionResolver,
12752 session: *mut BNSimilaritySession,
12753 node: *mut BNSimilaritySessionNode,
12754 entities: *const BNSimilarityEntityId,
12755 entityCount: usize,
12756 completion: *mut BNSimilaritySessionCompletion,
12757 );
12758}
12759unsafe extern "C" {
12760 pub fn BNNewSimilaritySessionResolverReference(
12761 resolver: *mut BNSimilaritySessionResolver,
12762 ) -> *mut BNSimilaritySessionResolver;
12763}
12764unsafe extern "C" {
12765 pub fn BNFreeSimilaritySessionResolver(resolver: *mut BNSimilaritySessionResolver);
12766}
12767unsafe extern "C" {
12768 pub fn BNFreeSimilaritySessionResolverList(
12769 resolvers: *mut *mut BNSimilaritySessionResolver,
12770 count: usize,
12771 );
12772}
12773unsafe extern "C" {
12774 pub fn BNCreateSimilaritySessionNode(view: *mut BNBinaryView) -> *mut BNSimilaritySessionNode;
12775}
12776unsafe extern "C" {
12777 pub fn BNCreateSimilaritySessionNodeFromFile(
12778 file: *mut BNFileMetadata,
12779 ) -> *mut BNSimilaritySessionNode;
12780}
12781unsafe extern "C" {
12782 pub fn BNSimilaritySessionNodeGetView(node: *mut BNSimilaritySessionNode) -> *mut BNBinaryView;
12783}
12784unsafe extern "C" {
12785 pub fn BNSimilaritySessionNodeSetView(
12786 node: *mut BNSimilaritySessionNode,
12787 view: *mut BNBinaryView,
12788 );
12789}
12790unsafe extern "C" {
12791 pub fn BNSimilaritySessionNodeGetFile(
12792 node: *mut BNSimilaritySessionNode,
12793 ) -> *mut BNFileMetadata;
12794}
12795unsafe extern "C" {
12796 pub fn BNSimilaritySessionNodeGetLoadOptions(
12797 node: *mut BNSimilaritySessionNode,
12798 ) -> *mut BNSettings;
12799}
12800unsafe extern "C" {
12801 pub fn BNSimilaritySessionNodeGetId(
12802 node: *mut BNSimilaritySessionNode,
12803 ) -> BNSimilaritySessionNodeId;
12804}
12805unsafe extern "C" {
12806 pub fn BNSimilaritySessionNodeCreateEntity(
12807 node: *mut BNSimilaritySessionNode,
12808 info: *const BNSimilarityEntityInfo,
12809 ) -> BNSimilarityEntityId;
12810}
12811unsafe extern "C" {
12812 pub fn BNSimilaritySessionNodeRemoveEntity(
12813 node: *mut BNSimilaritySessionNode,
12814 id: BNSimilarityEntityId,
12815 ) -> bool;
12816}
12817unsafe extern "C" {
12818 pub fn BNSimilaritySessionNodeGetEntity(
12819 node: *mut BNSimilaritySessionNode,
12820 id: BNSimilarityEntityId,
12821 result: *mut BNSimilarityEntityInfo,
12822 ) -> bool;
12823}
12824unsafe extern "C" {
12825 pub fn BNFreeSimilarityEntityInfo(info: *mut BNSimilarityEntityInfo);
12826}
12827unsafe extern "C" {
12828 pub fn BNSimilaritySessionNodeGetEntities(
12829 node: *mut BNSimilaritySessionNode,
12830 count: *mut usize,
12831 ) -> *mut BNSimilarityEntityId;
12832}
12833unsafe extern "C" {
12834 pub fn BNSimilaritySessionNodeAddScheduledEntity(
12835 node: *mut BNSimilaritySessionNode,
12836 id: BNSimilarityEntityId,
12837 ) -> bool;
12838}
12839unsafe extern "C" {
12840 pub fn BNSimilaritySessionNodeRemoveScheduledEntity(
12841 node: *mut BNSimilaritySessionNode,
12842 id: BNSimilarityEntityId,
12843 ) -> bool;
12844}
12845unsafe extern "C" {
12846 pub fn BNSimilaritySessionNodeGetScheduledEntities(
12847 node: *mut BNSimilaritySessionNode,
12848 count: *mut usize,
12849 ) -> *mut BNSimilarityEntityId;
12850}
12851unsafe extern "C" {
12852 pub fn BNSimilaritySessionNodeGetEntityFunction(
12853 node: *mut BNSimilaritySessionNode,
12854 id: BNSimilarityEntityId,
12855 ) -> *mut BNFunction;
12856}
12857unsafe extern "C" {
12858 pub fn BNSimilaritySessionNodeGetResults(
12859 node: *mut BNSimilaritySessionNode,
12860 entity: BNSimilarityEntityId,
12861 count: *mut usize,
12862 ) -> *mut BNSimilarityResultId;
12863}
12864unsafe extern "C" {
12865 pub fn BNSimilaritySessionNodeGetResult(
12866 node: *mut BNSimilaritySessionNode,
12867 resultId: BNSimilarityResultId,
12868 result: *mut BNSimilarityResult,
12869 ) -> bool;
12870}
12871unsafe extern "C" {
12872 pub fn BNSimilaritySessionNodeSetResolvedResult(
12873 node: *mut BNSimilaritySessionNode,
12874 entity: BNSimilarityEntityId,
12875 result: BNSimilarityResultId,
12876 ) -> bool;
12877}
12878unsafe extern "C" {
12879 pub fn BNSimilaritySessionNodeGetResolvedResult(
12880 node: *mut BNSimilaritySessionNode,
12881 entity: BNSimilarityEntityId,
12882 result: *mut BNSimilarityResultId,
12883 ) -> bool;
12884}
12885unsafe extern "C" {
12886 pub fn BNSimilaritySessionNodeClearResolvedResult(
12887 node: *mut BNSimilaritySessionNode,
12888 entity: BNSimilarityEntityId,
12889 ) -> bool;
12890}
12891unsafe extern "C" {
12892 pub fn BNFreeSimilarityEntityList(entities: *mut BNSimilarityEntityId);
12893}
12894unsafe extern "C" {
12895 pub fn BNSimilaritySessionNodeGetIncomingEdges(
12896 node: *mut BNSimilaritySessionNode,
12897 count: *mut usize,
12898 ) -> *mut BNSimilaritySessionNodeId;
12899}
12900unsafe extern "C" {
12901 pub fn BNSimilaritySessionNodeGetOutgoingEdges(
12902 node: *mut BNSimilaritySessionNode,
12903 count: *mut usize,
12904 ) -> *mut BNSimilaritySessionNodeId;
12905}
12906unsafe extern "C" {
12907 pub fn BNFreeSimilaritySessionNodeEdgeList(edges: *mut BNSimilaritySessionNodeId);
12908}
12909unsafe extern "C" {
12910 pub fn BNSimilaritySessionNodeGetIncomingNodes(
12911 node: *mut BNSimilaritySessionNode,
12912 count: *mut usize,
12913 ) -> *mut *mut BNSimilaritySessionNode;
12914}
12915unsafe extern "C" {
12916 pub fn BNSimilaritySessionNodeGetOutgoingNodes(
12917 node: *mut BNSimilaritySessionNode,
12918 count: *mut usize,
12919 ) -> *mut *mut BNSimilaritySessionNode;
12920}
12921unsafe extern "C" {
12922 pub fn BNNewSimilaritySessionNodeReference(
12923 node: *mut BNSimilaritySessionNode,
12924 ) -> *mut BNSimilaritySessionNode;
12925}
12926unsafe extern "C" {
12927 pub fn BNFreeSimilaritySessionNode(node: *mut BNSimilaritySessionNode);
12928}
12929unsafe extern "C" {
12930 pub fn BNSimilaritySessionGraphAddNode(
12931 graph: *mut BNSimilaritySessionGraph,
12932 node: *mut BNSimilaritySessionNode,
12933 );
12934}
12935unsafe extern "C" {
12936 pub fn BNSimilaritySessionGraphRemoveNode(
12937 graph: *mut BNSimilaritySessionGraph,
12938 node: *mut BNSimilaritySessionNode,
12939 );
12940}
12941unsafe extern "C" {
12942 pub fn BNSimilaritySessionGraphIsValidEdge(
12943 graph: *mut BNSimilaritySessionGraph,
12944 from: *mut BNSimilaritySessionNode,
12945 to: *mut BNSimilaritySessionNode,
12946 ) -> bool;
12947}
12948unsafe extern "C" {
12949 pub fn BNSimilaritySessionGraphAddEdge(
12950 graph: *mut BNSimilaritySessionGraph,
12951 from: *mut BNSimilaritySessionNode,
12952 to: *mut BNSimilaritySessionNode,
12953 ) -> bool;
12954}
12955unsafe extern "C" {
12956 pub fn BNSimilaritySessionGraphRemoveEdge(
12957 graph: *mut BNSimilaritySessionGraph,
12958 from: *mut BNSimilaritySessionNode,
12959 to: *mut BNSimilaritySessionNode,
12960 ) -> bool;
12961}
12962unsafe extern "C" {
12963 pub fn BNSimilaritySessionGraphGetNode(
12964 graph: *mut BNSimilaritySessionGraph,
12965 id: BNSimilaritySessionNodeId,
12966 ) -> *mut BNSimilaritySessionNode;
12967}
12968unsafe extern "C" {
12969 pub fn BNSimilaritySessionGraphGetNodes(
12970 graph: *mut BNSimilaritySessionGraph,
12971 count: *mut usize,
12972 ) -> *mut *mut BNSimilaritySessionNode;
12973}
12974unsafe extern "C" {
12975 pub fn BNFreeSimilaritySessionNodeList(nodes: *mut *mut BNSimilaritySessionNode, count: usize);
12976}
12977unsafe extern "C" {
12978 pub fn BNSimilaritySessionGraphGetSchedule(
12979 graph: *mut BNSimilaritySessionGraph,
12980 nodeCounts: *mut *mut usize,
12981 levelCount: *mut usize,
12982 ) -> *mut *mut *mut BNSimilaritySessionNode;
12983}
12984unsafe extern "C" {
12985 pub fn BNFreeSimilaritySessionNodeSchedule(
12986 schedule: *mut *mut *mut BNSimilaritySessionNode,
12987 nodeCounts: *mut usize,
12988 levelCount: usize,
12989 );
12990}
12991unsafe extern "C" {
12992 pub fn BNNewSimilaritySessionGraphReference(
12993 node: *mut BNSimilaritySessionGraph,
12994 ) -> *mut BNSimilaritySessionGraph;
12995}
12996unsafe extern "C" {
12997 pub fn BNFreeSimilaritySessionGraph(graph: *mut BNSimilaritySessionGraph);
12998}
12999unsafe extern "C" {
13000 pub fn BNCreateCustomSimilaritySessionGraphReceiver(
13001 callbacks: *mut BNCustomSimilaritySessionGraphReceiver,
13002 ) -> *mut BNSimilaritySessionGraphReceiver;
13003}
13004unsafe extern "C" {
13005 pub fn BNNewSimilaritySessionGraphReceiverReference(
13006 receiver: *mut BNSimilaritySessionGraphReceiver,
13007 ) -> *mut BNSimilaritySessionGraphReceiver;
13008}
13009unsafe extern "C" {
13010 pub fn BNFreeSimilaritySessionGraphReceiver(receiver: *mut BNSimilaritySessionGraphReceiver);
13011}
13012unsafe extern "C" {
13013 pub fn BNFreeSimilaritySessionGraphReceiverList(
13014 receivers: *mut *mut BNSimilaritySessionGraphReceiver,
13015 count: usize,
13016 );
13017}
13018unsafe extern "C" {
13019 pub fn BNSimilaritySessionGraphReceiverNotifyGraphChanged(
13020 receiver: *mut BNSimilaritySessionGraphReceiver,
13021 );
13022}
13023unsafe extern "C" {
13024 pub fn BNSimilaritySessionGraphAddReceiver(
13025 graph: *mut BNSimilaritySessionGraph,
13026 receiver: *mut BNSimilaritySessionGraphReceiver,
13027 );
13028}
13029unsafe extern "C" {
13030 pub fn BNSimilaritySessionGraphRemoveReceiver(
13031 graph: *mut BNSimilaritySessionGraph,
13032 receiver: *mut BNSimilaritySessionGraphReceiver,
13033 );
13034}
13035unsafe extern "C" {
13036 pub fn BNSimilaritySessionGraphGetReceivers(
13037 graph: *mut BNSimilaritySessionGraph,
13038 count: *mut usize,
13039 ) -> *mut *mut BNSimilaritySessionGraphReceiver;
13040}
13041unsafe extern "C" {
13042 pub fn BNCreateSimilaritySession() -> *mut BNSimilaritySession;
13043}
13044unsafe extern "C" {
13045 pub fn BNSimilaritySessionGetId(session: *mut BNSimilaritySession) -> BNSimilaritySessionId;
13046}
13047unsafe extern "C" {
13048 pub fn BNCreateCustomSimilaritySessionReceiver(
13049 callbacks: *mut BNCustomSimilaritySessionReceiver,
13050 ) -> *mut BNSimilaritySessionReceiver;
13051}
13052unsafe extern "C" {
13053 pub fn BNNewSimilaritySessionReceiverReference(
13054 receiver: *mut BNSimilaritySessionReceiver,
13055 ) -> *mut BNSimilaritySessionReceiver;
13056}
13057unsafe extern "C" {
13058 pub fn BNFreeSimilaritySessionReceiver(receiver: *mut BNSimilaritySessionReceiver);
13059}
13060unsafe extern "C" {
13061 pub fn BNFreeSimilaritySessionReceiverList(
13062 receivers: *mut *mut BNSimilaritySessionReceiver,
13063 count: usize,
13064 );
13065}
13066unsafe extern "C" {
13067 pub fn BNSimilaritySessionReceiverNotifyStart(
13068 receiver: *mut BNSimilaritySessionReceiver,
13069 completion: *mut BNSimilaritySessionCompletion,
13070 );
13071}
13072unsafe extern "C" {
13073 pub fn BNSimilaritySessionReceiverNotifyBatch(
13074 receiver: *mut BNSimilaritySessionReceiver,
13075 node: *mut BNSimilaritySessionNode,
13076 provider: *mut BNSimilarityProvider,
13077 entities: *const BNSimilarityEntityId,
13078 count: usize,
13079 );
13080}
13081unsafe extern "C" {
13082 pub fn BNSimilaritySessionAddProvider(
13083 session: *mut BNSimilaritySession,
13084 provider: *mut BNSimilarityProvider,
13085 );
13086}
13087unsafe extern "C" {
13088 pub fn BNSimilaritySessionRemoveProvider(
13089 session: *mut BNSimilaritySession,
13090 provider: *mut BNSimilarityProvider,
13091 );
13092}
13093unsafe extern "C" {
13094 pub fn BNSimilaritySessionUpdateProviderSettings(
13095 session: *mut BNSimilaritySession,
13096 provider: *mut BNSimilarityProvider,
13097 settings: *mut BNSettings,
13098 ) -> bool;
13099}
13100unsafe extern "C" {
13101 pub fn BNSimilaritySessionGetProvider(
13102 session: *mut BNSimilaritySession,
13103 id: BNSimilarityProviderId,
13104 ) -> *mut BNSimilarityProvider;
13105}
13106unsafe extern "C" {
13107 pub fn BNSimilaritySessionGetProviders(
13108 session: *mut BNSimilaritySession,
13109 count: *mut usize,
13110 ) -> *mut *mut BNSimilarityProvider;
13111}
13112unsafe extern "C" {
13113 pub fn BNFreeSimilarityProviderList(providers: *mut *mut BNSimilarityProvider, count: usize);
13114}
13115unsafe extern "C" {
13116 pub fn BNSimilaritySessionAddResolver(
13117 session: *mut BNSimilaritySession,
13118 resolver: *mut BNSimilaritySessionResolver,
13119 ) -> bool;
13120}
13121unsafe extern "C" {
13122 pub fn BNSimilaritySessionRemoveResolver(
13123 session: *mut BNSimilaritySession,
13124 resolver: *mut BNSimilaritySessionResolver,
13125 ) -> bool;
13126}
13127unsafe extern "C" {
13128 pub fn BNSimilaritySessionUpdateResolverSettings(
13129 session: *mut BNSimilaritySession,
13130 resolver: *mut BNSimilaritySessionResolver,
13131 settings: *mut BNSettings,
13132 ) -> bool;
13133}
13134unsafe extern "C" {
13135 pub fn BNSimilaritySessionGetResolver(
13136 session: *mut BNSimilaritySession,
13137 id: BNSimilaritySessionResolverId,
13138 ) -> *mut BNSimilaritySessionResolver;
13139}
13140unsafe extern "C" {
13141 pub fn BNSimilaritySessionGetResolvers(
13142 session: *mut BNSimilaritySession,
13143 count: *mut usize,
13144 ) -> *mut *mut BNSimilaritySessionResolver;
13145}
13146unsafe extern "C" {
13147 pub fn BNSimilaritySessionAddReceiver(
13148 session: *mut BNSimilaritySession,
13149 receiver: *mut BNSimilaritySessionReceiver,
13150 );
13151}
13152unsafe extern "C" {
13153 pub fn BNSimilaritySessionRemoveReceiver(
13154 session: *mut BNSimilaritySession,
13155 receiver: *mut BNSimilaritySessionReceiver,
13156 );
13157}
13158unsafe extern "C" {
13159 pub fn BNSimilaritySessionGetReceivers(
13160 session: *mut BNSimilaritySession,
13161 count: *mut usize,
13162 ) -> *mut *mut BNSimilaritySessionReceiver;
13163}
13164unsafe extern "C" {
13165 pub fn BNSimilaritySessionGetGraph(
13166 session: *mut BNSimilaritySession,
13167 ) -> *mut BNSimilaritySessionGraph;
13168}
13169unsafe extern "C" {
13170 pub fn BNSimilaritySessionRun(
13171 session: *mut BNSimilaritySession,
13172 ) -> *mut BNSimilaritySessionCompletion;
13173}
13174unsafe extern "C" {
13175 pub fn BNNewSimilaritySessionReference(
13176 session: *mut BNSimilaritySession,
13177 ) -> *mut BNSimilaritySession;
13178}
13179unsafe extern "C" {
13180 pub fn BNFreeSimilaritySession(session: *mut BNSimilaritySession);
13181}
13182unsafe extern "C" {
13183 pub fn BNCreateSimilaritySessionCompletion() -> *mut BNSimilaritySessionCompletion;
13184}
13185unsafe extern "C" {
13186 pub fn BNSimilaritySessionCompletionIsFinished(
13187 completion: *mut BNSimilaritySessionCompletion,
13188 ) -> bool;
13189}
13190unsafe extern "C" {
13191 pub fn BNSimilaritySessionCompletionRequestStop(completion: *mut BNSimilaritySessionCompletion);
13192}
13193unsafe extern "C" {
13194 pub fn BNSimilaritySessionCompletionIsStopRequested(
13195 completion: *mut BNSimilaritySessionCompletion,
13196 ) -> bool;
13197}
13198unsafe extern "C" {
13199 pub fn BNSimilaritySessionCompletionGetProgress(
13200 completion: *mut BNSimilaritySessionCompletion,
13201 query: *const BNSimilaritySessionCompletionQuery,
13202 ) -> f64;
13203}
13204unsafe extern "C" {
13205 pub fn BNSimilaritySessionCompletionSetProgress(
13206 completion: *mut BNSimilaritySessionCompletion,
13207 query: *const BNSimilaritySessionCompletionQuery,
13208 progress: f64,
13209 );
13210}
13211unsafe extern "C" {
13212 pub fn BNSimilaritySessionCompletionGetTiming(
13213 completion: *mut BNSimilaritySessionCompletion,
13214 query: *const BNSimilaritySessionCompletionQuery,
13215 ) -> u64;
13216}
13217unsafe extern "C" {
13218 pub fn BNNewSimilaritySessionCompletionReference(
13219 completion: *mut BNSimilaritySessionCompletion,
13220 ) -> *mut BNSimilaritySessionCompletion;
13221}
13222unsafe extern "C" {
13223 pub fn BNFreeSimilaritySessionCompletion(completion: *mut BNSimilaritySessionCompletion);
13224}
13225unsafe extern "C" {
13226 pub fn BNAllocString(contents: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
13227}
13228unsafe extern "C" {
13229 pub fn BNAllocStringWithLength(
13230 contents: *const ::std::os::raw::c_char,
13231 len: usize,
13232 ) -> *mut ::std::os::raw::c_char;
13233}
13234unsafe extern "C" {
13235 pub fn BNFreeString(str_: *mut ::std::os::raw::c_char);
13236}
13237unsafe extern "C" {
13238 pub fn BNAllocStringList(
13239 contents: *mut *const ::std::os::raw::c_char,
13240 size: usize,
13241 ) -> *mut *mut ::std::os::raw::c_char;
13242}
13243unsafe extern "C" {
13244 pub fn BNAllocUninitializedStringList(size: usize) -> *mut *mut ::std::os::raw::c_char;
13245}
13246unsafe extern "C" {
13247 pub fn BNFreeStringList(strs: *mut *mut ::std::os::raw::c_char, count: usize);
13248}
13249unsafe extern "C" {
13250 pub fn BNShutdown();
13251}
13252unsafe extern "C" {
13253 pub fn BNIsShutdownRequested() -> bool;
13254}
13255unsafe extern "C" {
13256 pub fn BNGetVersionInfo() -> BNVersionInfo;
13257}
13258unsafe extern "C" {
13259 pub fn BNGetVersionString() -> *mut ::std::os::raw::c_char;
13260}
13261unsafe extern "C" {
13262 pub fn BNGetBuildId() -> u32;
13263}
13264unsafe extern "C" {
13265 pub fn BNGetCurrentCoreABIVersion() -> u32;
13266}
13267unsafe extern "C" {
13268 pub fn BNGetMinimumCoreABIVersion() -> u32;
13269}
13270unsafe extern "C" {
13271 pub fn BNGetSerialNumber() -> *mut ::std::os::raw::c_char;
13272}
13273unsafe extern "C" {
13274 pub fn BNGetLicenseExpirationTime() -> u64;
13275}
13276unsafe extern "C" {
13277 pub fn BNIsLicenseValidated() -> bool;
13278}
13279unsafe extern "C" {
13280 pub fn BNGetLicensedUserEmail() -> *mut ::std::os::raw::c_char;
13281}
13282unsafe extern "C" {
13283 pub fn BNGetProduct() -> *mut ::std::os::raw::c_char;
13284}
13285unsafe extern "C" {
13286 pub fn BNGetProductType() -> *mut ::std::os::raw::c_char;
13287}
13288unsafe extern "C" {
13289 pub fn BNGetLicenseAddons(count: *mut usize) -> *mut BNLicenseAddon;
13290}
13291unsafe extern "C" {
13292 pub fn BNFreeLicenseAddons(addons: *mut BNLicenseAddon, count: usize);
13293}
13294unsafe extern "C" {
13295 pub fn BNGetLicenseCount() -> ::std::os::raw::c_int;
13296}
13297unsafe extern "C" {
13298 pub fn BNIsUIEnabled() -> bool;
13299}
13300unsafe extern "C" {
13301 pub fn BNSetLicense(licenseData: *const ::std::os::raw::c_char);
13302}
13303unsafe extern "C" {
13304 pub fn BNIsDatabase(filename: *const ::std::os::raw::c_char) -> bool;
13305}
13306unsafe extern "C" {
13307 pub fn BNIsDatabaseFromData(data: *const ::std::os::raw::c_void, len: usize) -> bool;
13308}
13309unsafe extern "C" {
13310 pub fn BNAuthenticateEnterpriseServerWithToken(
13311 token: *const ::std::os::raw::c_char,
13312 remember: bool,
13313 ) -> bool;
13314}
13315unsafe extern "C" {
13316 pub fn BNAuthenticateEnterpriseServerWithCredentials(
13317 username: *const ::std::os::raw::c_char,
13318 password: *const ::std::os::raw::c_char,
13319 remember: bool,
13320 ) -> bool;
13321}
13322unsafe extern "C" {
13323 pub fn BNAuthenticateEnterpriseServerWithMethod(
13324 method: *const ::std::os::raw::c_char,
13325 remember: bool,
13326 ) -> bool;
13327}
13328unsafe extern "C" {
13329 pub fn BNGetEnterpriseServerAuthenticationMethods(
13330 methods: *mut *mut *mut ::std::os::raw::c_char,
13331 names: *mut *mut *mut ::std::os::raw::c_char,
13332 ) -> usize;
13333}
13334unsafe extern "C" {
13335 pub fn BNDeauthenticateEnterpriseServer() -> bool;
13336}
13337unsafe extern "C" {
13338 pub fn BNCancelEnterpriseServerAuthentication();
13339}
13340unsafe extern "C" {
13341 pub fn BNConnectEnterpriseServer() -> bool;
13342}
13343unsafe extern "C" {
13344 pub fn BNUpdateEnterpriseServerLicense(timeout: u64) -> bool;
13345}
13346unsafe extern "C" {
13347 pub fn BNReleaseEnterpriseServerLicense() -> bool;
13348}
13349unsafe extern "C" {
13350 pub fn BNIsEnterpriseServerConnected() -> bool;
13351}
13352unsafe extern "C" {
13353 pub fn BNIsEnterpriseServerAuthenticated() -> bool;
13354}
13355unsafe extern "C" {
13356 pub fn BNGetEnterpriseServerUsername() -> *mut ::std::os::raw::c_char;
13357}
13358unsafe extern "C" {
13359 pub fn BNGetEnterpriseServerToken() -> *mut ::std::os::raw::c_char;
13360}
13361unsafe extern "C" {
13362 pub fn BNGetEnterpriseServerUrl() -> *mut ::std::os::raw::c_char;
13363}
13364unsafe extern "C" {
13365 pub fn BNSetEnterpriseServerUrl(url: *const ::std::os::raw::c_char) -> bool;
13366}
13367unsafe extern "C" {
13368 pub fn BNGetEnterpriseServerName() -> *mut ::std::os::raw::c_char;
13369}
13370unsafe extern "C" {
13371 pub fn BNGetEnterpriseServerId() -> *mut ::std::os::raw::c_char;
13372}
13373unsafe extern "C" {
13374 pub fn BNGetEnterpriseServerVersion() -> u64;
13375}
13376unsafe extern "C" {
13377 pub fn BNGetEnterpriseServerBuildId() -> *mut ::std::os::raw::c_char;
13378}
13379unsafe extern "C" {
13380 pub fn BNGetEnterpriseServerLicenseExpirationTime() -> u64;
13381}
13382unsafe extern "C" {
13383 pub fn BNGetEnterpriseServerLicenseDuration() -> u64;
13384}
13385unsafe extern "C" {
13386 pub fn BNIsEnterpriseServerFloatingLicense() -> bool;
13387}
13388unsafe extern "C" {
13389 pub fn BNGetEnterpriseServerReservationTimeLimit() -> u64;
13390}
13391unsafe extern "C" {
13392 pub fn BNIsEnterpriseServerLicenseStillActivated() -> bool;
13393}
13394unsafe extern "C" {
13395 pub fn BNGetEnterpriseServerLastError() -> *mut ::std::os::raw::c_char;
13396}
13397unsafe extern "C" {
13398 pub fn BNRegisterEnterpriseServerNotification(notify: *mut BNEnterpriseServerCallbacks);
13399}
13400unsafe extern "C" {
13401 pub fn BNUnregisterEnterpriseServerNotification(notify: *mut BNEnterpriseServerCallbacks);
13402}
13403unsafe extern "C" {
13404 pub fn BNIsEnterpriseServerInitialized() -> bool;
13405}
13406unsafe extern "C" {
13407 pub fn BNInitializeEnterpriseServer() -> bool;
13408}
13409unsafe extern "C" {
13410 pub fn BNRegisterObjectDestructionCallbacks(callbacks: *mut BNObjectDestructionCallbacks);
13411}
13412unsafe extern "C" {
13413 pub fn BNUnregisterObjectDestructionCallbacks(callbacks: *mut BNObjectDestructionCallbacks);
13414}
13415unsafe extern "C" {
13416 pub fn BNGetUniqueIdentifierString() -> *mut ::std::os::raw::c_char;
13417}
13418unsafe extern "C" {
13419 #[doc = " Plugin initialization"]
13420 pub fn BNInitPlugins(allowUserPlugins: bool) -> bool;
13421}
13422unsafe extern "C" {
13423 pub fn BNDisablePlugins();
13424}
13425unsafe extern "C" {
13426 pub fn BNIsPluginsEnabled() -> bool;
13427}
13428unsafe extern "C" {
13429 pub fn BNGetInstallDirectory() -> *mut ::std::os::raw::c_char;
13430}
13431unsafe extern "C" {
13432 pub fn BNGetBundledPluginDirectory() -> *mut ::std::os::raw::c_char;
13433}
13434unsafe extern "C" {
13435 pub fn BNGetBundledScriptPluginDirectory() -> *mut ::std::os::raw::c_char;
13436}
13437unsafe extern "C" {
13438 pub fn BNSetBundledPluginDirectory(path: *const ::std::os::raw::c_char);
13439}
13440unsafe extern "C" {
13441 pub fn BNSetBundledScriptPluginDirectory(path: *const ::std::os::raw::c_char);
13442}
13443unsafe extern "C" {
13444 pub fn BNGetUserDirectory() -> *mut ::std::os::raw::c_char;
13445}
13446unsafe extern "C" {
13447 pub fn BNGetUserPluginDirectory() -> *mut ::std::os::raw::c_char;
13448}
13449unsafe extern "C" {
13450 pub fn BNGetRepositoriesDirectory() -> *mut ::std::os::raw::c_char;
13451}
13452unsafe extern "C" {
13453 pub fn BNGetSettingsFileName() -> *mut ::std::os::raw::c_char;
13454}
13455unsafe extern "C" {
13456 pub fn BNSaveLastRun();
13457}
13458unsafe extern "C" {
13459 pub fn BNGetPathRelativeToBundledPluginDirectory(
13460 path: *const ::std::os::raw::c_char,
13461 ) -> *mut ::std::os::raw::c_char;
13462}
13463unsafe extern "C" {
13464 pub fn BNGetPathRelativeToUserPluginDirectory(
13465 path: *const ::std::os::raw::c_char,
13466 ) -> *mut ::std::os::raw::c_char;
13467}
13468unsafe extern "C" {
13469 pub fn BNGetPathRelativeToUserDirectory(
13470 path: *const ::std::os::raw::c_char,
13471 ) -> *mut ::std::os::raw::c_char;
13472}
13473unsafe extern "C" {
13474 pub fn BNExecuteWorkerProcess(
13475 path: *const ::std::os::raw::c_char,
13476 args: *mut *const ::std::os::raw::c_char,
13477 input: *mut BNDataBuffer,
13478 output: *mut *mut ::std::os::raw::c_char,
13479 error: *mut *mut ::std::os::raw::c_char,
13480 stdoutIsText: bool,
13481 stderrIsText: bool,
13482 ) -> bool;
13483}
13484unsafe extern "C" {
13485 pub fn BNSetCurrentPluginLoadOrder(order: BNPluginLoadPhase);
13486}
13487unsafe extern "C" {
13488 pub fn BNAddRequiredPluginDependency(name: *const ::std::os::raw::c_char);
13489}
13490unsafe extern "C" {
13491 pub fn BNAddOptionalPluginDependency(name: *const ::std::os::raw::c_char);
13492}
13493unsafe extern "C" {
13494 #[doc = " Logging"]
13495 pub fn BNLog(
13496 session: usize,
13497 level: BNLogLevel,
13498 logger_name: *const ::std::os::raw::c_char,
13499 tid: usize,
13500 fmt: *const ::std::os::raw::c_char,
13501 ...
13502 );
13503}
13504unsafe extern "C" {
13505 pub fn BNLogDebug(fmt: *const ::std::os::raw::c_char, ...);
13506}
13507unsafe extern "C" {
13508 pub fn BNLogInfo(fmt: *const ::std::os::raw::c_char, ...);
13509}
13510unsafe extern "C" {
13511 pub fn BNLogWarn(fmt: *const ::std::os::raw::c_char, ...);
13512}
13513unsafe extern "C" {
13514 pub fn BNLogError(fmt: *const ::std::os::raw::c_char, ...);
13515}
13516unsafe extern "C" {
13517 pub fn BNLogAlert(fmt: *const ::std::os::raw::c_char, ...);
13518}
13519unsafe extern "C" {
13520 pub fn BNLogString(
13521 session: usize,
13522 level: BNLogLevel,
13523 logger_name: *const ::std::os::raw::c_char,
13524 tid: usize,
13525 str_: *const ::std::os::raw::c_char,
13526 );
13527}
13528unsafe extern "C" {
13529 pub fn BNLogWithStackTrace(
13530 session: usize,
13531 level: BNLogLevel,
13532 logger_name: *const ::std::os::raw::c_char,
13533 tid: usize,
13534 stackTrace: *const ::std::os::raw::c_char,
13535 fmt: *const ::std::os::raw::c_char,
13536 ...
13537 );
13538}
13539unsafe extern "C" {
13540 pub fn BNLogDebugWithStackTrace(
13541 stackTrace: *const ::std::os::raw::c_char,
13542 fmt: *const ::std::os::raw::c_char,
13543 ...
13544 );
13545}
13546unsafe extern "C" {
13547 pub fn BNLogInfoWithStackTrace(
13548 stackTrace: *const ::std::os::raw::c_char,
13549 fmt: *const ::std::os::raw::c_char,
13550 ...
13551 );
13552}
13553unsafe extern "C" {
13554 pub fn BNLogWarnWithStackTrace(
13555 stackTrace: *const ::std::os::raw::c_char,
13556 fmt: *const ::std::os::raw::c_char,
13557 ...
13558 );
13559}
13560unsafe extern "C" {
13561 pub fn BNLogErrorWithStackTrace(
13562 stackTrace: *const ::std::os::raw::c_char,
13563 fmt: *const ::std::os::raw::c_char,
13564 ...
13565 );
13566}
13567unsafe extern "C" {
13568 pub fn BNLogAlertWithStackTrace(
13569 stackTrace: *const ::std::os::raw::c_char,
13570 fmt: *const ::std::os::raw::c_char,
13571 ...
13572 );
13573}
13574unsafe extern "C" {
13575 pub fn BNLogStringWithStackTrace(
13576 session: usize,
13577 level: BNLogLevel,
13578 logger_name: *const ::std::os::raw::c_char,
13579 tid: usize,
13580 stackTrace: *const ::std::os::raw::c_char,
13581 str_: *const ::std::os::raw::c_char,
13582 );
13583}
13584unsafe extern "C" {
13585 pub fn BNNewLoggerReference(logger: *mut BNLogger) -> *mut BNLogger;
13586}
13587unsafe extern "C" {
13588 pub fn BNFreeLogger(logger: *mut BNLogger);
13589}
13590unsafe extern "C" {
13591 pub fn BNLoggerLog(
13592 logger: *mut BNLogger,
13593 level: BNLogLevel,
13594 fmt: *const ::std::os::raw::c_char,
13595 ...
13596 );
13597}
13598unsafe extern "C" {
13599 pub fn BNLoggerLogString(
13600 logger: *mut BNLogger,
13601 level: BNLogLevel,
13602 msg: *const ::std::os::raw::c_char,
13603 );
13604}
13605unsafe extern "C" {
13606 pub fn BNLoggerLogWithStackTrace(
13607 logger: *mut BNLogger,
13608 level: BNLogLevel,
13609 stackTrace: *const ::std::os::raw::c_char,
13610 fmt: *const ::std::os::raw::c_char,
13611 ...
13612 );
13613}
13614unsafe extern "C" {
13615 pub fn BNLoggerLogStringWithStackTrace(
13616 logger: *mut BNLogger,
13617 level: BNLogLevel,
13618 stackTrace: *const ::std::os::raw::c_char,
13619 msg: *const ::std::os::raw::c_char,
13620 );
13621}
13622unsafe extern "C" {
13623 pub fn BNLoggerGetName(logger: *mut BNLogger) -> *mut ::std::os::raw::c_char;
13624}
13625unsafe extern "C" {
13626 pub fn BNLoggerGetSessionId(logger: *mut BNLogger) -> usize;
13627}
13628unsafe extern "C" {
13629 pub fn BNLogCreateLogger(
13630 loggerName: *const ::std::os::raw::c_char,
13631 sessionId: usize,
13632 ) -> *mut BNLogger;
13633}
13634unsafe extern "C" {
13635 pub fn BNLogGetLogger(
13636 loggerName: *const ::std::os::raw::c_char,
13637 sessionId: usize,
13638 ) -> *mut BNLogger;
13639}
13640unsafe extern "C" {
13641 pub fn BNLogGetLoggerNames(count: *mut usize) -> *mut *mut ::std::os::raw::c_char;
13642}
13643unsafe extern "C" {
13644 pub fn BNRegisterLogListener(listener: *mut BNLogListener);
13645}
13646unsafe extern "C" {
13647 pub fn BNUnregisterLogListener(listener: *mut BNLogListener);
13648}
13649unsafe extern "C" {
13650 pub fn BNUpdateLogListeners();
13651}
13652unsafe extern "C" {
13653 pub fn BNLogToStdout(minimumLevel: BNLogLevel);
13654}
13655unsafe extern "C" {
13656 pub fn BNLogToStderr(minimumLevel: BNLogLevel);
13657}
13658unsafe extern "C" {
13659 pub fn BNLogToFile(
13660 minimumLevel: BNLogLevel,
13661 path: *const ::std::os::raw::c_char,
13662 append: bool,
13663 ) -> bool;
13664}
13665unsafe extern "C" {
13666 pub fn BNCloseLogs();
13667}
13668unsafe extern "C" {
13669 #[doc = " Temporary files"]
13670 pub fn BNCreateTemporaryFile() -> *mut BNTemporaryFile;
13671}
13672unsafe extern "C" {
13673 pub fn BNCreateTemporaryFileWithContents(data: *mut BNDataBuffer) -> *mut BNTemporaryFile;
13674}
13675unsafe extern "C" {
13676 pub fn BNNewTemporaryFileReference(file: *mut BNTemporaryFile) -> *mut BNTemporaryFile;
13677}
13678unsafe extern "C" {
13679 pub fn BNFreeTemporaryFile(file: *mut BNTemporaryFile);
13680}
13681unsafe extern "C" {
13682 pub fn BNGetTemporaryFilePath(file: *mut BNTemporaryFile) -> *mut ::std::os::raw::c_char;
13683}
13684unsafe extern "C" {
13685 pub fn BNGetTemporaryFileContents(file: *mut BNTemporaryFile) -> *mut BNDataBuffer;
13686}
13687unsafe extern "C" {
13688 #[doc = " Data buffer management"]
13689 pub fn BNCreateDataBuffer(data: *const ::std::os::raw::c_void, len: usize)
13690 -> *mut BNDataBuffer;
13691}
13692unsafe extern "C" {
13693 pub fn BNDuplicateDataBuffer(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
13694}
13695unsafe extern "C" {
13696 pub fn BNFreeDataBuffer(buf: *mut BNDataBuffer);
13697}
13698unsafe extern "C" {
13699 pub fn BNGetDataBufferContents(buf: *mut BNDataBuffer) -> *mut ::std::os::raw::c_void;
13700}
13701unsafe extern "C" {
13702 pub fn BNGetDataBufferContentsAt(
13703 buf: *mut BNDataBuffer,
13704 offset: usize,
13705 ) -> *mut ::std::os::raw::c_void;
13706}
13707unsafe extern "C" {
13708 pub fn BNGetDataBufferLength(buf: *mut BNDataBuffer) -> usize;
13709}
13710unsafe extern "C" {
13711 pub fn BNGetDataBufferSlice(
13712 buf: *mut BNDataBuffer,
13713 start: usize,
13714 len: usize,
13715 ) -> *mut BNDataBuffer;
13716}
13717unsafe extern "C" {
13718 pub fn BNSetDataBufferLength(buf: *mut BNDataBuffer, len: usize);
13719}
13720unsafe extern "C" {
13721 pub fn BNClearDataBuffer(buf: *mut BNDataBuffer);
13722}
13723unsafe extern "C" {
13724 pub fn BNSetDataBufferContents(
13725 buf: *mut BNDataBuffer,
13726 data: *mut ::std::os::raw::c_void,
13727 len: usize,
13728 );
13729}
13730unsafe extern "C" {
13731 pub fn BNAssignDataBuffer(dest: *mut BNDataBuffer, src: *mut BNDataBuffer);
13732}
13733unsafe extern "C" {
13734 pub fn BNAppendDataBuffer(dest: *mut BNDataBuffer, src: *mut BNDataBuffer);
13735}
13736unsafe extern "C" {
13737 pub fn BNAppendDataBufferContents(
13738 dest: *mut BNDataBuffer,
13739 src: *const ::std::os::raw::c_void,
13740 len: usize,
13741 );
13742}
13743unsafe extern "C" {
13744 pub fn BNGetDataBufferByte(buf: *mut BNDataBuffer, offset: usize) -> u8;
13745}
13746unsafe extern "C" {
13747 pub fn BNSetDataBufferByte(buf: *mut BNDataBuffer, offset: usize, val: u8);
13748}
13749unsafe extern "C" {
13750 pub fn BNDataBufferToEscapedString(
13751 buf: *mut BNDataBuffer,
13752 nullTerminates: bool,
13753 escapePrintable: bool,
13754 ) -> *mut ::std::os::raw::c_char;
13755}
13756unsafe extern "C" {
13757 pub fn BNDecodeEscapedString(str_: *const ::std::os::raw::c_char) -> *mut BNDataBuffer;
13758}
13759unsafe extern "C" {
13760 pub fn BNDataBufferToBase64(buf: *mut BNDataBuffer) -> *mut ::std::os::raw::c_char;
13761}
13762unsafe extern "C" {
13763 pub fn BNDecodeBase64(str_: *const ::std::os::raw::c_char) -> *mut BNDataBuffer;
13764}
13765unsafe extern "C" {
13766 pub fn BNZlibCompress(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
13767}
13768unsafe extern "C" {
13769 pub fn BNZlibDecompress(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
13770}
13771unsafe extern "C" {
13772 pub fn BNLzmaDecompress(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
13773}
13774unsafe extern "C" {
13775 pub fn BNLzma2Decompress(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
13776}
13777unsafe extern "C" {
13778 pub fn BNXzDecompress(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
13779}
13780unsafe extern "C" {
13781 #[doc = " Save settings"]
13782 pub fn BNCreateSaveSettings() -> *mut BNSaveSettings;
13783}
13784unsafe extern "C" {
13785 pub fn BNNewSaveSettingsReference(settings: *mut BNSaveSettings) -> *mut BNSaveSettings;
13786}
13787unsafe extern "C" {
13788 pub fn BNFreeSaveSettings(settings: *mut BNSaveSettings);
13789}
13790unsafe extern "C" {
13791 pub fn BNIsSaveSettingsOptionSet(settings: *mut BNSaveSettings, option: BNSaveOption) -> bool;
13792}
13793unsafe extern "C" {
13794 pub fn BNSetSaveSettingsOption(
13795 settings: *mut BNSaveSettings,
13796 option: BNSaveOption,
13797 state: bool,
13798 );
13799}
13800unsafe extern "C" {
13801 pub fn BNGetSaveSettingsName(settings: *mut BNSaveSettings) -> *mut ::std::os::raw::c_char;
13802}
13803unsafe extern "C" {
13804 pub fn BNSetSaveSettingsName(
13805 settings: *mut BNSaveSettings,
13806 name: *const ::std::os::raw::c_char,
13807 );
13808}
13809unsafe extern "C" {
13810 #[doc = " File metadata object"]
13811 pub fn BNCreateFileMetadata() -> *mut BNFileMetadata;
13812}
13813unsafe extern "C" {
13814 pub fn BNNewFileReference(file: *mut BNFileMetadata) -> *mut BNFileMetadata;
13815}
13816unsafe extern "C" {
13817 pub fn BNFreeFileMetadata(file: *mut BNFileMetadata);
13818}
13819unsafe extern "C" {
13820 pub fn BNCloseFile(file: *mut BNFileMetadata);
13821}
13822unsafe extern "C" {
13823 pub fn BNSetFileMetadataNavigationHandler(
13824 file: *mut BNFileMetadata,
13825 handler: *mut BNNavigationHandler,
13826 );
13827}
13828unsafe extern "C" {
13829 pub fn BNIsFileModified(file: *mut BNFileMetadata) -> bool;
13830}
13831unsafe extern "C" {
13832 pub fn BNIsAnalysisChanged(file: *mut BNFileMetadata) -> bool;
13833}
13834unsafe extern "C" {
13835 pub fn BNMarkFileModified(file: *mut BNFileMetadata);
13836}
13837unsafe extern "C" {
13838 pub fn BNMarkFileSaved(file: *mut BNFileMetadata);
13839}
13840unsafe extern "C" {
13841 pub fn BNIsBackedByDatabase(
13842 file: *mut BNFileMetadata,
13843 binaryViewType: *const ::std::os::raw::c_char,
13844 ) -> bool;
13845}
13846unsafe extern "C" {
13847 pub fn BNCreateDatabase(
13848 data: *mut BNBinaryView,
13849 path: *const ::std::os::raw::c_char,
13850 settings: *mut BNSaveSettings,
13851 ) -> bool;
13852}
13853unsafe extern "C" {
13854 pub fn BNCreateDatabaseWithProgress(
13855 data: *mut BNBinaryView,
13856 path: *const ::std::os::raw::c_char,
13857 ctxt: *mut ::std::os::raw::c_void,
13858 progress: BNProgressFunction,
13859 settings: *mut BNSaveSettings,
13860 ) -> bool;
13861}
13862unsafe extern "C" {
13863 pub fn BNOpenExistingDatabase(
13864 file: *mut BNFileMetadata,
13865 path: *const ::std::os::raw::c_char,
13866 ) -> *mut BNBinaryView;
13867}
13868unsafe extern "C" {
13869 pub fn BNOpenExistingDatabaseWithProgress(
13870 file: *mut BNFileMetadata,
13871 path: *const ::std::os::raw::c_char,
13872 ctxt: *mut ::std::os::raw::c_void,
13873 progress: BNProgressFunction,
13874 ) -> *mut BNBinaryView;
13875}
13876unsafe extern "C" {
13877 pub fn BNOpenDatabaseForConfiguration(
13878 file: *mut BNFileMetadata,
13879 path: *const ::std::os::raw::c_char,
13880 ) -> *mut BNBinaryView;
13881}
13882unsafe extern "C" {
13883 pub fn BNReopenMovedDatabase(
13884 file: *mut BNFileMetadata,
13885 path: *const ::std::os::raw::c_char,
13886 ) -> bool;
13887}
13888unsafe extern "C" {
13889 pub fn BNSaveAutoSnapshot(data: *mut BNBinaryView, settings: *mut BNSaveSettings) -> bool;
13890}
13891unsafe extern "C" {
13892 pub fn BNSaveAutoSnapshotWithProgress(
13893 data: *mut BNBinaryView,
13894 ctxt: *mut ::std::os::raw::c_void,
13895 progress: BNProgressFunction,
13896 settings: *mut BNSaveSettings,
13897 ) -> bool;
13898}
13899unsafe extern "C" {
13900 pub fn BNGetSnapshotData(
13901 file: *mut BNFileMetadata,
13902 data: *mut BNKeyValueStore,
13903 cache: *mut BNKeyValueStore,
13904 ctxt: *mut ::std::os::raw::c_void,
13905 progress: BNProgressFunction,
13906 );
13907}
13908unsafe extern "C" {
13909 pub fn BNApplySnapshotData(
13910 file: *mut BNFileMetadata,
13911 view: *mut BNBinaryView,
13912 data: *mut BNKeyValueStore,
13913 cache: *mut BNKeyValueStore,
13914 ctxt: *mut ::std::os::raw::c_void,
13915 progress: BNProgressFunction,
13916 openForConfiguration: bool,
13917 restoreRawView: bool,
13918 );
13919}
13920unsafe extern "C" {
13921 pub fn BNGetFileMetadataDatabase(file: *mut BNFileMetadata) -> *mut BNDatabase;
13922}
13923unsafe extern "C" {
13924 #[doc = " Key value store"]
13925 pub fn BNCreateKeyValueStore() -> *mut BNKeyValueStore;
13926}
13927unsafe extern "C" {
13928 pub fn BNCreateKeyValueStoreFromDataBuffer(buffer: *mut BNDataBuffer) -> *mut BNKeyValueStore;
13929}
13930unsafe extern "C" {
13931 pub fn BNNewKeyValueStoreReference(store: *mut BNKeyValueStore) -> *mut BNKeyValueStore;
13932}
13933unsafe extern "C" {
13934 pub fn BNFreeKeyValueStore(store: *mut BNKeyValueStore);
13935}
13936unsafe extern "C" {
13937 pub fn BNGetKeyValueStoreKeys(
13938 store: *mut BNKeyValueStore,
13939 count: *mut usize,
13940 ) -> *mut *mut ::std::os::raw::c_char;
13941}
13942unsafe extern "C" {
13943 pub fn BNKeyValueStoreHasValue(
13944 store: *mut BNKeyValueStore,
13945 name: *const ::std::os::raw::c_char,
13946 ) -> bool;
13947}
13948unsafe extern "C" {
13949 pub fn BNGetKeyValueStoreValue(
13950 store: *mut BNKeyValueStore,
13951 name: *const ::std::os::raw::c_char,
13952 ) -> *mut ::std::os::raw::c_char;
13953}
13954unsafe extern "C" {
13955 pub fn BNGetKeyValueStoreValueHash(
13956 store: *mut BNKeyValueStore,
13957 name: *const ::std::os::raw::c_char,
13958 ) -> *mut BNDataBuffer;
13959}
13960unsafe extern "C" {
13961 pub fn BNGetKeyValueStoreBuffer(
13962 store: *mut BNKeyValueStore,
13963 name: *const ::std::os::raw::c_char,
13964 ) -> *mut BNDataBuffer;
13965}
13966unsafe extern "C" {
13967 pub fn BNSetKeyValueStoreValue(
13968 store: *mut BNKeyValueStore,
13969 name: *const ::std::os::raw::c_char,
13970 value: *const ::std::os::raw::c_char,
13971 ) -> bool;
13972}
13973unsafe extern "C" {
13974 pub fn BNSetKeyValueStoreBuffer(
13975 store: *mut BNKeyValueStore,
13976 name: *const ::std::os::raw::c_char,
13977 value: *const BNDataBuffer,
13978 ) -> bool;
13979}
13980unsafe extern "C" {
13981 pub fn BNGetKeyValueStoreSerializedData(store: *mut BNKeyValueStore) -> *mut BNDataBuffer;
13982}
13983unsafe extern "C" {
13984 pub fn BNBeginKeyValueStoreNamespace(
13985 store: *mut BNKeyValueStore,
13986 name: *const ::std::os::raw::c_char,
13987 );
13988}
13989unsafe extern "C" {
13990 pub fn BNEndKeyValueStoreNamespace(store: *mut BNKeyValueStore);
13991}
13992unsafe extern "C" {
13993 pub fn BNIsKeyValueStoreEmpty(store: *mut BNKeyValueStore) -> bool;
13994}
13995unsafe extern "C" {
13996 pub fn BNGetKeyValueStoreValueSize(store: *mut BNKeyValueStore) -> usize;
13997}
13998unsafe extern "C" {
13999 pub fn BNGetKeyValueStoreDataSize(store: *mut BNKeyValueStore) -> usize;
14000}
14001unsafe extern "C" {
14002 pub fn BNGetKeyValueStoreValueStorageSize(store: *mut BNKeyValueStore) -> usize;
14003}
14004unsafe extern "C" {
14005 pub fn BNGetKeyValueStoreNamespaceSize(store: *mut BNKeyValueStore) -> usize;
14006}
14007unsafe extern "C" {
14008 #[doc = " Project object"]
14009 pub fn BNNewProjectReference(project: *mut BNProject) -> *mut BNProject;
14010}
14011unsafe extern "C" {
14012 pub fn BNFreeProject(project: *mut BNProject);
14013}
14014unsafe extern "C" {
14015 pub fn BNFreeProjectList(projects: *mut *mut BNProject, count: usize);
14016}
14017unsafe extern "C" {
14018 pub fn BNGetOpenProjects(count: *mut usize) -> *mut *mut BNProject;
14019}
14020unsafe extern "C" {
14021 pub fn BNCreateProject(
14022 path: *const ::std::os::raw::c_char,
14023 name: *const ::std::os::raw::c_char,
14024 ) -> *mut BNProject;
14025}
14026unsafe extern "C" {
14027 pub fn BNOpenProject(path: *const ::std::os::raw::c_char) -> *mut BNProject;
14028}
14029unsafe extern "C" {
14030 pub fn BNProjectOpen(project: *mut BNProject) -> bool;
14031}
14032unsafe extern "C" {
14033 pub fn BNProjectClose(project: *mut BNProject) -> bool;
14034}
14035unsafe extern "C" {
14036 pub fn BNProjectGetId(project: *mut BNProject) -> *mut ::std::os::raw::c_char;
14037}
14038unsafe extern "C" {
14039 pub fn BNProjectIsOpen(project: *mut BNProject) -> bool;
14040}
14041unsafe extern "C" {
14042 pub fn BNProjectGetPath(project: *mut BNProject) -> *mut ::std::os::raw::c_char;
14043}
14044unsafe extern "C" {
14045 pub fn BNProjectGetFilePathInProject(
14046 project: *mut BNProject,
14047 file: *mut BNProjectFile,
14048 ) -> *mut ::std::os::raw::c_char;
14049}
14050unsafe extern "C" {
14051 pub fn BNProjectGetName(project: *mut BNProject) -> *mut ::std::os::raw::c_char;
14052}
14053unsafe extern "C" {
14054 pub fn BNProjectSetName(project: *mut BNProject, name: *const ::std::os::raw::c_char) -> bool;
14055}
14056unsafe extern "C" {
14057 pub fn BNProjectGetDescription(project: *mut BNProject) -> *mut ::std::os::raw::c_char;
14058}
14059unsafe extern "C" {
14060 pub fn BNProjectSetDescription(
14061 project: *mut BNProject,
14062 description: *const ::std::os::raw::c_char,
14063 ) -> bool;
14064}
14065unsafe extern "C" {
14066 pub fn BNProjectQueryMetadata(
14067 project: *mut BNProject,
14068 key: *const ::std::os::raw::c_char,
14069 ) -> *mut BNMetadata;
14070}
14071unsafe extern "C" {
14072 pub fn BNProjectStoreMetadata(
14073 project: *mut BNProject,
14074 key: *const ::std::os::raw::c_char,
14075 value: *mut BNMetadata,
14076 ) -> bool;
14077}
14078unsafe extern "C" {
14079 pub fn BNProjectRemoveMetadata(
14080 project: *mut BNProject,
14081 key: *const ::std::os::raw::c_char,
14082 ) -> bool;
14083}
14084unsafe extern "C" {
14085 pub fn BNProjectCreateFileFromPath(
14086 project: *mut BNProject,
14087 path: *const ::std::os::raw::c_char,
14088 folder: *mut BNProjectFolder,
14089 name: *const ::std::os::raw::c_char,
14090 description: *const ::std::os::raw::c_char,
14091 ctxt: *mut ::std::os::raw::c_void,
14092 progress: BNProgressFunction,
14093 ) -> *mut BNProjectFile;
14094}
14095unsafe extern "C" {
14096 pub fn BNProjectCreateFileFromPathUnsafe(
14097 project: *mut BNProject,
14098 path: *const ::std::os::raw::c_char,
14099 folder: *mut BNProjectFolder,
14100 name: *const ::std::os::raw::c_char,
14101 description: *const ::std::os::raw::c_char,
14102 id: *const ::std::os::raw::c_char,
14103 creationTimestamp: i64,
14104 ctxt: *mut ::std::os::raw::c_void,
14105 progress: BNProgressFunction,
14106 ) -> *mut BNProjectFile;
14107}
14108unsafe extern "C" {
14109 pub fn BNProjectCreateFile(
14110 project: *mut BNProject,
14111 contents: *const u8,
14112 contentsSize: usize,
14113 folder: *mut BNProjectFolder,
14114 name: *const ::std::os::raw::c_char,
14115 description: *const ::std::os::raw::c_char,
14116 ctxt: *mut ::std::os::raw::c_void,
14117 progress: BNProgressFunction,
14118 ) -> *mut BNProjectFile;
14119}
14120unsafe extern "C" {
14121 pub fn BNProjectCreateFileUnsafe(
14122 project: *mut BNProject,
14123 contents: *const u8,
14124 contentsSize: usize,
14125 folder: *mut BNProjectFolder,
14126 name: *const ::std::os::raw::c_char,
14127 description: *const ::std::os::raw::c_char,
14128 id: *const ::std::os::raw::c_char,
14129 creationTimestamp: i64,
14130 ctxt: *mut ::std::os::raw::c_void,
14131 progress: BNProgressFunction,
14132 ) -> *mut BNProjectFile;
14133}
14134unsafe extern "C" {
14135 pub fn BNProjectGetFiles(project: *mut BNProject, count: *mut usize)
14136 -> *mut *mut BNProjectFile;
14137}
14138unsafe extern "C" {
14139 pub fn BNProjectGetFileById(
14140 project: *mut BNProject,
14141 id: *const ::std::os::raw::c_char,
14142 ) -> *mut BNProjectFile;
14143}
14144unsafe extern "C" {
14145 pub fn BNProjectGetFileByPathOnDisk(
14146 project: *mut BNProject,
14147 path: *const ::std::os::raw::c_char,
14148 ) -> *mut BNProjectFile;
14149}
14150unsafe extern "C" {
14151 pub fn BNProjectGetFilesByPathInProject(
14152 project: *mut BNProject,
14153 path: *const ::std::os::raw::c_char,
14154 count: *mut usize,
14155 ) -> *mut *mut BNProjectFile;
14156}
14157unsafe extern "C" {
14158 pub fn BNProjectGetFilesInFolder(
14159 project: *mut BNProject,
14160 folder: *mut BNProjectFolder,
14161 count: *mut usize,
14162 ) -> *mut *mut BNProjectFile;
14163}
14164unsafe extern "C" {
14165 pub fn BNProjectPushFile(project: *mut BNProject, file: *mut BNProjectFile) -> bool;
14166}
14167unsafe extern "C" {
14168 pub fn BNProjectDeleteFile(project: *mut BNProject, file: *mut BNProjectFile) -> bool;
14169}
14170unsafe extern "C" {
14171 pub fn BNProjectCreateFolderFromPath(
14172 project: *mut BNProject,
14173 path: *const ::std::os::raw::c_char,
14174 parent: *mut BNProjectFolder,
14175 description: *const ::std::os::raw::c_char,
14176 ctxt: *mut ::std::os::raw::c_void,
14177 progress: BNProgressFunction,
14178 ) -> *mut BNProjectFolder;
14179}
14180unsafe extern "C" {
14181 pub fn BNProjectCreateFolder(
14182 project: *mut BNProject,
14183 parent: *mut BNProjectFolder,
14184 name: *const ::std::os::raw::c_char,
14185 description: *const ::std::os::raw::c_char,
14186 ) -> *mut BNProjectFolder;
14187}
14188unsafe extern "C" {
14189 pub fn BNProjectCreateFolderUnsafe(
14190 project: *mut BNProject,
14191 parent: *mut BNProjectFolder,
14192 name: *const ::std::os::raw::c_char,
14193 description: *const ::std::os::raw::c_char,
14194 id: *const ::std::os::raw::c_char,
14195 ) -> *mut BNProjectFolder;
14196}
14197unsafe extern "C" {
14198 pub fn BNProjectGetFolders(
14199 project: *mut BNProject,
14200 count: *mut usize,
14201 ) -> *mut *mut BNProjectFolder;
14202}
14203unsafe extern "C" {
14204 pub fn BNProjectGetFolderById(
14205 project: *mut BNProject,
14206 id: *const ::std::os::raw::c_char,
14207 ) -> *mut BNProjectFolder;
14208}
14209unsafe extern "C" {
14210 pub fn BNProjectPushFolder(project: *mut BNProject, folder: *mut BNProjectFolder) -> bool;
14211}
14212unsafe extern "C" {
14213 pub fn BNProjectDeleteFolder(
14214 project: *mut BNProject,
14215 folder: *mut BNProjectFolder,
14216 ctxt: *mut ::std::os::raw::c_void,
14217 progress: BNProgressFunction,
14218 ) -> bool;
14219}
14220unsafe extern "C" {
14221 pub fn BNProjectBeginBulkOperation(project: *mut BNProject) -> bool;
14222}
14223unsafe extern "C" {
14224 pub fn BNProjectEndBulkOperation(project: *mut BNProject) -> bool;
14225}
14226unsafe extern "C" {
14227 pub fn BNProjectGetRemoteProject(project: *mut BNProject) -> *mut BNRemoteProject;
14228}
14229unsafe extern "C" {
14230 #[doc = " ProjectFile object"]
14231 pub fn BNNewProjectFileReference(file: *mut BNProjectFile) -> *mut BNProjectFile;
14232}
14233unsafe extern "C" {
14234 pub fn BNFreeProjectFile(file: *mut BNProjectFile);
14235}
14236unsafe extern "C" {
14237 pub fn BNFreeProjectFileList(files: *mut *mut BNProjectFile, count: usize);
14238}
14239unsafe extern "C" {
14240 pub fn BNProjectFileGetPathOnDisk(file: *mut BNProjectFile) -> *mut ::std::os::raw::c_char;
14241}
14242unsafe extern "C" {
14243 pub fn BNProjectFileGetPathInProject(file: *const BNProjectFile)
14244 -> *mut ::std::os::raw::c_char;
14245}
14246unsafe extern "C" {
14247 pub fn BNProjectFileExistsOnDisk(file: *mut BNProjectFile) -> bool;
14248}
14249unsafe extern "C" {
14250 pub fn BNProjectFileGetName(file: *mut BNProjectFile) -> *mut ::std::os::raw::c_char;
14251}
14252unsafe extern "C" {
14253 pub fn BNProjectFileSetName(
14254 file: *mut BNProjectFile,
14255 name: *const ::std::os::raw::c_char,
14256 ) -> bool;
14257}
14258unsafe extern "C" {
14259 pub fn BNProjectFileGetDescription(file: *mut BNProjectFile) -> *mut ::std::os::raw::c_char;
14260}
14261unsafe extern "C" {
14262 pub fn BNProjectFileSetDescription(
14263 file: *mut BNProjectFile,
14264 description: *const ::std::os::raw::c_char,
14265 ) -> bool;
14266}
14267unsafe extern "C" {
14268 pub fn BNProjectFileGetId(file: *mut BNProjectFile) -> *mut ::std::os::raw::c_char;
14269}
14270unsafe extern "C" {
14271 pub fn BNProjectFileGetFolder(file: *mut BNProjectFile) -> *mut BNProjectFolder;
14272}
14273unsafe extern "C" {
14274 pub fn BNProjectFileSetFolder(file: *mut BNProjectFile, folder: *mut BNProjectFolder) -> bool;
14275}
14276unsafe extern "C" {
14277 pub fn BNProjectFileGetProject(file: *mut BNProjectFile) -> *mut BNProject;
14278}
14279unsafe extern "C" {
14280 pub fn BNProjectFileExport(
14281 file: *mut BNProjectFile,
14282 destination: *const ::std::os::raw::c_char,
14283 ) -> bool;
14284}
14285unsafe extern "C" {
14286 pub fn BNProjectFileGetCreationTimestamp(file: *mut BNProjectFile) -> i64;
14287}
14288unsafe extern "C" {
14289 pub fn BNProjectFileAddDependency(file: *mut BNProjectFile, dep: *mut BNProjectFile) -> bool;
14290}
14291unsafe extern "C" {
14292 pub fn BNProjectFileRemoveDependency(file: *mut BNProjectFile, dep: *mut BNProjectFile)
14293 -> bool;
14294}
14295unsafe extern "C" {
14296 pub fn BNProjectFileGetDependencies(
14297 file: *mut BNProjectFile,
14298 count: *mut usize,
14299 ) -> *mut *mut BNProjectFile;
14300}
14301unsafe extern "C" {
14302 pub fn BNProjectFileGetRequiredBy(
14303 file: *mut BNProjectFile,
14304 count: *mut usize,
14305 ) -> *mut *mut BNProjectFile;
14306}
14307unsafe extern "C" {
14308 #[doc = " ProjectFolder object"]
14309 pub fn BNNewProjectFolderReference(folder: *mut BNProjectFolder) -> *mut BNProjectFolder;
14310}
14311unsafe extern "C" {
14312 pub fn BNFreeProjectFolder(folder: *mut BNProjectFolder);
14313}
14314unsafe extern "C" {
14315 pub fn BNFreeProjectFolderList(folders: *mut *mut BNProjectFolder, count: usize);
14316}
14317unsafe extern "C" {
14318 pub fn BNProjectFolderGetId(folder: *mut BNProjectFolder) -> *mut ::std::os::raw::c_char;
14319}
14320unsafe extern "C" {
14321 pub fn BNProjectFolderGetName(folder: *mut BNProjectFolder) -> *mut ::std::os::raw::c_char;
14322}
14323unsafe extern "C" {
14324 pub fn BNProjectFolderSetName(
14325 folder: *mut BNProjectFolder,
14326 name: *const ::std::os::raw::c_char,
14327 ) -> bool;
14328}
14329unsafe extern "C" {
14330 pub fn BNProjectFolderGetDescription(
14331 folder: *mut BNProjectFolder,
14332 ) -> *mut ::std::os::raw::c_char;
14333}
14334unsafe extern "C" {
14335 pub fn BNProjectFolderSetDescription(
14336 folder: *mut BNProjectFolder,
14337 description: *const ::std::os::raw::c_char,
14338 ) -> bool;
14339}
14340unsafe extern "C" {
14341 pub fn BNProjectFolderGetParent(folder: *mut BNProjectFolder) -> *mut BNProjectFolder;
14342}
14343unsafe extern "C" {
14344 pub fn BNProjectFolderSetParent(
14345 folder: *mut BNProjectFolder,
14346 parent: *mut BNProjectFolder,
14347 ) -> bool;
14348}
14349unsafe extern "C" {
14350 pub fn BNProjectFolderGetProject(folder: *mut BNProjectFolder) -> *mut BNProject;
14351}
14352unsafe extern "C" {
14353 pub fn BNProjectFolderExport(
14354 folder: *mut BNProjectFolder,
14355 destination: *const ::std::os::raw::c_char,
14356 ctxt: *mut ::std::os::raw::c_void,
14357 progress: BNProgressFunction,
14358 ) -> bool;
14359}
14360unsafe extern "C" {
14361 pub fn BNProjectFolderGetFiles(
14362 folder: *mut BNProjectFolder,
14363 count: *mut usize,
14364 ) -> *mut *mut BNProjectFile;
14365}
14366unsafe extern "C" {
14367 #[doc = " ExternalLibrary object"]
14368 pub fn BNNewExternalLibraryReference(lib: *mut BNExternalLibrary) -> *mut BNExternalLibrary;
14369}
14370unsafe extern "C" {
14371 pub fn BNFreeExternalLibrary(lib: *mut BNExternalLibrary);
14372}
14373unsafe extern "C" {
14374 pub fn BNFreeExternalLibraryList(libs: *mut *mut BNExternalLibrary, count: usize);
14375}
14376unsafe extern "C" {
14377 pub fn BNExternalLibraryGetName(lib: *mut BNExternalLibrary) -> *mut ::std::os::raw::c_char;
14378}
14379unsafe extern "C" {
14380 pub fn BNExternalLibrarySetBackingFile(lib: *mut BNExternalLibrary, file: *mut BNProjectFile);
14381}
14382unsafe extern "C" {
14383 pub fn BNExternalLibraryGetBackingFile(lib: *mut BNExternalLibrary) -> *mut BNProjectFile;
14384}
14385unsafe extern "C" {
14386 #[doc = " ExternalLocation object"]
14387 pub fn BNNewExternalLocationReference(loc: *mut BNExternalLocation) -> *mut BNExternalLocation;
14388}
14389unsafe extern "C" {
14390 pub fn BNFreeExternalLocation(loc: *mut BNExternalLocation);
14391}
14392unsafe extern "C" {
14393 pub fn BNFreeExternalLocationList(locs: *mut *mut BNExternalLocation, count: usize);
14394}
14395unsafe extern "C" {
14396 pub fn BNExternalLocationGetSourceSymbol(loc: *mut BNExternalLocation) -> *mut BNSymbol;
14397}
14398unsafe extern "C" {
14399 pub fn BNExternalLocationGetTargetAddress(loc: *mut BNExternalLocation) -> u64;
14400}
14401unsafe extern "C" {
14402 pub fn BNExternalLocationGetTargetSymbol(
14403 loc: *mut BNExternalLocation,
14404 ) -> *mut ::std::os::raw::c_char;
14405}
14406unsafe extern "C" {
14407 pub fn BNExternalLocationGetExternalLibrary(
14408 loc: *mut BNExternalLocation,
14409 ) -> *mut BNExternalLibrary;
14410}
14411unsafe extern "C" {
14412 pub fn BNExternalLocationHasTargetAddress(loc: *mut BNExternalLocation) -> bool;
14413}
14414unsafe extern "C" {
14415 pub fn BNExternalLocationHasTargetSymbol(loc: *mut BNExternalLocation) -> bool;
14416}
14417unsafe extern "C" {
14418 pub fn BNExternalLocationSetTargetAddress(
14419 loc: *mut BNExternalLocation,
14420 address: *mut u64,
14421 ) -> bool;
14422}
14423unsafe extern "C" {
14424 pub fn BNExternalLocationSetTargetSymbol(
14425 loc: *mut BNExternalLocation,
14426 symbol: *const ::std::os::raw::c_char,
14427 ) -> bool;
14428}
14429unsafe extern "C" {
14430 pub fn BNExternalLocationSetExternalLibrary(
14431 loc: *mut BNExternalLocation,
14432 library: *mut BNExternalLibrary,
14433 );
14434}
14435unsafe extern "C" {
14436 #[doc = " Database object"]
14437 pub fn BNNewDatabaseReference(database: *mut BNDatabase) -> *mut BNDatabase;
14438}
14439unsafe extern "C" {
14440 pub fn BNFreeDatabase(database: *mut BNDatabase);
14441}
14442unsafe extern "C" {
14443 pub fn BNCreateDatabaseInstance() -> *mut BNDatabase;
14444}
14445unsafe extern "C" {
14446 pub fn BNDatabaseOpenExisting(
14447 database: *mut BNDatabase,
14448 path: *const ::std::os::raw::c_char,
14449 ) -> bool;
14450}
14451unsafe extern "C" {
14452 pub fn BNSetDatabaseCurrentSnapshot(database: *mut BNDatabase, id: i64);
14453}
14454unsafe extern "C" {
14455 pub fn BNGetDatabaseCurrentSnapshot(database: *mut BNDatabase) -> *mut BNSnapshot;
14456}
14457unsafe extern "C" {
14458 pub fn BNGetDatabaseSnapshots(
14459 database: *mut BNDatabase,
14460 count: *mut usize,
14461 ) -> *mut *mut BNSnapshot;
14462}
14463unsafe extern "C" {
14464 pub fn BNGetDatabaseSnapshot(database: *mut BNDatabase, id: i64) -> *mut BNSnapshot;
14465}
14466unsafe extern "C" {
14467 pub fn BNWriteDatabaseSnapshotData(
14468 database: *mut BNDatabase,
14469 parents: *mut i64,
14470 parentCount: usize,
14471 file: *mut BNBinaryView,
14472 name: *const ::std::os::raw::c_char,
14473 data: *mut BNKeyValueStore,
14474 autoSave: bool,
14475 ctxt: *mut ::std::os::raw::c_void,
14476 progress: BNProgressFunction,
14477 ) -> i64;
14478}
14479unsafe extern "C" {
14480 pub fn BNTrimDatabaseSnapshot(database: *mut BNDatabase, id: i64) -> bool;
14481}
14482unsafe extern "C" {
14483 pub fn BNRemoveDatabaseSnapshot(database: *mut BNDatabase, id: i64) -> bool;
14484}
14485unsafe extern "C" {
14486 pub fn BNGetDatabaseGlobalKeys(
14487 database: *mut BNDatabase,
14488 count: *mut usize,
14489 ) -> *mut *mut ::std::os::raw::c_char;
14490}
14491unsafe extern "C" {
14492 pub fn BNDatabaseHasGlobal(
14493 database: *mut BNDatabase,
14494 key: *const ::std::os::raw::c_char,
14495 ) -> ::std::os::raw::c_int;
14496}
14497unsafe extern "C" {
14498 pub fn BNReadDatabaseGlobal(
14499 database: *mut BNDatabase,
14500 key: *const ::std::os::raw::c_char,
14501 ) -> *mut ::std::os::raw::c_char;
14502}
14503unsafe extern "C" {
14504 pub fn BNWriteDatabaseGlobal(
14505 database: *mut BNDatabase,
14506 key: *const ::std::os::raw::c_char,
14507 val: *const ::std::os::raw::c_char,
14508 ) -> bool;
14509}
14510unsafe extern "C" {
14511 pub fn BNReadDatabaseGlobalData(
14512 database: *mut BNDatabase,
14513 key: *const ::std::os::raw::c_char,
14514 ) -> *mut BNDataBuffer;
14515}
14516unsafe extern "C" {
14517 pub fn BNWriteDatabaseGlobalData(
14518 database: *mut BNDatabase,
14519 key: *const ::std::os::raw::c_char,
14520 val: *mut BNDataBuffer,
14521 ) -> bool;
14522}
14523unsafe extern "C" {
14524 pub fn BNReadDatabaseAnalysisCache(database: *mut BNDatabase) -> *mut BNKeyValueStore;
14525}
14526unsafe extern "C" {
14527 pub fn BNWriteDatabaseAnalysisCache(
14528 database: *mut BNDatabase,
14529 val: *mut BNKeyValueStore,
14530 ) -> bool;
14531}
14532unsafe extern "C" {
14533 pub fn BNSnapshotHasData(db: *mut BNDatabase, id: i64) -> bool;
14534}
14535unsafe extern "C" {
14536 #[doc = " Database snapshots"]
14537 pub fn BNNewSnapshotReference(snapshot: *mut BNSnapshot) -> *mut BNSnapshot;
14538}
14539unsafe extern "C" {
14540 pub fn BNFreeSnapshot(snapshot: *mut BNSnapshot);
14541}
14542unsafe extern "C" {
14543 pub fn BNFreeSnapshotList(snapshots: *mut *mut BNSnapshot, count: usize);
14544}
14545unsafe extern "C" {
14546 pub fn BNGetSnapshotDatabase(snapshot: *mut BNSnapshot) -> *mut BNDatabase;
14547}
14548unsafe extern "C" {
14549 pub fn BNGetSnapshotId(snapshot: *mut BNSnapshot) -> i64;
14550}
14551unsafe extern "C" {
14552 pub fn BNGetSnapshotFirstParent(snapshot: *mut BNSnapshot) -> *mut BNSnapshot;
14553}
14554unsafe extern "C" {
14555 pub fn BNGetSnapshotParents(
14556 snapshot: *mut BNSnapshot,
14557 count: *mut usize,
14558 ) -> *mut *mut BNSnapshot;
14559}
14560unsafe extern "C" {
14561 pub fn BNGetSnapshotChildren(
14562 snapshot: *mut BNSnapshot,
14563 count: *mut usize,
14564 ) -> *mut *mut BNSnapshot;
14565}
14566unsafe extern "C" {
14567 pub fn BNGetSnapshotName(snapshot: *mut BNSnapshot) -> *mut ::std::os::raw::c_char;
14568}
14569unsafe extern "C" {
14570 pub fn BNSetSnapshotName(snapshot: *mut BNSnapshot, name: *const ::std::os::raw::c_char);
14571}
14572unsafe extern "C" {
14573 pub fn BNIsSnapshotAutoSave(snapshot: *mut BNSnapshot) -> bool;
14574}
14575unsafe extern "C" {
14576 pub fn BNSnapshotHasContents(snapshot: *mut BNSnapshot) -> bool;
14577}
14578unsafe extern "C" {
14579 pub fn BNSnapshotHasUndo(snapshot: *mut BNSnapshot) -> bool;
14580}
14581unsafe extern "C" {
14582 pub fn BNGetSnapshotFileContents(snapshot: *mut BNSnapshot) -> *mut BNDataBuffer;
14583}
14584unsafe extern "C" {
14585 pub fn BNGetSnapshotFileContentsHash(snapshot: *mut BNSnapshot) -> *mut BNDataBuffer;
14586}
14587unsafe extern "C" {
14588 pub fn BNReadSnapshotData(snapshot: *mut BNSnapshot) -> *mut BNKeyValueStore;
14589}
14590unsafe extern "C" {
14591 pub fn BNReadSnapshotDataWithProgress(
14592 snapshot: *mut BNSnapshot,
14593 ctxt: *mut ::std::os::raw::c_void,
14594 progress: BNProgressFunction,
14595 ) -> *mut BNKeyValueStore;
14596}
14597unsafe extern "C" {
14598 pub fn BNGetSnapshotUndoData(snapshot: *mut BNSnapshot) -> *mut BNDataBuffer;
14599}
14600unsafe extern "C" {
14601 pub fn BNGetSnapshotUndoEntries(
14602 snapshot: *mut BNSnapshot,
14603 file: *mut BNFileMetadata,
14604 count: *mut usize,
14605 ) -> *mut *mut BNUndoEntry;
14606}
14607unsafe extern "C" {
14608 pub fn BNGetSnapshotUndoEntriesWithProgress(
14609 snapshot: *mut BNSnapshot,
14610 file: *mut BNFileMetadata,
14611 ctxt: *mut ::std::os::raw::c_void,
14612 progress: BNProgressFunction,
14613 count: *mut usize,
14614 ) -> *mut *mut BNUndoEntry;
14615}
14616unsafe extern "C" {
14617 pub fn BNSnapshotHasAncestor(snapshot: *mut BNSnapshot, other: *mut BNSnapshot) -> bool;
14618}
14619unsafe extern "C" {
14620 pub fn BNSnapshotStoreData(
14621 snapshot: *mut BNSnapshot,
14622 data: *mut BNKeyValueStore,
14623 ctxt: *mut ::std::os::raw::c_void,
14624 progress: BNProgressFunction,
14625 ) -> bool;
14626}
14627unsafe extern "C" {
14628 #[doc = " Undo actions"]
14629 pub fn BNNewUndoActionReference(action: *mut BNUndoAction) -> *mut BNUndoAction;
14630}
14631unsafe extern "C" {
14632 pub fn BNFreeUndoAction(action: *mut BNUndoAction);
14633}
14634unsafe extern "C" {
14635 pub fn BNFreeUndoActionList(actions: *mut *mut BNUndoAction, count: usize);
14636}
14637unsafe extern "C" {
14638 pub fn BNUndoActionGetSummaryText(action: *mut BNUndoAction) -> *mut ::std::os::raw::c_char;
14639}
14640unsafe extern "C" {
14641 pub fn BNUndoActionGetSummary(
14642 action: *mut BNUndoAction,
14643 tokenCount: *mut usize,
14644 ) -> *mut BNInstructionTextToken;
14645}
14646unsafe extern "C" {
14647 #[doc = " Undo entries"]
14648 pub fn BNNewUndoEntryReference(entry: *mut BNUndoEntry) -> *mut BNUndoEntry;
14649}
14650unsafe extern "C" {
14651 pub fn BNFreeUndoEntry(entry: *mut BNUndoEntry);
14652}
14653unsafe extern "C" {
14654 pub fn BNFreeUndoEntryList(entrys: *mut *mut BNUndoEntry, count: usize);
14655}
14656unsafe extern "C" {
14657 pub fn BNUndoEntryGetId(entry: *mut BNUndoEntry) -> *mut ::std::os::raw::c_char;
14658}
14659unsafe extern "C" {
14660 pub fn BNUndoEntryGetActions(
14661 entry: *mut BNUndoEntry,
14662 count: *mut usize,
14663 ) -> *mut *mut BNUndoAction;
14664}
14665unsafe extern "C" {
14666 pub fn BNUndoEntryGetTimestamp(entry: *mut BNUndoEntry) -> u64;
14667}
14668unsafe extern "C" {
14669 pub fn BNRebase(data: *mut BNBinaryView, address: u64) -> bool;
14670}
14671unsafe extern "C" {
14672 pub fn BNRebaseWithProgress(
14673 data: *mut BNBinaryView,
14674 address: u64,
14675 ctxt: *mut ::std::os::raw::c_void,
14676 progress: BNProgressFunction,
14677 ) -> bool;
14678}
14679unsafe extern "C" {
14680 pub fn BNCreateSnapshotedView(
14681 data: *mut BNBinaryView,
14682 viewName: *const ::std::os::raw::c_char,
14683 ) -> bool;
14684}
14685unsafe extern "C" {
14686 pub fn BNCreateSnapshotedViewWithProgress(
14687 data: *mut BNBinaryView,
14688 viewName: *const ::std::os::raw::c_char,
14689 ctxt: *mut ::std::os::raw::c_void,
14690 progress: BNProgressFunction,
14691 ) -> bool;
14692}
14693unsafe extern "C" {
14694 pub fn BNGetOriginalFilename(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
14695}
14696unsafe extern "C" {
14697 pub fn BNSetOriginalFilename(file: *mut BNFileMetadata, name: *const ::std::os::raw::c_char);
14698}
14699unsafe extern "C" {
14700 pub fn BNGetFilename(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
14701}
14702unsafe extern "C" {
14703 pub fn BNSetFilename(file: *mut BNFileMetadata, name: *const ::std::os::raw::c_char);
14704}
14705unsafe extern "C" {
14706 pub fn BNGetVirtualPath(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
14707}
14708unsafe extern "C" {
14709 pub fn BNSetVirtualPath(file: *mut BNFileMetadata, path: *const ::std::os::raw::c_char);
14710}
14711unsafe extern "C" {
14712 pub fn BNGetDisplayName(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
14713}
14714unsafe extern "C" {
14715 pub fn BNSetDisplayName(file: *mut BNFileMetadata, name: *const ::std::os::raw::c_char);
14716}
14717unsafe extern "C" {
14718 pub fn BNGetProjectFile(file: *mut BNFileMetadata) -> *mut BNProjectFile;
14719}
14720unsafe extern "C" {
14721 pub fn BNSetProjectFile(file: *mut BNFileMetadata, pfile: *mut BNProjectFile);
14722}
14723unsafe extern "C" {
14724 pub fn BNBeginUndoActions(
14725 file: *mut BNFileMetadata,
14726 anonymousAllowed: bool,
14727 ) -> *mut ::std::os::raw::c_char;
14728}
14729unsafe extern "C" {
14730 pub fn BNCommitUndoActions(file: *mut BNFileMetadata, id: *const ::std::os::raw::c_char);
14731}
14732unsafe extern "C" {
14733 pub fn BNRevertUndoActions(file: *mut BNFileMetadata, id: *const ::std::os::raw::c_char);
14734}
14735unsafe extern "C" {
14736 pub fn BNForgetUndoActions(file: *mut BNFileMetadata, id: *const ::std::os::raw::c_char);
14737}
14738unsafe extern "C" {
14739 pub fn BNCanUndo(file: *mut BNFileMetadata) -> bool;
14740}
14741unsafe extern "C" {
14742 pub fn BNUndo(file: *mut BNFileMetadata) -> bool;
14743}
14744unsafe extern "C" {
14745 pub fn BNCanRedo(file: *mut BNFileMetadata) -> bool;
14746}
14747unsafe extern "C" {
14748 pub fn BNRedo(file: *mut BNFileMetadata) -> bool;
14749}
14750unsafe extern "C" {
14751 pub fn BNGetUndoEntries(file: *mut BNFileMetadata, count: *mut usize) -> *mut *mut BNUndoEntry;
14752}
14753unsafe extern "C" {
14754 pub fn BNGetRedoEntries(file: *mut BNFileMetadata, count: *mut usize) -> *mut *mut BNUndoEntry;
14755}
14756unsafe extern "C" {
14757 pub fn BNGetLastUndoEntry(file: *mut BNFileMetadata) -> *mut BNUndoEntry;
14758}
14759unsafe extern "C" {
14760 pub fn BNGetLastRedoEntry(file: *mut BNFileMetadata) -> *mut BNUndoEntry;
14761}
14762unsafe extern "C" {
14763 pub fn BNGetLastUndoEntryTitle(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
14764}
14765unsafe extern "C" {
14766 pub fn BNGetLastRedoEntryTitle(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
14767}
14768unsafe extern "C" {
14769 pub fn BNFreeUndoEntries(entries: *mut *mut BNUndoEntry, count: usize);
14770}
14771unsafe extern "C" {
14772 pub fn BNClearUndoEntries(file: *mut BNFileMetadata);
14773}
14774unsafe extern "C" {
14775 pub fn BNNewUserReference(user: *mut BNUser) -> *mut BNUser;
14776}
14777unsafe extern "C" {
14778 pub fn BNFreeUser(user: *mut BNUser);
14779}
14780unsafe extern "C" {
14781 pub fn BNGetUsers(file: *mut BNFileMetadata, count: *mut usize) -> *mut *mut BNUser;
14782}
14783unsafe extern "C" {
14784 pub fn BNFreeUserList(users: *mut *mut BNUser, count: usize);
14785}
14786unsafe extern "C" {
14787 pub fn BNGetUserName(user: *mut BNUser) -> *mut ::std::os::raw::c_char;
14788}
14789unsafe extern "C" {
14790 pub fn BNGetUserEmail(user: *mut BNUser) -> *mut ::std::os::raw::c_char;
14791}
14792unsafe extern "C" {
14793 pub fn BNGetUserId(user: *mut BNUser) -> *mut ::std::os::raw::c_char;
14794}
14795unsafe extern "C" {
14796 pub fn BNGetCurrentView(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
14797}
14798unsafe extern "C" {
14799 pub fn BNGetCurrentOffset(file: *mut BNFileMetadata) -> u64;
14800}
14801unsafe extern "C" {
14802 pub fn BNNavigate(
14803 file: *mut BNFileMetadata,
14804 view: *const ::std::os::raw::c_char,
14805 offset: u64,
14806 ) -> bool;
14807}
14808unsafe extern "C" {
14809 pub fn BNGetFileViewOfType(
14810 file: *mut BNFileMetadata,
14811 name: *const ::std::os::raw::c_char,
14812 ) -> *mut BNBinaryView;
14813}
14814unsafe extern "C" {
14815 pub fn BNGetExistingViews(
14816 file: *mut BNFileMetadata,
14817 count: *mut usize,
14818 ) -> *mut *mut ::std::os::raw::c_char;
14819}
14820unsafe extern "C" {
14821 pub fn BNFileMetadataGetSessionId(file: *mut BNFileMetadata) -> usize;
14822}
14823unsafe extern "C" {
14824 pub fn BNIsSnapshotDataAppliedWithoutError(view: *mut BNFileMetadata) -> bool;
14825}
14826unsafe extern "C" {
14827 pub fn BNUnregisterViewOfType(
14828 file: *mut BNFileMetadata,
14829 type_: *const ::std::os::raw::c_char,
14830 view: *mut BNBinaryView,
14831 );
14832}
14833unsafe extern "C" {
14834 #[doc = " Memory Map"]
14835 pub fn BNGetBaseMemoryMapDescription(view: *mut BNBinaryView) -> *mut ::std::os::raw::c_char;
14836}
14837unsafe extern "C" {
14838 pub fn BNGetMemoryMapDescription(view: *mut BNBinaryView) -> *mut ::std::os::raw::c_char;
14839}
14840unsafe extern "C" {
14841 pub fn BNSetLogicalMemoryMapEnabled(view: *mut BNBinaryView, enabled: bool);
14842}
14843unsafe extern "C" {
14844 pub fn BNIsMemoryMapActivated(view: *mut BNBinaryView) -> bool;
14845}
14846unsafe extern "C" {
14847 pub fn BNAddBinaryMemoryRegion(
14848 view: *mut BNBinaryView,
14849 name: *const ::std::os::raw::c_char,
14850 start: u64,
14851 data: *mut BNBinaryView,
14852 flags: u32,
14853 ) -> bool;
14854}
14855unsafe extern "C" {
14856 pub fn BNAddDataMemoryRegion(
14857 view: *mut BNBinaryView,
14858 name: *const ::std::os::raw::c_char,
14859 start: u64,
14860 data: *mut BNDataBuffer,
14861 flags: u32,
14862 ) -> bool;
14863}
14864unsafe extern "C" {
14865 pub fn BNAddUnbackedMemoryRegion(
14866 view: *mut BNBinaryView,
14867 name: *const ::std::os::raw::c_char,
14868 start: u64,
14869 length: u64,
14870 flags: u32,
14871 fill: u8,
14872 ) -> bool;
14873}
14874unsafe extern "C" {
14875 pub fn BNAddRemoteMemoryRegion(
14876 view: *mut BNBinaryView,
14877 name: *const ::std::os::raw::c_char,
14878 start: u64,
14879 accessor: *mut BNFileAccessor,
14880 flags: u32,
14881 ) -> bool;
14882}
14883unsafe extern "C" {
14884 pub fn BNRemoveMemoryRegion(
14885 view: *mut BNBinaryView,
14886 name: *const ::std::os::raw::c_char,
14887 ) -> bool;
14888}
14889unsafe extern "C" {
14890 pub fn BNGetActiveMemoryRegionAt(
14891 view: *mut BNBinaryView,
14892 addr: u64,
14893 ) -> *mut ::std::os::raw::c_char;
14894}
14895unsafe extern "C" {
14896 pub fn BNGetMemoryRegionFlags(
14897 view: *mut BNBinaryView,
14898 name: *const ::std::os::raw::c_char,
14899 ) -> u32;
14900}
14901unsafe extern "C" {
14902 pub fn BNSetMemoryRegionFlags(
14903 view: *mut BNBinaryView,
14904 name: *const ::std::os::raw::c_char,
14905 flags: u32,
14906 ) -> bool;
14907}
14908unsafe extern "C" {
14909 pub fn BNIsMemoryRegionEnabled(
14910 view: *mut BNBinaryView,
14911 name: *const ::std::os::raw::c_char,
14912 ) -> bool;
14913}
14914unsafe extern "C" {
14915 pub fn BNSetMemoryRegionEnabled(
14916 view: *mut BNBinaryView,
14917 name: *const ::std::os::raw::c_char,
14918 enable: bool,
14919 ) -> bool;
14920}
14921unsafe extern "C" {
14922 pub fn BNIsMemoryRegionRebaseable(
14923 view: *mut BNBinaryView,
14924 name: *const ::std::os::raw::c_char,
14925 ) -> bool;
14926}
14927unsafe extern "C" {
14928 pub fn BNSetMemoryRegionRebaseable(
14929 view: *mut BNBinaryView,
14930 name: *const ::std::os::raw::c_char,
14931 rebaseable: bool,
14932 ) -> bool;
14933}
14934unsafe extern "C" {
14935 pub fn BNGetMemoryRegionFill(
14936 view: *mut BNBinaryView,
14937 name: *const ::std::os::raw::c_char,
14938 ) -> u8;
14939}
14940unsafe extern "C" {
14941 pub fn BNSetMemoryRegionFill(
14942 view: *mut BNBinaryView,
14943 name: *const ::std::os::raw::c_char,
14944 fill: u8,
14945 ) -> bool;
14946}
14947unsafe extern "C" {
14948 pub fn BNGetMemoryRegionDisplayName(
14949 view: *mut BNBinaryView,
14950 name: *const ::std::os::raw::c_char,
14951 ) -> *mut ::std::os::raw::c_char;
14952}
14953unsafe extern "C" {
14954 pub fn BNSetMemoryRegionDisplayName(
14955 view: *mut BNBinaryView,
14956 name: *const ::std::os::raw::c_char,
14957 displayName: *const ::std::os::raw::c_char,
14958 ) -> bool;
14959}
14960unsafe extern "C" {
14961 pub fn BNIsMemoryRegionLocal(
14962 view: *mut BNBinaryView,
14963 name: *const ::std::os::raw::c_char,
14964 ) -> bool;
14965}
14966unsafe extern "C" {
14967 pub fn BNGetMemoryRegionInfo(
14968 view: *mut BNBinaryView,
14969 name: *const ::std::os::raw::c_char,
14970 result: *mut BNMemoryRegionInfo,
14971 ) -> bool;
14972}
14973unsafe extern "C" {
14974 pub fn BNGetActiveMemoryRegionInfoAt(
14975 view: *mut BNBinaryView,
14976 addr: u64,
14977 result: *mut BNMemoryRegionInfo,
14978 ) -> bool;
14979}
14980unsafe extern "C" {
14981 pub fn BNGetResolvedMemoryRangeAt(
14982 view: *mut BNBinaryView,
14983 addr: u64,
14984 result: *mut BNResolvedMemoryRange,
14985 ) -> bool;
14986}
14987unsafe extern "C" {
14988 pub fn BNFreeMemoryRegionInfo(info: *mut BNMemoryRegionInfo);
14989}
14990unsafe extern "C" {
14991 pub fn BNFreeResolvedMemoryRange(range: *mut BNResolvedMemoryRange);
14992}
14993unsafe extern "C" {
14994 pub fn BNGetMemoryRegions(
14995 view: *mut BNBinaryView,
14996 count: *mut usize,
14997 ) -> *mut BNMemoryRegionInfo;
14998}
14999unsafe extern "C" {
15000 pub fn BNFreeMemoryRegions(regions: *mut BNMemoryRegionInfo, count: usize);
15001}
15002unsafe extern "C" {
15003 pub fn BNGetResolvedMemoryRanges(
15004 view: *mut BNBinaryView,
15005 count: *mut usize,
15006 ) -> *mut BNResolvedMemoryRange;
15007}
15008unsafe extern "C" {
15009 pub fn BNFreeResolvedMemoryRanges(ranges: *mut BNResolvedMemoryRange, count: usize);
15010}
15011unsafe extern "C" {
15012 pub fn BNResetMemoryMap(view: *mut BNBinaryView);
15013}
15014unsafe extern "C" {
15015 #[doc = " Binary view access"]
15016 pub fn BNNewViewReference(view: *mut BNBinaryView) -> *mut BNBinaryView;
15017}
15018unsafe extern "C" {
15019 pub fn BNFreeBinaryView(view: *mut BNBinaryView);
15020}
15021unsafe extern "C" {
15022 pub fn BNGetFileForView(view: *mut BNBinaryView) -> *mut BNFileMetadata;
15023}
15024unsafe extern "C" {
15025 pub fn BNGetViewType(view: *mut BNBinaryView) -> *mut ::std::os::raw::c_char;
15026}
15027unsafe extern "C" {
15028 pub fn BNGetParentView(view: *mut BNBinaryView) -> *mut BNBinaryView;
15029}
15030unsafe extern "C" {
15031 pub fn BNReadViewData(
15032 view: *mut BNBinaryView,
15033 dest: *mut ::std::os::raw::c_void,
15034 offset: u64,
15035 len: usize,
15036 ) -> usize;
15037}
15038unsafe extern "C" {
15039 pub fn BNReadViewBuffer(view: *mut BNBinaryView, offset: u64, len: usize) -> *mut BNDataBuffer;
15040}
15041unsafe extern "C" {
15042 pub fn BNGetViewDataPointer(view: *mut BNBinaryView) -> *const u8;
15043}
15044unsafe extern "C" {
15045 pub fn BNGetViewDataLength(view: *mut BNBinaryView) -> usize;
15046}
15047unsafe extern "C" {
15048 pub fn BNWriteViewData(
15049 view: *mut BNBinaryView,
15050 offset: u64,
15051 data: *const ::std::os::raw::c_void,
15052 len: usize,
15053 ) -> usize;
15054}
15055unsafe extern "C" {
15056 pub fn BNWriteViewBuffer(
15057 view: *mut BNBinaryView,
15058 offset: u64,
15059 data: *mut BNDataBuffer,
15060 ) -> usize;
15061}
15062unsafe extern "C" {
15063 pub fn BNInsertViewData(
15064 view: *mut BNBinaryView,
15065 offset: u64,
15066 data: *const ::std::os::raw::c_void,
15067 len: usize,
15068 ) -> usize;
15069}
15070unsafe extern "C" {
15071 pub fn BNInsertViewBuffer(
15072 view: *mut BNBinaryView,
15073 offset: u64,
15074 data: *mut BNDataBuffer,
15075 ) -> usize;
15076}
15077unsafe extern "C" {
15078 pub fn BNRemoveViewData(view: *mut BNBinaryView, offset: u64, len: u64) -> usize;
15079}
15080unsafe extern "C" {
15081 pub fn BNNotifyDataWritten(view: *mut BNBinaryView, offset: u64, len: usize);
15082}
15083unsafe extern "C" {
15084 pub fn BNNotifyDataInserted(view: *mut BNBinaryView, offset: u64, len: usize);
15085}
15086unsafe extern "C" {
15087 pub fn BNNotifyDataRemoved(view: *mut BNBinaryView, offset: u64, len: u64);
15088}
15089unsafe extern "C" {
15090 pub fn BNGetEntropy(
15091 view: *mut BNBinaryView,
15092 offset: u64,
15093 len: usize,
15094 blockSize: usize,
15095 result: *mut f32,
15096 ) -> usize;
15097}
15098unsafe extern "C" {
15099 pub fn BNGetModification(view: *mut BNBinaryView, offset: u64) -> BNModificationStatus;
15100}
15101unsafe extern "C" {
15102 pub fn BNGetModificationArray(
15103 view: *mut BNBinaryView,
15104 offset: u64,
15105 result: *mut BNModificationStatus,
15106 len: usize,
15107 ) -> usize;
15108}
15109unsafe extern "C" {
15110 pub fn BNIsValidOffset(view: *mut BNBinaryView, offset: u64) -> bool;
15111}
15112unsafe extern "C" {
15113 pub fn BNIsOffsetReadable(view: *mut BNBinaryView, offset: u64) -> bool;
15114}
15115unsafe extern "C" {
15116 pub fn BNIsOffsetWritable(view: *mut BNBinaryView, offset: u64) -> bool;
15117}
15118unsafe extern "C" {
15119 pub fn BNIsOffsetExecutable(view: *mut BNBinaryView, offset: u64) -> bool;
15120}
15121unsafe extern "C" {
15122 pub fn BNIsOffsetBackedByFile(view: *mut BNBinaryView, offset: u64) -> bool;
15123}
15124unsafe extern "C" {
15125 pub fn BNIsOffsetCodeSemantics(view: *mut BNBinaryView, offset: u64) -> bool;
15126}
15127unsafe extern "C" {
15128 pub fn BNIsOffsetExternSemantics(view: *mut BNBinaryView, offset: u64) -> bool;
15129}
15130unsafe extern "C" {
15131 pub fn BNIsOffsetWritableSemantics(view: *mut BNBinaryView, offset: u64) -> bool;
15132}
15133unsafe extern "C" {
15134 pub fn BNIsOffsetReadOnlySemantics(view: *mut BNBinaryView, offset: u64) -> bool;
15135}
15136unsafe extern "C" {
15137 pub fn BNGetNextValidOffset(view: *mut BNBinaryView, offset: u64) -> u64;
15138}
15139unsafe extern "C" {
15140 pub fn BNGetImageBase(view: *mut BNBinaryView) -> u64;
15141}
15142unsafe extern "C" {
15143 pub fn BNGetOriginalImageBase(view: *mut BNBinaryView) -> u64;
15144}
15145unsafe extern "C" {
15146 pub fn BNSetOriginalImageBase(view: *mut BNBinaryView, imageBase: u64);
15147}
15148unsafe extern "C" {
15149 pub fn BNGetStartOffset(view: *mut BNBinaryView) -> u64;
15150}
15151unsafe extern "C" {
15152 pub fn BNGetEndOffset(view: *mut BNBinaryView) -> u64;
15153}
15154unsafe extern "C" {
15155 pub fn BNGetViewLength(view: *mut BNBinaryView) -> u64;
15156}
15157unsafe extern "C" {
15158 pub fn BNGetEntryPoint(view: *mut BNBinaryView) -> u64;
15159}
15160unsafe extern "C" {
15161 pub fn BNGetDefaultArchitecture(view: *mut BNBinaryView) -> *mut BNArchitecture;
15162}
15163unsafe extern "C" {
15164 pub fn BNSetDefaultArchitecture(view: *mut BNBinaryView, arch: *mut BNArchitecture);
15165}
15166unsafe extern "C" {
15167 pub fn BNGetDefaultPlatform(view: *mut BNBinaryView) -> *mut BNPlatform;
15168}
15169unsafe extern "C" {
15170 pub fn BNSetDefaultPlatform(view: *mut BNBinaryView, platform: *mut BNPlatform);
15171}
15172unsafe extern "C" {
15173 pub fn BNGetDefaultEndianness(view: *mut BNBinaryView) -> BNEndianness;
15174}
15175unsafe extern "C" {
15176 pub fn BNIsRelocatable(view: *mut BNBinaryView) -> bool;
15177}
15178unsafe extern "C" {
15179 pub fn BNGetViewAddressSize(view: *mut BNBinaryView) -> usize;
15180}
15181unsafe extern "C" {
15182 pub fn BNIsViewModified(view: *mut BNBinaryView) -> bool;
15183}
15184unsafe extern "C" {
15185 pub fn BNIsExecutableView(view: *mut BNBinaryView) -> bool;
15186}
15187unsafe extern "C" {
15188 pub fn BNSaveToFile(view: *mut BNBinaryView, file: *mut BNFileAccessor) -> bool;
15189}
15190unsafe extern "C" {
15191 pub fn BNSaveToFilename(
15192 view: *mut BNBinaryView,
15193 filename: *const ::std::os::raw::c_char,
15194 ) -> bool;
15195}
15196unsafe extern "C" {
15197 pub fn BNDefineRelocation(
15198 view: *mut BNBinaryView,
15199 arch: *mut BNArchitecture,
15200 info: *mut BNRelocationInfo,
15201 target: u64,
15202 reloc: u64,
15203 );
15204}
15205unsafe extern "C" {
15206 pub fn BNDefineSymbolRelocation(
15207 view: *mut BNBinaryView,
15208 arch: *mut BNArchitecture,
15209 info: *mut BNRelocationInfo,
15210 target: *mut BNSymbol,
15211 reloc: u64,
15212 );
15213}
15214unsafe extern "C" {
15215 pub fn BNGetRelocationRanges(view: *mut BNBinaryView, count: *mut usize) -> *mut BNRange;
15216}
15217unsafe extern "C" {
15218 pub fn BNGetRelocationRangesAtAddress(
15219 view: *mut BNBinaryView,
15220 addr: u64,
15221 count: *mut usize,
15222 ) -> *mut BNRange;
15223}
15224unsafe extern "C" {
15225 pub fn BNGetRelocationRangesInRange(
15226 view: *mut BNBinaryView,
15227 addr: u64,
15228 size: u64,
15229 count: *mut usize,
15230 ) -> *mut BNRange;
15231}
15232unsafe extern "C" {
15233 pub fn BNRangeContainsRelocation(view: *mut BNBinaryView, addr: u64, size: usize) -> bool;
15234}
15235unsafe extern "C" {
15236 pub fn BNGetRelocationsAt(
15237 view: *mut BNBinaryView,
15238 addr: u64,
15239 count: *mut usize,
15240 ) -> *mut *mut BNRelocation;
15241}
15242unsafe extern "C" {
15243 pub fn BNFreeRelocationList(relocations: *mut *mut BNRelocation, count: usize);
15244}
15245unsafe extern "C" {
15246 pub fn BNFreeRelocationRanges(ranges: *mut BNRange);
15247}
15248unsafe extern "C" {
15249 pub fn BNGetNextRelocation(
15250 view: *mut BNBinaryView,
15251 addr: u64,
15252 maxAddr: u64,
15253 ) -> *mut BNRelocation;
15254}
15255unsafe extern "C" {
15256 pub fn BNRegisterDataNotification(
15257 view: *mut BNBinaryView,
15258 notify: *mut BNBinaryDataNotification,
15259 );
15260}
15261unsafe extern "C" {
15262 pub fn BNUnregisterDataNotification(
15263 view: *mut BNBinaryView,
15264 notify: *mut BNBinaryDataNotification,
15265 );
15266}
15267unsafe extern "C" {
15268 pub fn BNRegisterProjectNotification(
15269 project: *mut BNProject,
15270 notify: *mut BNProjectNotification,
15271 );
15272}
15273unsafe extern "C" {
15274 pub fn BNUnregisterProjectNotification(
15275 project: *mut BNProject,
15276 notify: *mut BNProjectNotification,
15277 );
15278}
15279unsafe extern "C" {
15280 pub fn BNCanAssemble(view: *mut BNBinaryView, arch: *mut BNArchitecture) -> bool;
15281}
15282unsafe extern "C" {
15283 pub fn BNIsNeverBranchPatchAvailable(
15284 view: *mut BNBinaryView,
15285 arch: *mut BNArchitecture,
15286 addr: u64,
15287 ) -> bool;
15288}
15289unsafe extern "C" {
15290 pub fn BNIsAlwaysBranchPatchAvailable(
15291 view: *mut BNBinaryView,
15292 arch: *mut BNArchitecture,
15293 addr: u64,
15294 ) -> bool;
15295}
15296unsafe extern "C" {
15297 pub fn BNIsInvertBranchPatchAvailable(
15298 view: *mut BNBinaryView,
15299 arch: *mut BNArchitecture,
15300 addr: u64,
15301 ) -> bool;
15302}
15303unsafe extern "C" {
15304 pub fn BNIsSkipAndReturnZeroPatchAvailable(
15305 view: *mut BNBinaryView,
15306 arch: *mut BNArchitecture,
15307 addr: u64,
15308 ) -> bool;
15309}
15310unsafe extern "C" {
15311 pub fn BNIsSkipAndReturnValuePatchAvailable(
15312 view: *mut BNBinaryView,
15313 arch: *mut BNArchitecture,
15314 addr: u64,
15315 ) -> bool;
15316}
15317unsafe extern "C" {
15318 pub fn BNConvertToNop(view: *mut BNBinaryView, arch: *mut BNArchitecture, addr: u64) -> bool;
15319}
15320unsafe extern "C" {
15321 pub fn BNAlwaysBranch(view: *mut BNBinaryView, arch: *mut BNArchitecture, addr: u64) -> bool;
15322}
15323unsafe extern "C" {
15324 pub fn BNInvertBranch(view: *mut BNBinaryView, arch: *mut BNArchitecture, addr: u64) -> bool;
15325}
15326unsafe extern "C" {
15327 pub fn BNSkipAndReturnValue(
15328 view: *mut BNBinaryView,
15329 arch: *mut BNArchitecture,
15330 addr: u64,
15331 value: u64,
15332 ) -> bool;
15333}
15334unsafe extern "C" {
15335 pub fn BNGetInstructionLength(
15336 view: *mut BNBinaryView,
15337 arch: *mut BNArchitecture,
15338 addr: u64,
15339 ) -> usize;
15340}
15341unsafe extern "C" {
15342 pub fn BNFindNextData(
15343 view: *mut BNBinaryView,
15344 start: u64,
15345 data: *mut BNDataBuffer,
15346 result: *mut u64,
15347 flags: BNFindFlag,
15348 ) -> bool;
15349}
15350unsafe extern "C" {
15351 pub fn BNFindNextText(
15352 view: *mut BNBinaryView,
15353 start: u64,
15354 data: *const ::std::os::raw::c_char,
15355 result: *mut u64,
15356 settings: *mut BNDisassemblySettings,
15357 flags: BNFindFlag,
15358 viewType: BNFunctionViewType,
15359 ) -> bool;
15360}
15361unsafe extern "C" {
15362 pub fn BNFindNextConstant(
15363 view: *mut BNBinaryView,
15364 start: u64,
15365 constant: u64,
15366 result: *mut u64,
15367 settings: *mut BNDisassemblySettings,
15368 viewType: BNFunctionViewType,
15369 ) -> bool;
15370}
15371unsafe extern "C" {
15372 pub fn BNFindNextDataWithProgress(
15373 view: *mut BNBinaryView,
15374 start: u64,
15375 end: u64,
15376 data: *mut BNDataBuffer,
15377 result: *mut u64,
15378 flags: BNFindFlag,
15379 ctxt: *mut ::std::os::raw::c_void,
15380 progress: BNProgressFunction,
15381 ) -> bool;
15382}
15383unsafe extern "C" {
15384 pub fn BNFindNextTextWithProgress(
15385 view: *mut BNBinaryView,
15386 start: u64,
15387 end: u64,
15388 data: *const ::std::os::raw::c_char,
15389 result: *mut u64,
15390 settings: *mut BNDisassemblySettings,
15391 flags: BNFindFlag,
15392 viewType: BNFunctionViewType,
15393 ctxt: *mut ::std::os::raw::c_void,
15394 progress: BNProgressFunction,
15395 ) -> bool;
15396}
15397unsafe extern "C" {
15398 pub fn BNFindNextConstantWithProgress(
15399 view: *mut BNBinaryView,
15400 start: u64,
15401 end: u64,
15402 constant: u64,
15403 result: *mut u64,
15404 settings: *mut BNDisassemblySettings,
15405 viewType: BNFunctionViewType,
15406 ctxt: *mut ::std::os::raw::c_void,
15407 progress: BNProgressFunction,
15408 ) -> bool;
15409}
15410unsafe extern "C" {
15411 pub fn BNFindAllDataWithProgress(
15412 view: *mut BNBinaryView,
15413 start: u64,
15414 end: u64,
15415 data: *mut BNDataBuffer,
15416 flags: BNFindFlag,
15417 ctxt: *mut ::std::os::raw::c_void,
15418 progress: BNProgressFunction,
15419 matchCtxt: *mut ::std::os::raw::c_void,
15420 matchCallback: ::std::option::Option<
15421 unsafe extern "C" fn(
15422 matchCtxt: *mut ::std::os::raw::c_void,
15423 addr: u64,
15424 match_: *mut BNDataBuffer,
15425 ) -> bool,
15426 >,
15427 ) -> bool;
15428}
15429unsafe extern "C" {
15430 pub fn BNFindAllTextWithProgress(
15431 view: *mut BNBinaryView,
15432 start: u64,
15433 end: u64,
15434 data: *const ::std::os::raw::c_char,
15435 settings: *mut BNDisassemblySettings,
15436 flags: BNFindFlag,
15437 viewType: BNFunctionViewType,
15438 ctxt: *mut ::std::os::raw::c_void,
15439 progress: BNProgressFunction,
15440 matchCtxt: *mut ::std::os::raw::c_void,
15441 matchCallback: ::std::option::Option<
15442 unsafe extern "C" fn(
15443 matchCtxt: *mut ::std::os::raw::c_void,
15444 addr: u64,
15445 match_: *const ::std::os::raw::c_char,
15446 line: *mut BNLinearDisassemblyLine,
15447 ) -> bool,
15448 >,
15449 ) -> bool;
15450}
15451unsafe extern "C" {
15452 pub fn BNFindAllConstantWithProgress(
15453 view: *mut BNBinaryView,
15454 start: u64,
15455 end: u64,
15456 constant: u64,
15457 settings: *mut BNDisassemblySettings,
15458 viewType: BNFunctionViewType,
15459 ctxt: *mut ::std::os::raw::c_void,
15460 progress: BNProgressFunction,
15461 matchCtxt: *mut ::std::os::raw::c_void,
15462 matchCallback: ::std::option::Option<
15463 unsafe extern "C" fn(
15464 matchCtxt: *mut ::std::os::raw::c_void,
15465 addr: u64,
15466 line: *mut BNLinearDisassemblyLine,
15467 ) -> bool,
15468 >,
15469 ) -> bool;
15470}
15471unsafe extern "C" {
15472 pub fn BNSearch(
15473 view: *mut BNBinaryView,
15474 query: *const ::std::os::raw::c_char,
15475 context: *mut ::std::os::raw::c_void,
15476 progressCallback: BNProgressFunction,
15477 matchContext: *mut ::std::os::raw::c_void,
15478 callback: ::std::option::Option<
15479 unsafe extern "C" fn(
15480 arg1: *mut ::std::os::raw::c_void,
15481 arg2: u64,
15482 arg3: *mut BNDataBuffer,
15483 ) -> bool,
15484 >,
15485 ) -> bool;
15486}
15487unsafe extern "C" {
15488 pub fn BNDetectSearchMode(query: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
15489}
15490unsafe extern "C" {
15491 pub fn BNPerformSearch(
15492 query: *const ::std::os::raw::c_char,
15493 buffer: *const u8,
15494 size: usize,
15495 callback: BNProgressFunction,
15496 context: *mut ::std::os::raw::c_void,
15497 ) -> bool;
15498}
15499unsafe extern "C" {
15500 pub fn BNBeginBulkAddSegments(view: *mut BNBinaryView);
15501}
15502unsafe extern "C" {
15503 pub fn BNEndBulkAddSegments(view: *mut BNBinaryView);
15504}
15505unsafe extern "C" {
15506 pub fn BNCancelBulkAddSegments(view: *mut BNBinaryView);
15507}
15508unsafe extern "C" {
15509 pub fn BNAddAutoSegment(
15510 view: *mut BNBinaryView,
15511 start: u64,
15512 length: u64,
15513 dataOffset: u64,
15514 dataLength: u64,
15515 flags: u32,
15516 );
15517}
15518unsafe extern "C" {
15519 pub fn BNAddAutoSegments(
15520 view: *mut BNBinaryView,
15521 segmentInfo: *const BNSegmentInfo,
15522 count: usize,
15523 );
15524}
15525unsafe extern "C" {
15526 pub fn BNRemoveAutoSegment(view: *mut BNBinaryView, start: u64, length: u64);
15527}
15528unsafe extern "C" {
15529 pub fn BNAddUserSegment(
15530 view: *mut BNBinaryView,
15531 start: u64,
15532 length: u64,
15533 dataOffset: u64,
15534 dataLength: u64,
15535 flags: u32,
15536 );
15537}
15538unsafe extern "C" {
15539 pub fn BNAddUserSegments(
15540 view: *mut BNBinaryView,
15541 segmentInfo: *const BNSegmentInfo,
15542 count: usize,
15543 );
15544}
15545unsafe extern "C" {
15546 pub fn BNRemoveUserSegment(view: *mut BNBinaryView, start: u64, length: u64);
15547}
15548unsafe extern "C" {
15549 pub fn BNGetSegments(view: *mut BNBinaryView, count: *mut usize) -> *mut *mut BNSegment;
15550}
15551unsafe extern "C" {
15552 pub fn BNFreeSegmentList(segments: *mut *mut BNSegment, count: usize);
15553}
15554unsafe extern "C" {
15555 pub fn BNGetSegmentAt(view: *mut BNBinaryView, addr: u64) -> *mut BNSegment;
15556}
15557unsafe extern "C" {
15558 pub fn BNGetAddressForDataOffset(view: *mut BNBinaryView, offset: u64, addr: *mut u64) -> bool;
15559}
15560unsafe extern "C" {
15561 pub fn BNGetComponentByGuid(
15562 view: *mut BNBinaryView,
15563 guid: *const ::std::os::raw::c_char,
15564 ) -> *mut BNComponent;
15565}
15566unsafe extern "C" {
15567 pub fn BNGetRootComponent(view: *mut BNBinaryView) -> *mut BNComponent;
15568}
15569unsafe extern "C" {
15570 pub fn BNCreateComponent(view: *mut BNBinaryView) -> *mut BNComponent;
15571}
15572unsafe extern "C" {
15573 pub fn BNCreateComponentWithParent(
15574 view: *mut BNBinaryView,
15575 parentGUID: *const ::std::os::raw::c_char,
15576 ) -> *mut BNComponent;
15577}
15578unsafe extern "C" {
15579 pub fn BNCreateComponentWithName(
15580 view: *mut BNBinaryView,
15581 name: *const ::std::os::raw::c_char,
15582 ) -> *mut BNComponent;
15583}
15584unsafe extern "C" {
15585 pub fn BNCreateComponentWithParentAndName(
15586 view: *mut BNBinaryView,
15587 parentGUID: *const ::std::os::raw::c_char,
15588 name: *const ::std::os::raw::c_char,
15589 ) -> *mut BNComponent;
15590}
15591unsafe extern "C" {
15592 pub fn BNGetComponentByPath(
15593 view: *mut BNBinaryView,
15594 path: *const ::std::os::raw::c_char,
15595 ) -> *mut BNComponent;
15596}
15597unsafe extern "C" {
15598 pub fn BNRemoveComponent(view: *mut BNBinaryView, component: *mut BNComponent) -> bool;
15599}
15600unsafe extern "C" {
15601 pub fn BNRemoveComponentByGuid(
15602 view: *mut BNBinaryView,
15603 guid: *const ::std::os::raw::c_char,
15604 ) -> bool;
15605}
15606unsafe extern "C" {
15607 pub fn BNAddAutoSection(
15608 view: *mut BNBinaryView,
15609 name: *const ::std::os::raw::c_char,
15610 start: u64,
15611 length: u64,
15612 semantics: BNSectionSemantics,
15613 type_: *const ::std::os::raw::c_char,
15614 align: u64,
15615 entrySize: u64,
15616 linkedSection: *const ::std::os::raw::c_char,
15617 infoSection: *const ::std::os::raw::c_char,
15618 infoData: u64,
15619 );
15620}
15621unsafe extern "C" {
15622 pub fn BNAddAutoSections(
15623 view: *mut BNBinaryView,
15624 sectionInfo: *const BNSectionInfo,
15625 count: usize,
15626 );
15627}
15628unsafe extern "C" {
15629 pub fn BNRemoveAutoSection(view: *mut BNBinaryView, name: *const ::std::os::raw::c_char);
15630}
15631unsafe extern "C" {
15632 pub fn BNAddUserSection(
15633 view: *mut BNBinaryView,
15634 name: *const ::std::os::raw::c_char,
15635 start: u64,
15636 length: u64,
15637 semantics: BNSectionSemantics,
15638 type_: *const ::std::os::raw::c_char,
15639 align: u64,
15640 entrySize: u64,
15641 linkedSection: *const ::std::os::raw::c_char,
15642 infoSection: *const ::std::os::raw::c_char,
15643 infoData: u64,
15644 );
15645}
15646unsafe extern "C" {
15647 pub fn BNAddUserSections(
15648 view: *mut BNBinaryView,
15649 sectionInfo: *const BNSectionInfo,
15650 count: usize,
15651 );
15652}
15653unsafe extern "C" {
15654 pub fn BNRemoveUserSection(view: *mut BNBinaryView, name: *const ::std::os::raw::c_char);
15655}
15656unsafe extern "C" {
15657 pub fn BNGetSections(view: *mut BNBinaryView, count: *mut usize) -> *mut *mut BNSection;
15658}
15659unsafe extern "C" {
15660 pub fn BNGetSectionsAt(
15661 view: *mut BNBinaryView,
15662 addr: u64,
15663 count: *mut usize,
15664 ) -> *mut *mut BNSection;
15665}
15666unsafe extern "C" {
15667 pub fn BNFreeSectionList(sections: *mut *mut BNSection, count: usize);
15668}
15669unsafe extern "C" {
15670 pub fn BNGetSectionByName(
15671 view: *mut BNBinaryView,
15672 name: *const ::std::os::raw::c_char,
15673 ) -> *mut BNSection;
15674}
15675unsafe extern "C" {
15676 pub fn BNGetUniqueSectionNames(
15677 view: *mut BNBinaryView,
15678 names: *mut *const ::std::os::raw::c_char,
15679 count: usize,
15680 ) -> *mut *mut ::std::os::raw::c_char;
15681}
15682unsafe extern "C" {
15683 pub fn BNGetAllocatedRanges(view: *mut BNBinaryView, count: *mut usize) -> *mut BNAddressRange;
15684}
15685unsafe extern "C" {
15686 pub fn BNGetMappedAddressRanges(
15687 view: *mut BNBinaryView,
15688 count: *mut usize,
15689 ) -> *mut BNAddressRange;
15690}
15691unsafe extern "C" {
15692 pub fn BNGetBackedAddressRanges(
15693 view: *mut BNBinaryView,
15694 count: *mut usize,
15695 ) -> *mut BNAddressRange;
15696}
15697unsafe extern "C" {
15698 pub fn BNFreeAddressRanges(ranges: *mut BNAddressRange);
15699}
15700unsafe extern "C" {
15701 pub fn BNGetNameSpaces(view: *mut BNBinaryView, count: *mut usize) -> *mut BNNameSpace;
15702}
15703unsafe extern "C" {
15704 pub fn BNFreeNameSpaceList(nameSpace: *mut BNNameSpace, count: usize);
15705}
15706unsafe extern "C" {
15707 pub fn BNGetExternalNameSpace() -> BNNameSpace;
15708}
15709unsafe extern "C" {
15710 pub fn BNGetInternalNameSpace() -> BNNameSpace;
15711}
15712unsafe extern "C" {
15713 pub fn BNFreeNameSpace(name: *mut BNNameSpace);
15714}
15715unsafe extern "C" {
15716 pub fn BNGetGlobalPointerValues(
15717 view: *mut BNBinaryView,
15718 count: *mut usize,
15719 ) -> *mut BNRegisterValueWithConfidenceAndRegister;
15720}
15721unsafe extern "C" {
15722 pub fn BNGetDefaultGlobalPointerValues(
15723 view: *mut BNBinaryView,
15724 count: *mut usize,
15725 ) -> *mut BNRegisterValueWithConfidenceAndRegister;
15726}
15727unsafe extern "C" {
15728 pub fn BNGetUserGlobalPointerValues(
15729 view: *mut BNBinaryView,
15730 count: *mut usize,
15731 ) -> *mut BNRegisterValueWithConfidenceAndRegister;
15732}
15733unsafe extern "C" {
15734 pub fn BNFreeRegisterValueWithConfidenceAndRegisterList(
15735 values: *mut BNRegisterValueWithConfidenceAndRegister,
15736 );
15737}
15738unsafe extern "C" {
15739 pub fn BNUserGlobalPointerValuesSet(view: *mut BNBinaryView) -> bool;
15740}
15741unsafe extern "C" {
15742 pub fn BNClearUserGlobalPointerValues(view: *mut BNBinaryView);
15743}
15744unsafe extern "C" {
15745 pub fn BNSetUserGlobalPointerValues(
15746 view: *mut BNBinaryView,
15747 values: *const BNRegisterValueWithConfidenceAndRegister,
15748 count: usize,
15749 );
15750}
15751unsafe extern "C" {
15752 pub fn BNStringifyUnicodeData(
15753 data: *mut BNBinaryView,
15754 arch: *mut BNArchitecture,
15755 buffer: *const BNDataBuffer,
15756 nullTerminates: bool,
15757 allowShortStrings: bool,
15758 string: *mut *mut ::std::os::raw::c_char,
15759 type_: *mut BNStringType,
15760 ) -> bool;
15761}
15762unsafe extern "C" {
15763 #[doc = " Raw binary data view"]
15764 pub fn BNCreateBinaryDataView(file: *mut BNFileMetadata) -> *mut BNBinaryView;
15765}
15766unsafe extern "C" {
15767 pub fn BNCreateBinaryDataViewFromBuffer(
15768 file: *mut BNFileMetadata,
15769 buf: *mut BNDataBuffer,
15770 ) -> *mut BNBinaryView;
15771}
15772unsafe extern "C" {
15773 pub fn BNCreateBinaryDataViewFromData(
15774 file: *mut BNFileMetadata,
15775 data: *const ::std::os::raw::c_void,
15776 len: usize,
15777 ) -> *mut BNBinaryView;
15778}
15779unsafe extern "C" {
15780 pub fn BNCreateBinaryDataViewFromFilename(
15781 file: *mut BNFileMetadata,
15782 filename: *const ::std::os::raw::c_char,
15783 ) -> *mut BNBinaryView;
15784}
15785unsafe extern "C" {
15786 pub fn BNCreateBinaryDataViewFromFile(
15787 file: *mut BNFileMetadata,
15788 accessor: *mut BNFileAccessor,
15789 ) -> *mut BNBinaryView;
15790}
15791unsafe extern "C" {
15792 #[doc = " Creation of new types of binary views"]
15793 pub fn BNCreateCustomBinaryView(
15794 name: *const ::std::os::raw::c_char,
15795 file: *mut BNFileMetadata,
15796 parent: *mut BNBinaryView,
15797 view: *mut BNCustomBinaryView,
15798 ) -> *mut BNBinaryView;
15799}
15800unsafe extern "C" {
15801 pub fn BNGetBinaryViewTypeByName(name: *const ::std::os::raw::c_char) -> *mut BNBinaryViewType;
15802}
15803unsafe extern "C" {
15804 pub fn BNGetBinaryViewTypes(count: *mut usize) -> *mut *mut BNBinaryViewType;
15805}
15806unsafe extern "C" {
15807 pub fn BNGetBinaryViewTypesForData(
15808 data: *mut BNBinaryView,
15809 count: *mut usize,
15810 ) -> *mut *mut BNBinaryViewType;
15811}
15812unsafe extern "C" {
15813 pub fn BNFreeBinaryViewTypeList(types: *mut *mut BNBinaryViewType);
15814}
15815unsafe extern "C" {
15816 pub fn BNGetBinaryViewTypeName(type_: *mut BNBinaryViewType) -> *mut ::std::os::raw::c_char;
15817}
15818unsafe extern "C" {
15819 pub fn BNGetBinaryViewTypeLongName(type_: *mut BNBinaryViewType)
15820 -> *mut ::std::os::raw::c_char;
15821}
15822unsafe extern "C" {
15823 pub fn BNIsBinaryViewTypeDeprecated(type_: *mut BNBinaryViewType) -> bool;
15824}
15825unsafe extern "C" {
15826 pub fn BNCreateBinaryViewOfType(
15827 type_: *mut BNBinaryViewType,
15828 data: *mut BNBinaryView,
15829 ) -> *mut BNBinaryView;
15830}
15831unsafe extern "C" {
15832 pub fn BNParseBinaryViewOfType(
15833 type_: *mut BNBinaryViewType,
15834 data: *mut BNBinaryView,
15835 ) -> *mut BNBinaryView;
15836}
15837unsafe extern "C" {
15838 pub fn BNIsBinaryViewTypeValidForData(
15839 type_: *mut BNBinaryViewType,
15840 data: *mut BNBinaryView,
15841 ) -> bool;
15842}
15843unsafe extern "C" {
15844 pub fn BNIsBinaryViewTypeForceLoadable(type_: *mut BNBinaryViewType) -> bool;
15845}
15846unsafe extern "C" {
15847 pub fn BNBinaryViewTypeHasNoInitialContent(type_: *mut BNBinaryViewType) -> bool;
15848}
15849unsafe extern "C" {
15850 pub fn BNGetBinaryViewDefaultLoadSettingsForData(
15851 type_: *mut BNBinaryViewType,
15852 data: *mut BNBinaryView,
15853 ) -> *mut BNSettings;
15854}
15855unsafe extern "C" {
15856 pub fn BNGetBinaryViewLoadSettingsForData(
15857 type_: *mut BNBinaryViewType,
15858 data: *mut BNBinaryView,
15859 ) -> *mut BNSettings;
15860}
15861unsafe extern "C" {
15862 pub fn BNRegisterBinaryViewType(
15863 name: *const ::std::os::raw::c_char,
15864 longName: *const ::std::os::raw::c_char,
15865 type_: *mut BNCustomBinaryViewType,
15866 ) -> *mut BNBinaryViewType;
15867}
15868unsafe extern "C" {
15869 pub fn BNRegisterArchitectureForViewType(
15870 type_: *mut BNBinaryViewType,
15871 id: u32,
15872 endian: BNEndianness,
15873 arch: *mut BNArchitecture,
15874 );
15875}
15876unsafe extern "C" {
15877 pub fn BNGetArchitectureForViewType(
15878 type_: *mut BNBinaryViewType,
15879 id: u32,
15880 endian: BNEndianness,
15881 ) -> *mut BNArchitecture;
15882}
15883unsafe extern "C" {
15884 pub fn BNRegisterPlatformForViewType(
15885 type_: *mut BNBinaryViewType,
15886 id: u32,
15887 arch: *mut BNArchitecture,
15888 platform: *mut BNPlatform,
15889 );
15890}
15891unsafe extern "C" {
15892 pub fn BNGetPlatformForViewType(
15893 type_: *mut BNBinaryViewType,
15894 id: u32,
15895 arch: *mut BNArchitecture,
15896 ) -> *mut BNPlatform;
15897}
15898unsafe extern "C" {
15899 pub fn BNRegisterDefaultPlatformForViewType(
15900 type_: *mut BNBinaryViewType,
15901 arch: *mut BNArchitecture,
15902 platform: *mut BNPlatform,
15903 );
15904}
15905unsafe extern "C" {
15906 #[doc = " Expanded identification of Platform for BinaryViewTypes. Supersedes BNRegisterArchitectureForViewType\n and BNRegisterPlatformForViewType, as these have certain edge cases (overloaded elf families, for example)\n that can't be represented.\n\n The callback returns a Platform object or null (failure), and most recently added callbacks are called first\n to allow plugins to override any default behaviors. When a callback returns a platform, architecture will be\n derived from the identified platform.\n\n The BinaryView pointer is the *parent* view (usually 'Raw') that the BinaryView is being created for. This\n means that generally speaking the callbacks need to be aware of the underlying file format, however the\n BinaryView implementation may have created datavars in the 'Raw' view by the time the callback is invoked.\n Behavior regarding when this callback is invoked and what has been made available in the BinaryView passed as an\n argument to the callback is up to the discretion of the BinaryView implementation.\n\n The 'id' ind 'endian' arguments are used as a filter to determine which registered Platform recognizer callbacks\n are invoked.\n\n Support for this API tentatively requires explicit support in the BinaryView implementation."]
15907 pub fn BNRegisterPlatformRecognizerForViewType(
15908 type_: *mut BNBinaryViewType,
15909 id: u64,
15910 endian: BNEndianness,
15911 callback: ::std::option::Option<
15912 unsafe extern "C" fn(
15913 ctx: *mut ::std::os::raw::c_void,
15914 view: *mut BNBinaryView,
15915 metadata: *mut BNMetadata,
15916 ) -> *mut BNPlatform,
15917 >,
15918 ctx: *mut ::std::os::raw::c_void,
15919 );
15920}
15921unsafe extern "C" {
15922 #[doc = " BinaryView* passed in here should be the parent view (not the partially constructed object!), and this function\n should be called from the BNCustomBinaryView::init implementation.\n\n 'id' and 'endianness' are used to determine which registered callbacks are actually invoked to eliminate some\n common sources of boilerplate that all callbacks would have to implement otherwise. If these aren't applicable to\n your binaryviewtype just use constants here and document them so that people registering Platform recognizers for\n your view type know what to use."]
15923 pub fn BNRecognizePlatformForViewType(
15924 type_: *mut BNBinaryViewType,
15925 id: u64,
15926 endian: BNEndianness,
15927 view: *mut BNBinaryView,
15928 metadata: *mut BNMetadata,
15929 ) -> *mut BNPlatform;
15930}
15931unsafe extern "C" {
15932 pub fn BNRegisterBinaryViewEvent(
15933 type_: BNBinaryViewEventType,
15934 callback: ::std::option::Option<
15935 unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
15936 >,
15937 ctx: *mut ::std::os::raw::c_void,
15938 );
15939}
15940unsafe extern "C" {
15941 #[doc = " Stream reader object"]
15942 pub fn BNCreateBinaryReader(view: *mut BNBinaryView) -> *mut BNBinaryReader;
15943}
15944unsafe extern "C" {
15945 pub fn BNFreeBinaryReader(stream: *mut BNBinaryReader);
15946}
15947unsafe extern "C" {
15948 pub fn BNGetBinaryReaderEndianness(stream: *mut BNBinaryReader) -> BNEndianness;
15949}
15950unsafe extern "C" {
15951 pub fn BNSetBinaryReaderEndianness(stream: *mut BNBinaryReader, endian: BNEndianness);
15952}
15953unsafe extern "C" {
15954 pub fn BNReadData(
15955 stream: *mut BNBinaryReader,
15956 dest: *mut ::std::os::raw::c_void,
15957 len: usize,
15958 ) -> bool;
15959}
15960unsafe extern "C" {
15961 pub fn BNRead8(stream: *mut BNBinaryReader, result: *mut u8) -> bool;
15962}
15963unsafe extern "C" {
15964 pub fn BNRead16(stream: *mut BNBinaryReader, result: *mut u16) -> bool;
15965}
15966unsafe extern "C" {
15967 pub fn BNRead32(stream: *mut BNBinaryReader, result: *mut u32) -> bool;
15968}
15969unsafe extern "C" {
15970 pub fn BNRead64(stream: *mut BNBinaryReader, result: *mut u64) -> bool;
15971}
15972unsafe extern "C" {
15973 pub fn BNReadLE16(stream: *mut BNBinaryReader, result: *mut u16) -> bool;
15974}
15975unsafe extern "C" {
15976 pub fn BNReadLE32(stream: *mut BNBinaryReader, result: *mut u32) -> bool;
15977}
15978unsafe extern "C" {
15979 pub fn BNReadLE64(stream: *mut BNBinaryReader, result: *mut u64) -> bool;
15980}
15981unsafe extern "C" {
15982 pub fn BNReadBE16(stream: *mut BNBinaryReader, result: *mut u16) -> bool;
15983}
15984unsafe extern "C" {
15985 pub fn BNReadBE32(stream: *mut BNBinaryReader, result: *mut u32) -> bool;
15986}
15987unsafe extern "C" {
15988 pub fn BNReadBE64(stream: *mut BNBinaryReader, result: *mut u64) -> bool;
15989}
15990unsafe extern "C" {
15991 pub fn BNReadPointer(
15992 view: *mut BNBinaryView,
15993 stream: *mut BNBinaryReader,
15994 result: *mut u64,
15995 ) -> bool;
15996}
15997unsafe extern "C" {
15998 pub fn BNGetReaderPosition(stream: *mut BNBinaryReader) -> u64;
15999}
16000unsafe extern "C" {
16001 pub fn BNSeekBinaryReader(stream: *mut BNBinaryReader, offset: u64);
16002}
16003unsafe extern "C" {
16004 pub fn BNSeekBinaryReaderRelative(stream: *mut BNBinaryReader, offset: i64);
16005}
16006unsafe extern "C" {
16007 pub fn BNGetBinaryReaderVirtualBase(stream: *mut BNBinaryReader) -> u64;
16008}
16009unsafe extern "C" {
16010 pub fn BNSetBinaryReaderVirtualBase(stream: *mut BNBinaryReader, base: u64);
16011}
16012unsafe extern "C" {
16013 pub fn BNIsEndOfFile(stream: *mut BNBinaryReader) -> bool;
16014}
16015unsafe extern "C" {
16016 #[doc = " Stream writer object"]
16017 pub fn BNCreateBinaryWriter(view: *mut BNBinaryView) -> *mut BNBinaryWriter;
16018}
16019unsafe extern "C" {
16020 pub fn BNFreeBinaryWriter(stream: *mut BNBinaryWriter);
16021}
16022unsafe extern "C" {
16023 pub fn BNGetBinaryWriterEndianness(stream: *mut BNBinaryWriter) -> BNEndianness;
16024}
16025unsafe extern "C" {
16026 pub fn BNSetBinaryWriterEndianness(stream: *mut BNBinaryWriter, endian: BNEndianness);
16027}
16028unsafe extern "C" {
16029 pub fn BNWriteData(
16030 stream: *mut BNBinaryWriter,
16031 src: *const ::std::os::raw::c_void,
16032 len: usize,
16033 ) -> bool;
16034}
16035unsafe extern "C" {
16036 pub fn BNWrite8(stream: *mut BNBinaryWriter, val: u8) -> bool;
16037}
16038unsafe extern "C" {
16039 pub fn BNWrite16(stream: *mut BNBinaryWriter, val: u16) -> bool;
16040}
16041unsafe extern "C" {
16042 pub fn BNWrite32(stream: *mut BNBinaryWriter, val: u32) -> bool;
16043}
16044unsafe extern "C" {
16045 pub fn BNWrite64(stream: *mut BNBinaryWriter, val: u64) -> bool;
16046}
16047unsafe extern "C" {
16048 pub fn BNWriteLE16(stream: *mut BNBinaryWriter, val: u16) -> bool;
16049}
16050unsafe extern "C" {
16051 pub fn BNWriteLE32(stream: *mut BNBinaryWriter, val: u32) -> bool;
16052}
16053unsafe extern "C" {
16054 pub fn BNWriteLE64(stream: *mut BNBinaryWriter, val: u64) -> bool;
16055}
16056unsafe extern "C" {
16057 pub fn BNWriteBE16(stream: *mut BNBinaryWriter, val: u16) -> bool;
16058}
16059unsafe extern "C" {
16060 pub fn BNWriteBE32(stream: *mut BNBinaryWriter, val: u32) -> bool;
16061}
16062unsafe extern "C" {
16063 pub fn BNWriteBE64(stream: *mut BNBinaryWriter, val: u64) -> bool;
16064}
16065unsafe extern "C" {
16066 pub fn BNGetWriterPosition(stream: *mut BNBinaryWriter) -> u64;
16067}
16068unsafe extern "C" {
16069 pub fn BNSeekBinaryWriter(stream: *mut BNBinaryWriter, offset: u64);
16070}
16071unsafe extern "C" {
16072 pub fn BNSeekBinaryWriterRelative(stream: *mut BNBinaryWriter, offset: i64);
16073}
16074unsafe extern "C" {
16075 #[doc = " Transforms"]
16076 pub fn BNGetTransformByName(name: *const ::std::os::raw::c_char) -> *mut BNTransform;
16077}
16078unsafe extern "C" {
16079 pub fn BNGetTransformTypeList(count: *mut usize) -> *mut *mut BNTransform;
16080}
16081unsafe extern "C" {
16082 pub fn BNFreeTransformTypeList(xforms: *mut *mut BNTransform);
16083}
16084unsafe extern "C" {
16085 pub fn BNRegisterTransformType(
16086 type_: BNTransformType,
16087 name: *const ::std::os::raw::c_char,
16088 longName: *const ::std::os::raw::c_char,
16089 group: *const ::std::os::raw::c_char,
16090 xform: *mut BNCustomTransform,
16091 ) -> *mut BNTransform;
16092}
16093unsafe extern "C" {
16094 pub fn BNRegisterTransformTypeWithCapabilities(
16095 type_: BNTransformType,
16096 capabilities: u32,
16097 name: *const ::std::os::raw::c_char,
16098 longName: *const ::std::os::raw::c_char,
16099 group: *const ::std::os::raw::c_char,
16100 xform: *mut BNCustomTransform,
16101 ) -> *mut BNTransform;
16102}
16103unsafe extern "C" {
16104 pub fn BNGetTransformType(xform: *mut BNTransform) -> BNTransformType;
16105}
16106unsafe extern "C" {
16107 pub fn BNGetTransformCapabilities(xform: *mut BNTransform) -> u32;
16108}
16109unsafe extern "C" {
16110 pub fn BNTransformSupportsDetection(xform: *mut BNTransform) -> bool;
16111}
16112unsafe extern "C" {
16113 pub fn BNTransformSupportsContext(xform: *mut BNTransform) -> bool;
16114}
16115unsafe extern "C" {
16116 pub fn BNGetTransformName(xform: *mut BNTransform) -> *mut ::std::os::raw::c_char;
16117}
16118unsafe extern "C" {
16119 pub fn BNGetTransformLongName(xform: *mut BNTransform) -> *mut ::std::os::raw::c_char;
16120}
16121unsafe extern "C" {
16122 pub fn BNGetTransformGroup(xform: *mut BNTransform) -> *mut ::std::os::raw::c_char;
16123}
16124unsafe extern "C" {
16125 pub fn BNGetTransformParameterList(
16126 xform: *mut BNTransform,
16127 count: *mut usize,
16128 ) -> *mut BNTransformParameterInfo;
16129}
16130unsafe extern "C" {
16131 pub fn BNFreeTransformParameterList(params: *mut BNTransformParameterInfo, count: usize);
16132}
16133unsafe extern "C" {
16134 pub fn BNDecode(
16135 xform: *mut BNTransform,
16136 input: *mut BNDataBuffer,
16137 output: *mut BNDataBuffer,
16138 params: *mut BNTransformParameter,
16139 paramCount: usize,
16140 ) -> bool;
16141}
16142unsafe extern "C" {
16143 pub fn BNEncode(
16144 xform: *mut BNTransform,
16145 input: *mut BNDataBuffer,
16146 output: *mut BNDataBuffer,
16147 params: *mut BNTransformParameter,
16148 paramCount: usize,
16149 ) -> bool;
16150}
16151unsafe extern "C" {
16152 pub fn BNDecodeWithContext(
16153 xform: *mut BNTransform,
16154 context: *mut BNTransformContext,
16155 params: *mut BNTransformParameter,
16156 paramCount: usize,
16157 ) -> bool;
16158}
16159unsafe extern "C" {
16160 pub fn BNCanDecode(xform: *mut BNTransform, input: *mut BNBinaryView) -> bool;
16161}
16162unsafe extern "C" {
16163 #[doc = " Transform Context"]
16164 pub fn BNNewTransformContextReference(
16165 context: *mut BNTransformContext,
16166 ) -> *mut BNTransformContext;
16167}
16168unsafe extern "C" {
16169 pub fn BNFreeTransformContext(context: *mut BNTransformContext);
16170}
16171unsafe extern "C" {
16172 pub fn BNTransformContextGetInput(context: *mut BNTransformContext) -> *mut BNBinaryView;
16173}
16174unsafe extern "C" {
16175 pub fn BNTransformContextGetFileName(
16176 context: *mut BNTransformContext,
16177 ) -> *mut ::std::os::raw::c_char;
16178}
16179unsafe extern "C" {
16180 pub fn BNTransformContextGetAvailableTransforms(
16181 context: *mut BNTransformContext,
16182 count: *mut usize,
16183 ) -> *mut *mut ::std::os::raw::c_char;
16184}
16185unsafe extern "C" {
16186 pub fn BNTransformContextGetTransformName(
16187 context: *mut BNTransformContext,
16188 ) -> *mut ::std::os::raw::c_char;
16189}
16190unsafe extern "C" {
16191 pub fn BNTransformContextSetTransformName(
16192 context: *mut BNTransformContext,
16193 transformName: *const ::std::os::raw::c_char,
16194 );
16195}
16196unsafe extern "C" {
16197 pub fn BNTransformContextSetTransformParameters(
16198 context: *mut BNTransformContext,
16199 params: *mut BNTransformParameter,
16200 paramCount: usize,
16201 );
16202}
16203unsafe extern "C" {
16204 pub fn BNTransformContextSetTransformParameter(
16205 context: *mut BNTransformContext,
16206 name: *const ::std::os::raw::c_char,
16207 data: *mut BNDataBuffer,
16208 );
16209}
16210unsafe extern "C" {
16211 pub fn BNTransformContextHasTransformParameter(
16212 context: *mut BNTransformContext,
16213 name: *const ::std::os::raw::c_char,
16214 ) -> bool;
16215}
16216unsafe extern "C" {
16217 pub fn BNTransformContextClearTransformParameter(
16218 context: *mut BNTransformContext,
16219 name: *const ::std::os::raw::c_char,
16220 );
16221}
16222unsafe extern "C" {
16223 pub fn BNTransformContextGetExtractionMessage(
16224 context: *mut BNTransformContext,
16225 ) -> *mut ::std::os::raw::c_char;
16226}
16227unsafe extern "C" {
16228 pub fn BNTransformContextGetExtractionResult(
16229 context: *mut BNTransformContext,
16230 ) -> BNTransformResult;
16231}
16232unsafe extern "C" {
16233 pub fn BNTransformContextGetTransformResult(
16234 context: *mut BNTransformContext,
16235 ) -> BNTransformResult;
16236}
16237unsafe extern "C" {
16238 pub fn BNTransformContextSetTransformResult(
16239 context: *mut BNTransformContext,
16240 result: BNTransformResult,
16241 );
16242}
16243unsafe extern "C" {
16244 pub fn BNTransformContextGetMetadata(context: *mut BNTransformContext) -> *mut BNMetadata;
16245}
16246unsafe extern "C" {
16247 pub fn BNTransformContextGetParent(context: *mut BNTransformContext)
16248 -> *mut BNTransformContext;
16249}
16250unsafe extern "C" {
16251 pub fn BNTransformContextGetChildCount(context: *mut BNTransformContext) -> usize;
16252}
16253unsafe extern "C" {
16254 pub fn BNTransformContextGetChildren(
16255 context: *mut BNTransformContext,
16256 count: *mut usize,
16257 ) -> *mut *mut BNTransformContext;
16258}
16259unsafe extern "C" {
16260 pub fn BNFreeTransformContextList(contexts: *mut *mut BNTransformContext, count: usize);
16261}
16262unsafe extern "C" {
16263 pub fn BNTransformContextGetChild(
16264 context: *mut BNTransformContext,
16265 filename: *const ::std::os::raw::c_char,
16266 ) -> *mut BNTransformContext;
16267}
16268unsafe extern "C" {
16269 pub fn BNTransformContextSetChild(
16270 context: *mut BNTransformContext,
16271 data: *mut BNDataBuffer,
16272 filename: *const ::std::os::raw::c_char,
16273 result: BNTransformResult,
16274 message: *const ::std::os::raw::c_char,
16275 filenameIsDescriptor: bool,
16276 ) -> *mut BNTransformContext;
16277}
16278unsafe extern "C" {
16279 pub fn BNTransformContextIsLeaf(context: *mut BNTransformContext) -> bool;
16280}
16281unsafe extern "C" {
16282 pub fn BNTransformContextIsRoot(context: *mut BNTransformContext) -> bool;
16283}
16284unsafe extern "C" {
16285 pub fn BNTransformContextGetAvailableFiles(
16286 context: *mut BNTransformContext,
16287 count: *mut usize,
16288 ) -> *mut *mut ::std::os::raw::c_char;
16289}
16290unsafe extern "C" {
16291 pub fn BNTransformContextSetAvailableFiles(
16292 context: *mut BNTransformContext,
16293 files: *mut *const ::std::os::raw::c_char,
16294 count: usize,
16295 );
16296}
16297unsafe extern "C" {
16298 pub fn BNTransformContextHasAvailableFiles(context: *mut BNTransformContext) -> bool;
16299}
16300unsafe extern "C" {
16301 pub fn BNTransformContextGetRequestedFiles(
16302 context: *mut BNTransformContext,
16303 count: *mut usize,
16304 ) -> *mut *mut ::std::os::raw::c_char;
16305}
16306unsafe extern "C" {
16307 pub fn BNTransformContextSetRequestedFiles(
16308 context: *mut BNTransformContext,
16309 files: *mut *const ::std::os::raw::c_char,
16310 count: usize,
16311 );
16312}
16313unsafe extern "C" {
16314 pub fn BNTransformContextHasRequestedFiles(context: *mut BNTransformContext) -> bool;
16315}
16316unsafe extern "C" {
16317 pub fn BNTransformContextIsDatabase(context: *mut BNTransformContext) -> bool;
16318}
16319unsafe extern "C" {
16320 pub fn BNTransformContextIsInteractive(context: *mut BNTransformContext) -> bool;
16321}
16322unsafe extern "C" {
16323 pub fn BNTransformContextGetSettings(context: *mut BNTransformContext) -> *mut BNSettings;
16324}
16325unsafe extern "C" {
16326 #[doc = " Transform Session"]
16327 pub fn BNCreateTransformSession(
16328 filename: *const ::std::os::raw::c_char,
16329 options: *const ::std::os::raw::c_char,
16330 ) -> *mut BNTransformSession;
16331}
16332unsafe extern "C" {
16333 pub fn BNCreateTransformSessionWithMode(
16334 filename: *const ::std::os::raw::c_char,
16335 mode: BNTransformSessionMode,
16336 options: *const ::std::os::raw::c_char,
16337 ) -> *mut BNTransformSession;
16338}
16339unsafe extern "C" {
16340 pub fn BNCreateTransformSessionFromBinaryView(
16341 initialView: *mut BNBinaryView,
16342 options: *const ::std::os::raw::c_char,
16343 ) -> *mut BNTransformSession;
16344}
16345unsafe extern "C" {
16346 pub fn BNCreateTransformSessionFromBinaryViewWithMode(
16347 initialView: *mut BNBinaryView,
16348 mode: BNTransformSessionMode,
16349 options: *const ::std::os::raw::c_char,
16350 ) -> *mut BNTransformSession;
16351}
16352unsafe extern "C" {
16353 pub fn BNCreateTransformSessionFromTransformContextWithMode(
16354 context: *mut BNTransformContext,
16355 mode: BNTransformSessionMode,
16356 options: *const ::std::os::raw::c_char,
16357 ) -> *mut BNTransformSession;
16358}
16359unsafe extern "C" {
16360 pub fn BNNewTransformSessionReference(
16361 session: *mut BNTransformSession,
16362 ) -> *mut BNTransformSession;
16363}
16364unsafe extern "C" {
16365 pub fn BNFreeTransformSession(session: *mut BNTransformSession);
16366}
16367unsafe extern "C" {
16368 pub fn BNTransformSessionSetInteractive(session: *mut BNTransformSession, interactive: bool);
16369}
16370unsafe extern "C" {
16371 pub fn BNTransformSessionGetCurrentView(session: *mut BNTransformSession) -> *mut BNBinaryView;
16372}
16373unsafe extern "C" {
16374 pub fn BNTransformSessionGetRootContext(
16375 session: *mut BNTransformSession,
16376 ) -> *mut BNTransformContext;
16377}
16378unsafe extern "C" {
16379 pub fn BNTransformSessionGetCurrentContext(
16380 session: *mut BNTransformSession,
16381 ) -> *mut BNTransformContext;
16382}
16383unsafe extern "C" {
16384 pub fn BNTransformSessionProcessFrom(
16385 session: *mut BNTransformSession,
16386 context: *mut BNTransformContext,
16387 ) -> bool;
16388}
16389unsafe extern "C" {
16390 pub fn BNTransformSessionProcess(session: *mut BNTransformSession) -> bool;
16391}
16392unsafe extern "C" {
16393 pub fn BNTransformSessionHasAnyStages(session: *mut BNTransformSession) -> bool;
16394}
16395unsafe extern "C" {
16396 pub fn BNTransformSessionHasSinglePath(session: *mut BNTransformSession) -> bool;
16397}
16398unsafe extern "C" {
16399 pub fn BNTransformSessionGetSelectedContexts(
16400 session: *mut BNTransformSession,
16401 count: *mut usize,
16402 ) -> *mut *mut BNTransformContext;
16403}
16404unsafe extern "C" {
16405 pub fn BNTransformSessionSetSelectedContexts(
16406 session: *mut BNTransformSession,
16407 contexts: *mut *mut BNTransformContext,
16408 count: usize,
16409 );
16410}
16411unsafe extern "C" {
16412 #[doc = " Architectures"]
16413 pub fn BNGetArchitectureByName(name: *const ::std::os::raw::c_char) -> *mut BNArchitecture;
16414}
16415unsafe extern "C" {
16416 pub fn BNGetArchitectureList(count: *mut usize) -> *mut *mut BNArchitecture;
16417}
16418unsafe extern "C" {
16419 pub fn BNFreeArchitectureList(archs: *mut *mut BNArchitecture);
16420}
16421unsafe extern "C" {
16422 pub fn BNRegisterArchitecture(
16423 name: *const ::std::os::raw::c_char,
16424 arch: *mut BNCustomArchitecture,
16425 ) -> *mut BNArchitecture;
16426}
16427unsafe extern "C" {
16428 pub fn BNRegisterArchitectureExtension(
16429 name: *const ::std::os::raw::c_char,
16430 base: *mut BNArchitecture,
16431 arch: *mut BNCustomArchitecture,
16432 ) -> *mut BNArchitecture;
16433}
16434unsafe extern "C" {
16435 pub fn BNAddArchitectureRedirection(
16436 arch: *mut BNArchitecture,
16437 from: *mut BNArchitecture,
16438 to: *mut BNArchitecture,
16439 );
16440}
16441unsafe extern "C" {
16442 pub fn BNRegisterArchitectureHook(
16443 base: *mut BNArchitecture,
16444 arch: *mut BNCustomArchitecture,
16445 ) -> *mut BNArchitecture;
16446}
16447unsafe extern "C" {
16448 pub fn BNFinalizeArchitectureHook(base: *mut BNArchitecture);
16449}
16450unsafe extern "C" {
16451 pub fn BNGetNativeTypeParserArchitecture() -> *mut BNArchitecture;
16452}
16453unsafe extern "C" {
16454 pub fn BNGetArchitectureName(arch: *mut BNArchitecture) -> *mut ::std::os::raw::c_char;
16455}
16456unsafe extern "C" {
16457 pub fn BNGetArchitectureEndianness(arch: *mut BNArchitecture) -> BNEndianness;
16458}
16459unsafe extern "C" {
16460 pub fn BNGetArchitectureAddressSize(arch: *mut BNArchitecture) -> usize;
16461}
16462unsafe extern "C" {
16463 pub fn BNGetArchitectureDefaultIntegerSize(arch: *mut BNArchitecture) -> usize;
16464}
16465unsafe extern "C" {
16466 pub fn BNGetArchitectureInstructionAlignment(arch: *mut BNArchitecture) -> usize;
16467}
16468unsafe extern "C" {
16469 pub fn BNGetArchitectureLinearSweepInitialAlignment(arch: *mut BNArchitecture) -> usize;
16470}
16471unsafe extern "C" {
16472 pub fn BNGetArchitectureLinearSweepAnalysisCapabilities(arch: *mut BNArchitecture) -> u32;
16473}
16474unsafe extern "C" {
16475 pub fn BNGetArchitectureMaxInstructionLength(arch: *mut BNArchitecture) -> usize;
16476}
16477unsafe extern "C" {
16478 pub fn BNGetArchitectureOpcodeDisplayLength(arch: *mut BNArchitecture) -> usize;
16479}
16480unsafe extern "C" {
16481 pub fn BNGetAssociatedArchitectureByAddress(
16482 arch: *mut BNArchitecture,
16483 addr: *mut u64,
16484 ) -> *mut BNArchitecture;
16485}
16486unsafe extern "C" {
16487 pub fn BNGetInstructionInfo(
16488 arch: *mut BNArchitecture,
16489 data: *const u8,
16490 addr: u64,
16491 maxLen: usize,
16492 result: *mut BNInstructionInfo,
16493 ) -> bool;
16494}
16495unsafe extern "C" {
16496 pub fn BNGetInstructionText(
16497 arch: *mut BNArchitecture,
16498 data: *const u8,
16499 addr: u64,
16500 len: *mut usize,
16501 result: *mut *mut BNInstructionTextToken,
16502 count: *mut usize,
16503 ) -> bool;
16504}
16505unsafe extern "C" {
16506 pub fn BNGetInstructionTextWithContext(
16507 arch: *mut BNArchitecture,
16508 data: *const u8,
16509 addr: u64,
16510 len: *mut usize,
16511 context: *mut ::std::os::raw::c_void,
16512 result: *mut *mut BNInstructionTextToken,
16513 count: *mut usize,
16514 ) -> bool;
16515}
16516unsafe extern "C" {
16517 pub fn BNGetInstructionLowLevelIL(
16518 arch: *mut BNArchitecture,
16519 data: *const u8,
16520 addr: u64,
16521 len: *mut usize,
16522 il: *mut BNLowLevelILFunction,
16523 ) -> bool;
16524}
16525unsafe extern "C" {
16526 pub fn BNFreeInstructionText(tokens: *mut BNInstructionTextToken, count: usize);
16527}
16528unsafe extern "C" {
16529 pub fn BNArchitectureSetDefaultAnalyzeBasicBlocksCallback(
16530 callback: *mut ::std::os::raw::c_void,
16531 ) -> bool;
16532}
16533unsafe extern "C" {
16534 pub fn BNArchitectureDefaultAnalyzeBasicBlocks(
16535 function: *mut BNFunction,
16536 context: *mut BNBasicBlockAnalysisContext,
16537 );
16538}
16539unsafe extern "C" {
16540 pub fn BNArchitectureAnalyzeBasicBlocks(
16541 arch: *mut BNArchitecture,
16542 function: *mut BNFunction,
16543 context: *mut BNBasicBlockAnalysisContext,
16544 );
16545}
16546unsafe extern "C" {
16547 pub fn BNArchitectureSetDefaultLiftFunctionCallback(
16548 callback: *mut ::std::os::raw::c_void,
16549 ) -> bool;
16550}
16551unsafe extern "C" {
16552 pub fn BNArchitectureDefaultLiftFunction(
16553 function: *mut BNLowLevelILFunction,
16554 context: *mut BNFunctionLifterContext,
16555 ) -> bool;
16556}
16557unsafe extern "C" {
16558 pub fn BNArchitectureLiftFunction(
16559 arch: *mut BNArchitecture,
16560 function: *mut BNLowLevelILFunction,
16561 context: *mut BNFunctionLifterContext,
16562 ) -> bool;
16563}
16564unsafe extern "C" {
16565 pub fn BNArchitectureFreeFunctionArchContext(
16566 arch: *mut BNArchitecture,
16567 context: *mut ::std::os::raw::c_void,
16568 );
16569}
16570unsafe extern "C" {
16571 pub fn BNFreeInstructionTextLines(lines: *mut BNInstructionTextLine, count: usize);
16572}
16573unsafe extern "C" {
16574 pub fn BNGetArchitectureRegisterName(
16575 arch: *mut BNArchitecture,
16576 reg: u32,
16577 ) -> *mut ::std::os::raw::c_char;
16578}
16579unsafe extern "C" {
16580 pub fn BNGetArchitectureFlagName(
16581 arch: *mut BNArchitecture,
16582 flag: u32,
16583 ) -> *mut ::std::os::raw::c_char;
16584}
16585unsafe extern "C" {
16586 pub fn BNGetArchitectureFlagWriteTypeName(
16587 arch: *mut BNArchitecture,
16588 flags: u32,
16589 ) -> *mut ::std::os::raw::c_char;
16590}
16591unsafe extern "C" {
16592 pub fn BNGetArchitectureSemanticFlagClassName(
16593 arch: *mut BNArchitecture,
16594 semClass: u32,
16595 ) -> *mut ::std::os::raw::c_char;
16596}
16597unsafe extern "C" {
16598 pub fn BNGetArchitectureSemanticFlagGroupName(
16599 arch: *mut BNArchitecture,
16600 semGroup: u32,
16601 ) -> *mut ::std::os::raw::c_char;
16602}
16603unsafe extern "C" {
16604 pub fn BNGetFullWidthArchitectureRegisters(
16605 arch: *mut BNArchitecture,
16606 count: *mut usize,
16607 ) -> *mut u32;
16608}
16609unsafe extern "C" {
16610 pub fn BNGetAllArchitectureRegisters(arch: *mut BNArchitecture, count: *mut usize) -> *mut u32;
16611}
16612unsafe extern "C" {
16613 pub fn BNGetAllArchitectureFlags(arch: *mut BNArchitecture, count: *mut usize) -> *mut u32;
16614}
16615unsafe extern "C" {
16616 pub fn BNGetAllArchitectureFlagWriteTypes(
16617 arch: *mut BNArchitecture,
16618 count: *mut usize,
16619 ) -> *mut u32;
16620}
16621unsafe extern "C" {
16622 pub fn BNGetAllArchitectureSemanticFlagClasses(
16623 arch: *mut BNArchitecture,
16624 count: *mut usize,
16625 ) -> *mut u32;
16626}
16627unsafe extern "C" {
16628 pub fn BNGetAllArchitectureSemanticFlagGroups(
16629 arch: *mut BNArchitecture,
16630 count: *mut usize,
16631 ) -> *mut u32;
16632}
16633unsafe extern "C" {
16634 pub fn BNGetArchitectureFlagRole(
16635 arch: *mut BNArchitecture,
16636 flag: u32,
16637 semClass: u32,
16638 ) -> BNFlagRole;
16639}
16640unsafe extern "C" {
16641 pub fn BNGetArchitectureFlagsRequiredForFlagCondition(
16642 arch: *mut BNArchitecture,
16643 cond: BNLowLevelILFlagCondition,
16644 semClass: u32,
16645 count: *mut usize,
16646 ) -> *mut u32;
16647}
16648unsafe extern "C" {
16649 pub fn BNGetArchitectureFlagsRequiredForSemanticFlagGroup(
16650 arch: *mut BNArchitecture,
16651 semGroup: u32,
16652 count: *mut usize,
16653 ) -> *mut u32;
16654}
16655unsafe extern "C" {
16656 pub fn BNGetArchitectureFlagConditionsForSemanticFlagGroup(
16657 arch: *mut BNArchitecture,
16658 semGroup: u32,
16659 count: *mut usize,
16660 ) -> *mut BNFlagConditionForSemanticClass;
16661}
16662unsafe extern "C" {
16663 pub fn BNFreeFlagConditionsForSemanticFlagGroup(
16664 conditions: *mut BNFlagConditionForSemanticClass,
16665 );
16666}
16667unsafe extern "C" {
16668 pub fn BNGetArchitectureFlagsWrittenByFlagWriteType(
16669 arch: *mut BNArchitecture,
16670 writeType: u32,
16671 count: *mut usize,
16672 ) -> *mut u32;
16673}
16674unsafe extern "C" {
16675 pub fn BNGetArchitectureSemanticClassForFlagWriteType(
16676 arch: *mut BNArchitecture,
16677 writeType: u32,
16678 ) -> u32;
16679}
16680unsafe extern "C" {
16681 pub fn BNGetArchitectureFlagWriteLowLevelIL(
16682 arch: *mut BNArchitecture,
16683 op: BNLowLevelILOperation,
16684 size: usize,
16685 flagWriteType: u32,
16686 flag: u32,
16687 operands: *mut BNRegisterOrConstant,
16688 operandCount: usize,
16689 il: *mut BNLowLevelILFunction,
16690 ) -> usize;
16691}
16692unsafe extern "C" {
16693 pub fn BNGetDefaultArchitectureFlagWriteLowLevelIL(
16694 arch: *mut BNArchitecture,
16695 op: BNLowLevelILOperation,
16696 size: usize,
16697 role: BNFlagRole,
16698 operands: *mut BNRegisterOrConstant,
16699 operandCount: usize,
16700 il: *mut BNLowLevelILFunction,
16701 ) -> usize;
16702}
16703unsafe extern "C" {
16704 pub fn BNGetArchitectureFlagConditionLowLevelIL(
16705 arch: *mut BNArchitecture,
16706 cond: BNLowLevelILFlagCondition,
16707 semClass: u32,
16708 il: *mut BNLowLevelILFunction,
16709 ) -> usize;
16710}
16711unsafe extern "C" {
16712 pub fn BNGetDefaultArchitectureFlagConditionLowLevelIL(
16713 arch: *mut BNArchitecture,
16714 cond: BNLowLevelILFlagCondition,
16715 semClass: u32,
16716 il: *mut BNLowLevelILFunction,
16717 ) -> usize;
16718}
16719unsafe extern "C" {
16720 pub fn BNGetArchitectureSemanticFlagGroupLowLevelIL(
16721 arch: *mut BNArchitecture,
16722 semGroup: u32,
16723 il: *mut BNLowLevelILFunction,
16724 ) -> usize;
16725}
16726unsafe extern "C" {
16727 pub fn BNGetModifiedArchitectureRegistersOnWrite(
16728 arch: *mut BNArchitecture,
16729 reg: u32,
16730 count: *mut usize,
16731 ) -> *mut u32;
16732}
16733unsafe extern "C" {
16734 pub fn BNFreeRegisterList(regs: *mut u32);
16735}
16736unsafe extern "C" {
16737 pub fn BNGetArchitectureRegisterInfo(arch: *mut BNArchitecture, reg: u32) -> BNRegisterInfo;
16738}
16739unsafe extern "C" {
16740 pub fn BNGetArchitectureStackPointerRegister(arch: *mut BNArchitecture) -> u32;
16741}
16742unsafe extern "C" {
16743 pub fn BNGetArchitectureLinkRegister(arch: *mut BNArchitecture) -> u32;
16744}
16745unsafe extern "C" {
16746 pub fn BNGetArchitectureGlobalRegisters(
16747 arch: *mut BNArchitecture,
16748 count: *mut usize,
16749 ) -> *mut u32;
16750}
16751unsafe extern "C" {
16752 pub fn BNIsArchitectureGlobalRegister(arch: *mut BNArchitecture, reg: u32) -> bool;
16753}
16754unsafe extern "C" {
16755 pub fn BNGetArchitectureSystemRegisters(
16756 arch: *mut BNArchitecture,
16757 count: *mut usize,
16758 ) -> *mut u32;
16759}
16760unsafe extern "C" {
16761 pub fn BNIsArchitectureSystemRegister(arch: *mut BNArchitecture, reg: u32) -> bool;
16762}
16763unsafe extern "C" {
16764 pub fn BNGetArchitectureRegisterByName(
16765 arch: *mut BNArchitecture,
16766 name: *const ::std::os::raw::c_char,
16767 ) -> u32;
16768}
16769unsafe extern "C" {
16770 pub fn BNGetArchitectureRegisterStackName(
16771 arch: *mut BNArchitecture,
16772 regStack: u32,
16773 ) -> *mut ::std::os::raw::c_char;
16774}
16775unsafe extern "C" {
16776 pub fn BNGetAllArchitectureRegisterStacks(
16777 arch: *mut BNArchitecture,
16778 count: *mut usize,
16779 ) -> *mut u32;
16780}
16781unsafe extern "C" {
16782 pub fn BNGetArchitectureRegisterStackInfo(
16783 arch: *mut BNArchitecture,
16784 regStack: u32,
16785 ) -> BNRegisterStackInfo;
16786}
16787unsafe extern "C" {
16788 pub fn BNGetArchitectureRegisterStackForRegister(arch: *mut BNArchitecture, reg: u32) -> u32;
16789}
16790unsafe extern "C" {
16791 pub fn BNGetArchitectureIntrinsicClass(
16792 arch: *mut BNArchitecture,
16793 intrinsic: u32,
16794 ) -> BNIntrinsicClass;
16795}
16796unsafe extern "C" {
16797 pub fn BNGetArchitectureIntrinsicName(
16798 arch: *mut BNArchitecture,
16799 intrinsic: u32,
16800 ) -> *mut ::std::os::raw::c_char;
16801}
16802unsafe extern "C" {
16803 pub fn BNGetAllArchitectureIntrinsics(arch: *mut BNArchitecture, count: *mut usize)
16804 -> *mut u32;
16805}
16806unsafe extern "C" {
16807 pub fn BNGetArchitectureIntrinsicInputs(
16808 arch: *mut BNArchitecture,
16809 intrinsic: u32,
16810 count: *mut usize,
16811 ) -> *mut BNNameAndType;
16812}
16813unsafe extern "C" {
16814 pub fn BNFreeNameAndTypeList(nt: *mut BNNameAndType, count: usize);
16815}
16816unsafe extern "C" {
16817 pub fn BNGetArchitectureIntrinsicOutputs(
16818 arch: *mut BNArchitecture,
16819 intrinsic: u32,
16820 count: *mut usize,
16821 ) -> *mut BNTypeWithConfidence;
16822}
16823unsafe extern "C" {
16824 pub fn BNFreeOutputTypeList(types: *mut BNTypeWithConfidence, count: usize);
16825}
16826unsafe extern "C" {
16827 pub fn BNCanArchitectureAssemble(arch: *mut BNArchitecture) -> bool;
16828}
16829unsafe extern "C" {
16830 pub fn BNAssemble(
16831 arch: *mut BNArchitecture,
16832 code: *const ::std::os::raw::c_char,
16833 addr: u64,
16834 result: *mut BNDataBuffer,
16835 errors: *mut *mut ::std::os::raw::c_char,
16836 ) -> bool;
16837}
16838unsafe extern "C" {
16839 pub fn BNIsArchitectureNeverBranchPatchAvailable(
16840 arch: *mut BNArchitecture,
16841 data: *const u8,
16842 addr: u64,
16843 len: usize,
16844 ) -> bool;
16845}
16846unsafe extern "C" {
16847 pub fn BNIsArchitectureAlwaysBranchPatchAvailable(
16848 arch: *mut BNArchitecture,
16849 data: *const u8,
16850 addr: u64,
16851 len: usize,
16852 ) -> bool;
16853}
16854unsafe extern "C" {
16855 pub fn BNIsArchitectureInvertBranchPatchAvailable(
16856 arch: *mut BNArchitecture,
16857 data: *const u8,
16858 addr: u64,
16859 len: usize,
16860 ) -> bool;
16861}
16862unsafe extern "C" {
16863 pub fn BNIsArchitectureSkipAndReturnZeroPatchAvailable(
16864 arch: *mut BNArchitecture,
16865 data: *const u8,
16866 addr: u64,
16867 len: usize,
16868 ) -> bool;
16869}
16870unsafe extern "C" {
16871 pub fn BNIsArchitectureSkipAndReturnValuePatchAvailable(
16872 arch: *mut BNArchitecture,
16873 data: *const u8,
16874 addr: u64,
16875 len: usize,
16876 ) -> bool;
16877}
16878unsafe extern "C" {
16879 pub fn BNArchitectureConvertToNop(
16880 arch: *mut BNArchitecture,
16881 data: *mut u8,
16882 addr: u64,
16883 len: usize,
16884 ) -> bool;
16885}
16886unsafe extern "C" {
16887 pub fn BNArchitectureAlwaysBranch(
16888 arch: *mut BNArchitecture,
16889 data: *mut u8,
16890 addr: u64,
16891 len: usize,
16892 ) -> bool;
16893}
16894unsafe extern "C" {
16895 pub fn BNArchitectureInvertBranch(
16896 arch: *mut BNArchitecture,
16897 data: *mut u8,
16898 addr: u64,
16899 len: usize,
16900 ) -> bool;
16901}
16902unsafe extern "C" {
16903 pub fn BNArchitectureSkipAndReturnValue(
16904 arch: *mut BNArchitecture,
16905 data: *mut u8,
16906 addr: u64,
16907 len: usize,
16908 value: u64,
16909 ) -> bool;
16910}
16911unsafe extern "C" {
16912 pub fn BNRegisterArchitectureFunctionRecognizer(
16913 arch: *mut BNArchitecture,
16914 rec: *mut BNFunctionRecognizer,
16915 );
16916}
16917unsafe extern "C" {
16918 pub fn BNArchitectureRegisterRelocationHandler(
16919 arch: *mut BNArchitecture,
16920 viewName: *const ::std::os::raw::c_char,
16921 handler: *mut BNRelocationHandler,
16922 );
16923}
16924unsafe extern "C" {
16925 pub fn BNCreateRelocationHandler(
16926 handler: *mut BNCustomRelocationHandler,
16927 ) -> *mut BNRelocationHandler;
16928}
16929unsafe extern "C" {
16930 pub fn BNArchitectureGetRelocationHandler(
16931 arch: *mut BNArchitecture,
16932 viewName: *const ::std::os::raw::c_char,
16933 ) -> *mut BNRelocationHandler;
16934}
16935unsafe extern "C" {
16936 pub fn BNNewRelocationHandlerReference(
16937 handler: *mut BNRelocationHandler,
16938 ) -> *mut BNRelocationHandler;
16939}
16940unsafe extern "C" {
16941 pub fn BNFreeRelocationHandler(handler: *mut BNRelocationHandler);
16942}
16943unsafe extern "C" {
16944 pub fn BNRelocationHandlerGetRelocationInfo(
16945 handler: *mut BNRelocationHandler,
16946 data: *mut BNBinaryView,
16947 arch: *mut BNArchitecture,
16948 info: *mut BNRelocationInfo,
16949 infoCount: usize,
16950 ) -> bool;
16951}
16952unsafe extern "C" {
16953 pub fn BNRelocationHandlerApplyRelocation(
16954 handler: *mut BNRelocationHandler,
16955 view: *mut BNBinaryView,
16956 arch: *mut BNArchitecture,
16957 reloc: *mut BNRelocation,
16958 dest: *mut u8,
16959 len: usize,
16960 ) -> bool;
16961}
16962unsafe extern "C" {
16963 pub fn BNRelocationHandlerDefaultApplyRelocation(
16964 handler: *mut BNRelocationHandler,
16965 view: *mut BNBinaryView,
16966 arch: *mut BNArchitecture,
16967 reloc: *mut BNRelocation,
16968 dest: *mut u8,
16969 len: usize,
16970 ) -> bool;
16971}
16972unsafe extern "C" {
16973 pub fn BNRelocationHandlerGetOperandForExternalRelocation(
16974 handler: *mut BNRelocationHandler,
16975 data: *const u8,
16976 addr: u64,
16977 length: usize,
16978 il: *const BNLowLevelILFunction,
16979 relocation: *mut BNRelocation,
16980 ) -> usize;
16981}
16982unsafe extern "C" {
16983 #[doc = " Analysis"]
16984 pub fn BNAddAnalysisOption(view: *mut BNBinaryView, name: *const ::std::os::raw::c_char);
16985}
16986unsafe extern "C" {
16987 pub fn BNAddFunctionForAnalysis(
16988 view: *mut BNBinaryView,
16989 platform: *mut BNPlatform,
16990 addr: u64,
16991 autoDiscovered: bool,
16992 type_: *mut BNType,
16993 ) -> *mut BNFunction;
16994}
16995unsafe extern "C" {
16996 pub fn BNAddEntryPointForAnalysis(
16997 view: *mut BNBinaryView,
16998 platform: *mut BNPlatform,
16999 addr: u64,
17000 );
17001}
17002unsafe extern "C" {
17003 pub fn BNRemoveAnalysisFunction(
17004 view: *mut BNBinaryView,
17005 func: *mut BNFunction,
17006 updateRefs: bool,
17007 );
17008}
17009unsafe extern "C" {
17010 pub fn BNCreateUserFunction(
17011 view: *mut BNBinaryView,
17012 platform: *mut BNPlatform,
17013 addr: u64,
17014 ) -> *mut BNFunction;
17015}
17016unsafe extern "C" {
17017 pub fn BNRemoveUserFunction(view: *mut BNBinaryView, func: *mut BNFunction);
17018}
17019unsafe extern "C" {
17020 pub fn BNHasInitialAnalysis(view: *mut BNBinaryView) -> bool;
17021}
17022unsafe extern "C" {
17023 pub fn BNSetAnalysisHold(view: *mut BNBinaryView, enable: bool);
17024}
17025unsafe extern "C" {
17026 pub fn BNGetFunctionAnalysisUpdateDisabled(view: *mut BNBinaryView) -> bool;
17027}
17028unsafe extern "C" {
17029 pub fn BNSetFunctionAnalysisUpdateDisabled(view: *mut BNBinaryView, disabled: bool);
17030}
17031unsafe extern "C" {
17032 pub fn BNUpdateAnalysisAndWait(view: *mut BNBinaryView);
17033}
17034unsafe extern "C" {
17035 pub fn BNUpdateAnalysis(view: *mut BNBinaryView);
17036}
17037unsafe extern "C" {
17038 pub fn BNAbortAnalysis(view: *mut BNBinaryView);
17039}
17040unsafe extern "C" {
17041 pub fn BNAnalysisIsAborted(view: *mut BNBinaryView) -> bool;
17042}
17043unsafe extern "C" {
17044 pub fn BNIsFunctionUpdateNeeded(func: *mut BNFunction) -> bool;
17045}
17046unsafe extern "C" {
17047 pub fn BNRequestAdvancedFunctionAnalysisData(func: *mut BNFunction);
17048}
17049unsafe extern "C" {
17050 pub fn BNReleaseAdvancedFunctionAnalysisData(func: *mut BNFunction);
17051}
17052unsafe extern "C" {
17053 pub fn BNReleaseAdvancedFunctionAnalysisDataMultiple(func: *mut BNFunction, count: usize);
17054}
17055unsafe extern "C" {
17056 pub fn BNNewFunctionReference(func: *mut BNFunction) -> *mut BNFunction;
17057}
17058unsafe extern "C" {
17059 pub fn BNFreeFunction(func: *mut BNFunction);
17060}
17061unsafe extern "C" {
17062 pub fn BNGetAnalysisFunctionList(
17063 view: *mut BNBinaryView,
17064 count: *mut usize,
17065 ) -> *mut *mut BNFunction;
17066}
17067unsafe extern "C" {
17068 pub fn BNFreeFunctionList(funcs: *mut *mut BNFunction, count: usize);
17069}
17070unsafe extern "C" {
17071 pub fn BNHasFunctions(view: *mut BNBinaryView) -> bool;
17072}
17073unsafe extern "C" {
17074 pub fn BNHasSymbols(view: *mut BNBinaryView) -> bool;
17075}
17076unsafe extern "C" {
17077 pub fn BNHasDataVariables(view: *mut BNBinaryView) -> bool;
17078}
17079unsafe extern "C" {
17080 pub fn BNGetAnalysisFunction(
17081 view: *mut BNBinaryView,
17082 platform: *mut BNPlatform,
17083 addr: u64,
17084 ) -> *mut BNFunction;
17085}
17086unsafe extern "C" {
17087 pub fn BNGetRecentAnalysisFunctionForAddress(
17088 view: *mut BNBinaryView,
17089 addr: u64,
17090 ) -> *mut BNFunction;
17091}
17092unsafe extern "C" {
17093 pub fn BNGetAnalysisFunctionsForAddress(
17094 view: *mut BNBinaryView,
17095 addr: u64,
17096 count: *mut usize,
17097 ) -> *mut *mut BNFunction;
17098}
17099unsafe extern "C" {
17100 pub fn BNGetAnalysisFunctionsContainingAddress(
17101 view: *mut BNBinaryView,
17102 addr: u64,
17103 count: *mut usize,
17104 ) -> *mut *mut BNFunction;
17105}
17106unsafe extern "C" {
17107 pub fn BNGetAnalysisEntryPoint(view: *mut BNBinaryView) -> *mut BNFunction;
17108}
17109unsafe extern "C" {
17110 pub fn BNGetAllEntryFunctions(
17111 view: *mut BNBinaryView,
17112 count: *mut usize,
17113 ) -> *mut *mut BNFunction;
17114}
17115unsafe extern "C" {
17116 pub fn BNAddToEntryFunctions(view: *mut BNBinaryView, func: *mut BNFunction);
17117}
17118unsafe extern "C" {
17119 pub fn BNGetGlobalCommentForAddress(
17120 view: *mut BNBinaryView,
17121 addr: u64,
17122 ) -> *mut ::std::os::raw::c_char;
17123}
17124unsafe extern "C" {
17125 pub fn BNGetGlobalCommentedAddresses(view: *mut BNBinaryView, count: *mut usize) -> *mut u64;
17126}
17127unsafe extern "C" {
17128 pub fn BNSetGlobalCommentForAddress(
17129 view: *mut BNBinaryView,
17130 addr: u64,
17131 comment: *const ::std::os::raw::c_char,
17132 );
17133}
17134unsafe extern "C" {
17135 pub fn BNGetFunctionData(func: *mut BNFunction) -> *mut BNBinaryView;
17136}
17137unsafe extern "C" {
17138 pub fn BNGetFunctionArchitecture(func: *mut BNFunction) -> *mut BNArchitecture;
17139}
17140unsafe extern "C" {
17141 pub fn BNGetFunctionPlatform(func: *mut BNFunction) -> *mut BNPlatform;
17142}
17143unsafe extern "C" {
17144 pub fn BNGetFunctionStart(func: *mut BNFunction) -> u64;
17145}
17146unsafe extern "C" {
17147 pub fn BNGetFunctionSymbol(func: *mut BNFunction) -> *mut BNSymbol;
17148}
17149unsafe extern "C" {
17150 pub fn BNWasFunctionAutomaticallyDiscovered(func: *mut BNFunction) -> bool;
17151}
17152unsafe extern "C" {
17153 pub fn BNFunctionHasUserAnnotations(func: *mut BNFunction) -> bool;
17154}
17155unsafe extern "C" {
17156 pub fn BNCanFunctionReturn(func: *mut BNFunction) -> BNBoolWithConfidence;
17157}
17158unsafe extern "C" {
17159 pub fn BNIsFunctionPure(func: *mut BNFunction) -> BNBoolWithConfidence;
17160}
17161unsafe extern "C" {
17162 pub fn BNSetFunctionAutoType(func: *mut BNFunction, type_: *mut BNType);
17163}
17164unsafe extern "C" {
17165 pub fn BNSetFunctionUserType(func: *mut BNFunction, type_: *mut BNType);
17166}
17167unsafe extern "C" {
17168 pub fn BNFunctionHasUserType(func: *mut BNFunction) -> bool;
17169}
17170unsafe extern "C" {
17171 pub fn BNGetFunctionComment(func: *mut BNFunction) -> *mut ::std::os::raw::c_char;
17172}
17173unsafe extern "C" {
17174 pub fn BNGetCommentForAddress(func: *mut BNFunction, addr: u64) -> *mut ::std::os::raw::c_char;
17175}
17176unsafe extern "C" {
17177 pub fn BNGetCommentedAddresses(func: *mut BNFunction, count: *mut usize) -> *mut u64;
17178}
17179unsafe extern "C" {
17180 pub fn BNFreeAddressList(addrs: *mut u64);
17181}
17182unsafe extern "C" {
17183 pub fn BNSetFunctionComment(func: *mut BNFunction, comment: *const ::std::os::raw::c_char);
17184}
17185unsafe extern "C" {
17186 pub fn BNSetCommentForAddress(
17187 func: *mut BNFunction,
17188 addr: u64,
17189 comment: *const ::std::os::raw::c_char,
17190 );
17191}
17192unsafe extern "C" {
17193 pub fn BNAddUserCodeReference(
17194 func: *mut BNFunction,
17195 fromArch: *mut BNArchitecture,
17196 fromAddr: u64,
17197 toAddr: u64,
17198 );
17199}
17200unsafe extern "C" {
17201 pub fn BNRemoveUserCodeReference(
17202 func: *mut BNFunction,
17203 fromArch: *mut BNArchitecture,
17204 fromAddr: u64,
17205 toAddr: u64,
17206 );
17207}
17208unsafe extern "C" {
17209 pub fn BNAddUserTypeReference(
17210 func: *mut BNFunction,
17211 fromArch: *mut BNArchitecture,
17212 fromAddr: u64,
17213 name: *mut BNQualifiedName,
17214 );
17215}
17216unsafe extern "C" {
17217 pub fn BNRemoveUserTypeReference(
17218 func: *mut BNFunction,
17219 fromArch: *mut BNArchitecture,
17220 fromAddr: u64,
17221 name: *mut BNQualifiedName,
17222 );
17223}
17224unsafe extern "C" {
17225 pub fn BNAddUserTypeFieldReference(
17226 func: *mut BNFunction,
17227 fromArch: *mut BNArchitecture,
17228 fromAddr: u64,
17229 name: *mut BNQualifiedName,
17230 offset: u64,
17231 size: usize,
17232 );
17233}
17234unsafe extern "C" {
17235 pub fn BNRemoveUserTypeFieldReference(
17236 func: *mut BNFunction,
17237 fromArch: *mut BNArchitecture,
17238 fromAddr: u64,
17239 name: *mut BNQualifiedName,
17240 offset: u64,
17241 size: usize,
17242 );
17243}
17244unsafe extern "C" {
17245 pub fn BNGetForeignFunctionLiftedIL(
17246 func: *const BNFunction,
17247 logger: *const BNLogger,
17248 inlinedCallsCount: usize,
17249 inlinedCalls: *const u64,
17250 ) -> *mut BNLowLevelILFunction;
17251}
17252unsafe extern "C" {
17253 pub fn BNNewBasicBlockReference(block: *mut BNBasicBlock) -> *mut BNBasicBlock;
17254}
17255unsafe extern "C" {
17256 pub fn BNFreeBasicBlock(block: *mut BNBasicBlock);
17257}
17258unsafe extern "C" {
17259 pub fn BNNewLifterInstructionDataReference(
17260 instrData: *mut BNLifterInstructionData,
17261 ) -> *mut BNLifterInstructionData;
17262}
17263unsafe extern "C" {
17264 pub fn BNFreeLifterInstructionData(instrData: *mut BNLifterInstructionData);
17265}
17266unsafe extern "C" {
17267 pub fn BNLifterInstructionDataAppend(
17268 instrData: *mut BNLifterInstructionData,
17269 block: *mut BNBasicBlock,
17270 data: *const ::std::os::raw::c_void,
17271 len: usize,
17272 );
17273}
17274unsafe extern "C" {
17275 pub fn BNLifterInstructionDataGet(
17276 instrData: *mut BNLifterInstructionData,
17277 block: *mut BNBasicBlock,
17278 addr: u64,
17279 len: *mut usize,
17280 ) -> *const u8;
17281}
17282unsafe extern "C" {
17283 pub fn BNGetFunctionBasicBlockList(
17284 func: *mut BNFunction,
17285 count: *mut usize,
17286 ) -> *mut *mut BNBasicBlock;
17287}
17288unsafe extern "C" {
17289 pub fn BNFreeBasicBlockList(blocks: *mut *mut BNBasicBlock, count: usize);
17290}
17291unsafe extern "C" {
17292 pub fn BNGetFunctionBasicBlockAtAddress(
17293 func: *mut BNFunction,
17294 arch: *mut BNArchitecture,
17295 addr: u64,
17296 ) -> *mut BNBasicBlock;
17297}
17298unsafe extern "C" {
17299 pub fn BNGetRecentBasicBlockForAddress(view: *mut BNBinaryView, addr: u64)
17300 -> *mut BNBasicBlock;
17301}
17302unsafe extern "C" {
17303 pub fn BNGetBasicBlocksForAddress(
17304 view: *mut BNBinaryView,
17305 addr: u64,
17306 count: *mut usize,
17307 ) -> *mut *mut BNBasicBlock;
17308}
17309unsafe extern "C" {
17310 pub fn BNGetBasicBlocksStartingAtAddress(
17311 view: *mut BNBinaryView,
17312 addr: u64,
17313 count: *mut usize,
17314 ) -> *mut *mut BNBasicBlock;
17315}
17316unsafe extern "C" {
17317 pub fn BNGetFunctionHighestAddress(func: *mut BNFunction) -> u64;
17318}
17319unsafe extern "C" {
17320 pub fn BNGetFunctionLowestAddress(func: *mut BNFunction) -> u64;
17321}
17322unsafe extern "C" {
17323 pub fn BNGetFunctionAddressRanges(
17324 func: *mut BNFunction,
17325 count: *mut usize,
17326 ) -> *mut BNAddressRange;
17327}
17328unsafe extern "C" {
17329 pub fn BNGetFunctionLowLevelIL(func: *mut BNFunction) -> *mut BNLowLevelILFunction;
17330}
17331unsafe extern "C" {
17332 pub fn BNGetFunctionLowLevelILIfAvailable(func: *mut BNFunction) -> *mut BNLowLevelILFunction;
17333}
17334unsafe extern "C" {
17335 pub fn BNFreeILInstructionList(list: *mut usize);
17336}
17337unsafe extern "C" {
17338 pub fn BNGetFunctionMediumLevelIL(func: *mut BNFunction) -> *mut BNMediumLevelILFunction;
17339}
17340unsafe extern "C" {
17341 pub fn BNGetFunctionMediumLevelILIfAvailable(
17342 func: *mut BNFunction,
17343 ) -> *mut BNMediumLevelILFunction;
17344}
17345unsafe extern "C" {
17346 pub fn BNGetFunctionMappedMediumLevelIL(func: *mut BNFunction) -> *mut BNMediumLevelILFunction;
17347}
17348unsafe extern "C" {
17349 pub fn BNGetFunctionMappedMediumLevelILIfAvailable(
17350 func: *mut BNFunction,
17351 ) -> *mut BNMediumLevelILFunction;
17352}
17353unsafe extern "C" {
17354 pub fn BNGetFunctionHighLevelIL(func: *mut BNFunction) -> *mut BNHighLevelILFunction;
17355}
17356unsafe extern "C" {
17357 pub fn BNGetFunctionHighLevelILIfAvailable(func: *mut BNFunction)
17358 -> *mut BNHighLevelILFunction;
17359}
17360unsafe extern "C" {
17361 pub fn BNGetFunctionLanguageRepresentation(
17362 func: *mut BNFunction,
17363 language: *const ::std::os::raw::c_char,
17364 ) -> *mut BNLanguageRepresentationFunction;
17365}
17366unsafe extern "C" {
17367 pub fn BNGetFunctionLanguageRepresentationIfAvailable(
17368 func: *mut BNFunction,
17369 language: *const ::std::os::raw::c_char,
17370 ) -> *mut BNLanguageRepresentationFunction;
17371}
17372unsafe extern "C" {
17373 pub fn BNGetConstantData(
17374 func: *mut BNFunction,
17375 state: BNRegisterValueType,
17376 value: u64,
17377 size: usize,
17378 builtin: *mut BNBuiltinType,
17379 ) -> *mut BNDataBuffer;
17380}
17381unsafe extern "C" {
17382 pub fn BNGetRegisterValueAtInstruction(
17383 func: *mut BNFunction,
17384 arch: *mut BNArchitecture,
17385 addr: u64,
17386 reg: u32,
17387 ) -> BNRegisterValue;
17388}
17389unsafe extern "C" {
17390 pub fn BNGetRegisterValueAfterInstruction(
17391 func: *mut BNFunction,
17392 arch: *mut BNArchitecture,
17393 addr: u64,
17394 reg: u32,
17395 ) -> BNRegisterValue;
17396}
17397unsafe extern "C" {
17398 pub fn BNGetStackContentsAtInstruction(
17399 func: *mut BNFunction,
17400 arch: *mut BNArchitecture,
17401 addr: u64,
17402 offset: i64,
17403 size: usize,
17404 ) -> BNRegisterValue;
17405}
17406unsafe extern "C" {
17407 pub fn BNGetStackContentsAfterInstruction(
17408 func: *mut BNFunction,
17409 arch: *mut BNArchitecture,
17410 addr: u64,
17411 offset: i64,
17412 size: usize,
17413 ) -> BNRegisterValue;
17414}
17415unsafe extern "C" {
17416 pub fn BNGetParameterValueAtInstruction(
17417 func: *mut BNFunction,
17418 arch: *mut BNArchitecture,
17419 addr: u64,
17420 functionType: *mut BNType,
17421 i: usize,
17422 ) -> BNRegisterValue;
17423}
17424unsafe extern "C" {
17425 pub fn BNGetParameterValueAtLowLevelILInstruction(
17426 func: *mut BNFunction,
17427 instr: usize,
17428 functionType: *mut BNType,
17429 i: usize,
17430 ) -> BNRegisterValue;
17431}
17432unsafe extern "C" {
17433 pub fn BNGetRegistersReadByInstruction(
17434 func: *mut BNFunction,
17435 arch: *mut BNArchitecture,
17436 addr: u64,
17437 count: *mut usize,
17438 ) -> *mut u32;
17439}
17440unsafe extern "C" {
17441 pub fn BNGetRegistersWrittenByInstruction(
17442 func: *mut BNFunction,
17443 arch: *mut BNArchitecture,
17444 addr: u64,
17445 count: *mut usize,
17446 ) -> *mut u32;
17447}
17448unsafe extern "C" {
17449 pub fn BNGetStackVariablesReferencedByInstruction(
17450 func: *mut BNFunction,
17451 arch: *mut BNArchitecture,
17452 addr: u64,
17453 count: *mut usize,
17454 ) -> *mut BNStackVariableReference;
17455}
17456unsafe extern "C" {
17457 pub fn BNGetStackVariablesReferencedByInstructionIfAvailable(
17458 func: *mut BNFunction,
17459 arch: *mut BNArchitecture,
17460 addr: u64,
17461 count: *mut usize,
17462 ) -> *mut BNStackVariableReference;
17463}
17464unsafe extern "C" {
17465 pub fn BNFreeStackVariableReferenceList(refs: *mut BNStackVariableReference, count: usize);
17466}
17467unsafe extern "C" {
17468 pub fn BNGetConstantsReferencedByInstruction(
17469 func: *mut BNFunction,
17470 arch: *mut BNArchitecture,
17471 addr: u64,
17472 count: *mut usize,
17473 ) -> *mut BNConstantReference;
17474}
17475unsafe extern "C" {
17476 pub fn BNGetConstantsReferencedByInstructionIfAvailable(
17477 func: *mut BNFunction,
17478 arch: *mut BNArchitecture,
17479 addr: u64,
17480 count: *mut usize,
17481 ) -> *mut BNConstantReference;
17482}
17483unsafe extern "C" {
17484 pub fn BNFreeConstantReferenceList(refs: *mut BNConstantReference);
17485}
17486unsafe extern "C" {
17487 pub fn BNGetFunctionLiftedIL(func: *mut BNFunction) -> *mut BNLowLevelILFunction;
17488}
17489unsafe extern "C" {
17490 pub fn BNGetFunctionLiftedILIfAvailable(func: *mut BNFunction) -> *mut BNLowLevelILFunction;
17491}
17492unsafe extern "C" {
17493 pub fn BNGetLiftedILFlagUsesForDefinition(
17494 func: *mut BNFunction,
17495 i: usize,
17496 flag: u32,
17497 count: *mut usize,
17498 ) -> *mut usize;
17499}
17500unsafe extern "C" {
17501 pub fn BNGetLiftedILFlagDefinitionsForUse(
17502 func: *mut BNFunction,
17503 i: usize,
17504 flag: u32,
17505 count: *mut usize,
17506 ) -> *mut usize;
17507}
17508unsafe extern "C" {
17509 pub fn BNGetFlagsReadByLiftedILInstruction(
17510 func: *mut BNFunction,
17511 i: usize,
17512 count: *mut usize,
17513 ) -> *mut u32;
17514}
17515unsafe extern "C" {
17516 pub fn BNGetFlagsWrittenByLiftedILInstruction(
17517 func: *mut BNFunction,
17518 i: usize,
17519 count: *mut usize,
17520 ) -> *mut u32;
17521}
17522unsafe extern "C" {
17523 pub fn BNGetFunctionType(func: *mut BNFunction) -> *mut BNType;
17524}
17525unsafe extern "C" {
17526 pub fn BNGetFunctionReturnType(func: *mut BNFunction) -> BNTypeWithConfidence;
17527}
17528unsafe extern "C" {
17529 pub fn BNGetFunctionReturnValue(func: *mut BNFunction) -> BNReturnValue;
17530}
17531unsafe extern "C" {
17532 pub fn BNFreeReturnValue(ret: *mut BNReturnValue);
17533}
17534unsafe extern "C" {
17535 pub fn BNIsFunctionReturnValueDefaultLocation(func: *mut BNFunction) -> bool;
17536}
17537unsafe extern "C" {
17538 pub fn BNGetFunctionReturnValueLocation(func: *mut BNFunction)
17539 -> BNValueLocationWithConfidence;
17540}
17541unsafe extern "C" {
17542 pub fn BNGetFunctionReturnRegisters(func: *mut BNFunction) -> BNRegisterSetWithConfidence;
17543}
17544unsafe extern "C" {
17545 pub fn BNGetFunctionCallingConvention(
17546 func: *mut BNFunction,
17547 ) -> BNCallingConventionWithConfidence;
17548}
17549unsafe extern "C" {
17550 pub fn BNGetFunctionParameterVariables(
17551 func: *mut BNFunction,
17552 ) -> BNParameterVariablesWithConfidence;
17553}
17554unsafe extern "C" {
17555 pub fn BNFreeParameterVariables(vars: *mut BNParameterVariablesWithConfidence);
17556}
17557unsafe extern "C" {
17558 pub fn BNGetFunctionParameterLocations(
17559 func: *mut BNFunction,
17560 ) -> BNValueLocationListWithConfidence;
17561}
17562unsafe extern "C" {
17563 pub fn BNFreeParameterLocations(locations: *mut BNValueLocationListWithConfidence);
17564}
17565unsafe extern "C" {
17566 pub fn BNGetValueLocationVariableForReturnValue(
17567 location: *const BNValueLocation,
17568 var: *mut BNVariable,
17569 ) -> bool;
17570}
17571unsafe extern "C" {
17572 pub fn BNGetValueLocationVariableForParameter(
17573 location: *const BNValueLocation,
17574 var: *mut BNVariable,
17575 idx: usize,
17576 ) -> bool;
17577}
17578unsafe extern "C" {
17579 pub fn BNFunctionHasVariableArguments(func: *mut BNFunction) -> BNBoolWithConfidence;
17580}
17581unsafe extern "C" {
17582 pub fn BNGetFunctionStackAdjustment(func: *mut BNFunction) -> BNOffsetWithConfidence;
17583}
17584unsafe extern "C" {
17585 pub fn BNGetFunctionRegisterStackAdjustments(
17586 func: *mut BNFunction,
17587 count: *mut usize,
17588 ) -> *mut BNRegisterStackAdjustment;
17589}
17590unsafe extern "C" {
17591 pub fn BNFreeRegisterStackAdjustments(adjustments: *mut BNRegisterStackAdjustment);
17592}
17593unsafe extern "C" {
17594 pub fn BNGetFunctionClobberedRegisters(func: *mut BNFunction) -> BNRegisterSetWithConfidence;
17595}
17596unsafe extern "C" {
17597 pub fn BNFreeRegisterSet(regs: *mut BNRegisterSetWithConfidence);
17598}
17599unsafe extern "C" {
17600 pub fn BNSetAutoFunctionReturnType(func: *mut BNFunction, type_: *mut BNTypeWithConfidence);
17601}
17602unsafe extern "C" {
17603 pub fn BNSetAutoIsFunctionReturnValueDefaultLocation(
17604 func: *mut BNFunction,
17605 defaultLocation: bool,
17606 );
17607}
17608unsafe extern "C" {
17609 pub fn BNSetAutoFunctionReturnValueLocation(
17610 func: *mut BNFunction,
17611 location: *mut BNValueLocationWithConfidence,
17612 );
17613}
17614unsafe extern "C" {
17615 pub fn BNSetAutoFunctionReturnValue(func: *mut BNFunction, returnValue: *mut BNReturnValue);
17616}
17617unsafe extern "C" {
17618 pub fn BNSetAutoFunctionCallingConvention(
17619 func: *mut BNFunction,
17620 convention: *mut BNCallingConventionWithConfidence,
17621 );
17622}
17623unsafe extern "C" {
17624 pub fn BNSetAutoFunctionParameterLocations(
17625 func: *mut BNFunction,
17626 locations: *mut BNValueLocationListWithConfidence,
17627 );
17628}
17629unsafe extern "C" {
17630 pub fn BNSetAutoFunctionHasVariableArguments(
17631 func: *mut BNFunction,
17632 varArgs: *mut BNBoolWithConfidence,
17633 );
17634}
17635unsafe extern "C" {
17636 pub fn BNSetAutoFunctionCanReturn(func: *mut BNFunction, returns: *mut BNBoolWithConfidence);
17637}
17638unsafe extern "C" {
17639 pub fn BNSetAutoFunctionPure(func: *mut BNFunction, pure_: *mut BNBoolWithConfidence);
17640}
17641unsafe extern "C" {
17642 pub fn BNSetAutoFunctionStackAdjustment(
17643 func: *mut BNFunction,
17644 stackAdjust: *mut BNOffsetWithConfidence,
17645 );
17646}
17647unsafe extern "C" {
17648 pub fn BNSetAutoFunctionRegisterStackAdjustments(
17649 func: *mut BNFunction,
17650 adjustments: *mut BNRegisterStackAdjustment,
17651 count: usize,
17652 );
17653}
17654unsafe extern "C" {
17655 pub fn BNSetAutoFunctionClobberedRegisters(
17656 func: *mut BNFunction,
17657 regs: *mut BNRegisterSetWithConfidence,
17658 );
17659}
17660unsafe extern "C" {
17661 pub fn BNSetUserFunctionReturnType(func: *mut BNFunction, type_: *mut BNTypeWithConfidence);
17662}
17663unsafe extern "C" {
17664 pub fn BNSetUserIsFunctionReturnValueDefaultLocation(
17665 func: *mut BNFunction,
17666 defaultLocation: bool,
17667 );
17668}
17669unsafe extern "C" {
17670 pub fn BNSetUserFunctionReturnValueLocation(
17671 func: *mut BNFunction,
17672 location: *mut BNValueLocationWithConfidence,
17673 );
17674}
17675unsafe extern "C" {
17676 pub fn BNSetUserFunctionReturnValue(func: *mut BNFunction, returnValue: *mut BNReturnValue);
17677}
17678unsafe extern "C" {
17679 pub fn BNSetUserFunctionCallingConvention(
17680 func: *mut BNFunction,
17681 convention: *mut BNCallingConventionWithConfidence,
17682 );
17683}
17684unsafe extern "C" {
17685 pub fn BNSetUserFunctionParameterLocations(
17686 func: *mut BNFunction,
17687 locations: *mut BNValueLocationListWithConfidence,
17688 );
17689}
17690unsafe extern "C" {
17691 pub fn BNSetUserFunctionHasVariableArguments(
17692 func: *mut BNFunction,
17693 varArgs: *mut BNBoolWithConfidence,
17694 );
17695}
17696unsafe extern "C" {
17697 pub fn BNSetUserFunctionCanReturn(func: *mut BNFunction, returns: *mut BNBoolWithConfidence);
17698}
17699unsafe extern "C" {
17700 pub fn BNSetUserFunctionPure(func: *mut BNFunction, pure_: *mut BNBoolWithConfidence);
17701}
17702unsafe extern "C" {
17703 pub fn BNSetUserFunctionStackAdjustment(
17704 func: *mut BNFunction,
17705 stackAdjust: *mut BNOffsetWithConfidence,
17706 );
17707}
17708unsafe extern "C" {
17709 pub fn BNSetUserFunctionRegisterStackAdjustments(
17710 func: *mut BNFunction,
17711 adjustments: *mut BNRegisterStackAdjustment,
17712 count: usize,
17713 );
17714}
17715unsafe extern "C" {
17716 pub fn BNSetUserFunctionClobberedRegisters(
17717 func: *mut BNFunction,
17718 regs: *mut BNRegisterSetWithConfidence,
17719 );
17720}
17721unsafe extern "C" {
17722 pub fn BNApplyImportedTypes(func: *mut BNFunction, sym: *mut BNSymbol, type_: *mut BNType);
17723}
17724unsafe extern "C" {
17725 pub fn BNApplyAutoDiscoveredFunctionType(func: *mut BNFunction, type_: *mut BNType);
17726}
17727unsafe extern "C" {
17728 pub fn BNFunctionHasExplicitlyDefinedType(func: *mut BNFunction) -> bool;
17729}
17730unsafe extern "C" {
17731 pub fn BNGetFunctionTypeTokens(
17732 func: *mut BNFunction,
17733 settings: *mut BNDisassemblySettings,
17734 count: *mut usize,
17735 ) -> *mut BNDisassemblyTextLine;
17736}
17737unsafe extern "C" {
17738 pub fn BNGetFunctionGlobalPointerValues(
17739 func: *mut BNFunction,
17740 count: *mut usize,
17741 ) -> *mut BNRegisterValueWithConfidenceAndRegister;
17742}
17743unsafe extern "C" {
17744 pub fn BNFunctionUsesIncomingGlobalPointer(func: *mut BNFunction) -> bool;
17745}
17746unsafe extern "C" {
17747 pub fn BNGetFunctionRegisterValueAtExit(
17748 func: *mut BNFunction,
17749 reg: u32,
17750 ) -> BNRegisterValueWithConfidence;
17751}
17752unsafe extern "C" {
17753 pub fn BNIsFunctionInlinedDuringAnalysis(func: *mut BNFunction) -> BNBoolWithConfidence;
17754}
17755unsafe extern "C" {
17756 pub fn BNGetFunctionInlinedDuringAnalysis(
17757 func: *mut BNFunction,
17758 ) -> BNInlineDuringAnalysisWithConfidence;
17759}
17760unsafe extern "C" {
17761 pub fn BNSetAutoFunctionInlinedDuringAnalysis(
17762 func: *mut BNFunction,
17763 inlined: BNInlineDuringAnalysisWithConfidence,
17764 );
17765}
17766unsafe extern "C" {
17767 pub fn BNSetUserFunctionInlinedDuringAnalysis(
17768 func: *mut BNFunction,
17769 inlined: BNInlineDuringAnalysisWithConfidence,
17770 );
17771}
17772unsafe extern "C" {
17773 pub fn BNGetInstructionContainingAddress(
17774 func: *mut BNFunction,
17775 arch: *mut BNArchitecture,
17776 addr: u64,
17777 start: *mut u64,
17778 ) -> bool;
17779}
17780unsafe extern "C" {
17781 pub fn BNGetBasicBlockFunction(block: *mut BNBasicBlock) -> *mut BNFunction;
17782}
17783unsafe extern "C" {
17784 pub fn BNGetBasicBlockArchitecture(block: *mut BNBasicBlock) -> *mut BNArchitecture;
17785}
17786unsafe extern "C" {
17787 pub fn BNGetBasicBlockSource(block: *mut BNBasicBlock) -> *mut BNBasicBlock;
17788}
17789unsafe extern "C" {
17790 pub fn BNGetBasicBlockStart(block: *mut BNBasicBlock) -> u64;
17791}
17792unsafe extern "C" {
17793 pub fn BNSetBasicBlockEnd(block: *mut BNBasicBlock, end: u64);
17794}
17795unsafe extern "C" {
17796 pub fn BNGetBasicBlockEnd(block: *mut BNBasicBlock) -> u64;
17797}
17798unsafe extern "C" {
17799 pub fn BNGetBasicBlockLength(block: *mut BNBasicBlock) -> u64;
17800}
17801unsafe extern "C" {
17802 pub fn BNGetBasicBlockOutgoingEdges(
17803 block: *mut BNBasicBlock,
17804 count: *mut usize,
17805 ) -> *mut BNBasicBlockEdge;
17806}
17807unsafe extern "C" {
17808 pub fn BNGetBasicBlockIncomingEdges(
17809 block: *mut BNBasicBlock,
17810 count: *mut usize,
17811 ) -> *mut BNBasicBlockEdge;
17812}
17813unsafe extern "C" {
17814 pub fn BNFreeBasicBlockEdgeList(edges: *mut BNBasicBlockEdge, count: usize);
17815}
17816unsafe extern "C" {
17817 pub fn BNBasicBlockHasUndeterminedOutgoingEdges(block: *mut BNBasicBlock) -> bool;
17818}
17819unsafe extern "C" {
17820 pub fn BNBasicBlockAddPendingOutgoingEdge(
17821 block: *mut BNBasicBlock,
17822 type_: BNBranchType,
17823 addr: u64,
17824 arch: *mut BNArchitecture,
17825 fallThrough: bool,
17826 );
17827}
17828unsafe extern "C" {
17829 pub fn BNGetBasicBlockPendingOutgoingEdges(
17830 block: *mut BNBasicBlock,
17831 count: *mut usize,
17832 ) -> *mut BNPendingBasicBlockEdge;
17833}
17834unsafe extern "C" {
17835 pub fn BNFreePendingBasicBlockEdgeList(edges: *mut BNPendingBasicBlockEdge);
17836}
17837unsafe extern "C" {
17838 pub fn BNClearBasicBlockPendingOutgoingEdges(block: *mut BNBasicBlock);
17839}
17840unsafe extern "C" {
17841 pub fn BNBasicBlockSetUndeterminedOutgoingEdges(block: *mut BNBasicBlock, value: bool);
17842}
17843unsafe extern "C" {
17844 pub fn BNBasicBlockSetFallThroughToFunction(block: *mut BNBasicBlock, value: bool);
17845}
17846unsafe extern "C" {
17847 pub fn BNBasicBlockIsFallThroughToFunction(block: *mut BNBasicBlock) -> bool;
17848}
17849unsafe extern "C" {
17850 pub fn BNBasicBlockCanExit(block: *mut BNBasicBlock) -> bool;
17851}
17852unsafe extern "C" {
17853 pub fn BNBasicBlockSetCanExit(block: *mut BNBasicBlock, value: bool);
17854}
17855unsafe extern "C" {
17856 pub fn BNBasicBlockSetHasInvalidInstructions(block: *mut BNBasicBlock, value: bool);
17857}
17858unsafe extern "C" {
17859 pub fn BNBasicBlockHasInvalidInstructions(block: *mut BNBasicBlock) -> bool;
17860}
17861unsafe extern "C" {
17862 pub fn BNGetBasicBlockIndex(block: *mut BNBasicBlock) -> usize;
17863}
17864unsafe extern "C" {
17865 pub fn BNGetBasicBlockDominators(
17866 block: *mut BNBasicBlock,
17867 count: *mut usize,
17868 post: bool,
17869 ) -> *mut *mut BNBasicBlock;
17870}
17871unsafe extern "C" {
17872 pub fn BNGetBasicBlockStrictDominators(
17873 block: *mut BNBasicBlock,
17874 count: *mut usize,
17875 post: bool,
17876 ) -> *mut *mut BNBasicBlock;
17877}
17878unsafe extern "C" {
17879 pub fn BNGetBasicBlockImmediateDominator(
17880 block: *mut BNBasicBlock,
17881 post: bool,
17882 ) -> *mut BNBasicBlock;
17883}
17884unsafe extern "C" {
17885 pub fn BNGetBasicBlockDominatorTreeChildren(
17886 block: *mut BNBasicBlock,
17887 count: *mut usize,
17888 post: bool,
17889 ) -> *mut *mut BNBasicBlock;
17890}
17891unsafe extern "C" {
17892 pub fn BNGetBasicBlockDominanceFrontier(
17893 block: *mut BNBasicBlock,
17894 count: *mut usize,
17895 post: bool,
17896 ) -> *mut *mut BNBasicBlock;
17897}
17898unsafe extern "C" {
17899 pub fn BNGetBasicBlockIteratedDominanceFrontier(
17900 blocks: *mut *mut BNBasicBlock,
17901 incomingCount: usize,
17902 outputCount: *mut usize,
17903 ) -> *mut *mut BNBasicBlock;
17904}
17905unsafe extern "C" {
17906 pub fn BNIsILBasicBlock(block: *mut BNBasicBlock) -> bool;
17907}
17908unsafe extern "C" {
17909 pub fn BNIsLowLevelILBasicBlock(block: *mut BNBasicBlock) -> bool;
17910}
17911unsafe extern "C" {
17912 pub fn BNIsMediumLevelILBasicBlock(block: *mut BNBasicBlock) -> bool;
17913}
17914unsafe extern "C" {
17915 pub fn BNIsHighLevelILBasicBlock(block: *mut BNBasicBlock) -> bool;
17916}
17917unsafe extern "C" {
17918 pub fn BNGetBasicBlockFunctionGraphType(block: *mut BNBasicBlock) -> BNFunctionGraphType;
17919}
17920unsafe extern "C" {
17921 pub fn BNGetBasicBlockLowLevelILFunction(block: *mut BNBasicBlock)
17922 -> *mut BNLowLevelILFunction;
17923}
17924unsafe extern "C" {
17925 pub fn BNGetBasicBlockMediumLevelILFunction(
17926 block: *mut BNBasicBlock,
17927 ) -> *mut BNMediumLevelILFunction;
17928}
17929unsafe extern "C" {
17930 pub fn BNGetBasicBlockHighLevelILFunction(
17931 block: *mut BNBasicBlock,
17932 ) -> *mut BNHighLevelILFunction;
17933}
17934unsafe extern "C" {
17935 pub fn BNGetBasicBlockInstructionContainingAddress(
17936 block: *mut BNBasicBlock,
17937 addr: u64,
17938 start: *mut u64,
17939 ) -> bool;
17940}
17941unsafe extern "C" {
17942 pub fn BNGetBasicBlockSourceBlock(block: *mut BNBasicBlock) -> *mut BNBasicBlock;
17943}
17944unsafe extern "C" {
17945 pub fn BNGetBasicBlockDisassemblyText(
17946 block: *mut BNBasicBlock,
17947 settings: *mut BNDisassemblySettings,
17948 count: *mut usize,
17949 ) -> *mut BNDisassemblyTextLine;
17950}
17951unsafe extern "C" {
17952 pub fn BNFreeDisassemblyTextLines(lines: *mut BNDisassemblyTextLine, count: usize);
17953}
17954unsafe extern "C" {
17955 pub fn BNGetDisplayStringForInteger(
17956 binaryView: *mut BNBinaryView,
17957 type_: BNIntegerDisplayType,
17958 value: u64,
17959 inputWidth: usize,
17960 isSigned: bool,
17961 ) -> *mut ::std::os::raw::c_char;
17962}
17963unsafe extern "C" {
17964 pub fn BNCreateDisassemblyTextRenderer(
17965 func: *mut BNFunction,
17966 settings: *mut BNDisassemblySettings,
17967 ) -> *mut BNDisassemblyTextRenderer;
17968}
17969unsafe extern "C" {
17970 pub fn BNCreateLowLevelILDisassemblyTextRenderer(
17971 func: *mut BNLowLevelILFunction,
17972 settings: *mut BNDisassemblySettings,
17973 ) -> *mut BNDisassemblyTextRenderer;
17974}
17975unsafe extern "C" {
17976 pub fn BNCreateMediumLevelILDisassemblyTextRenderer(
17977 func: *mut BNMediumLevelILFunction,
17978 settings: *mut BNDisassemblySettings,
17979 ) -> *mut BNDisassemblyTextRenderer;
17980}
17981unsafe extern "C" {
17982 pub fn BNCreateHighLevelILDisassemblyTextRenderer(
17983 func: *mut BNHighLevelILFunction,
17984 settings: *mut BNDisassemblySettings,
17985 ) -> *mut BNDisassemblyTextRenderer;
17986}
17987unsafe extern "C" {
17988 pub fn BNNewDisassemblyTextRendererReference(
17989 renderer: *mut BNDisassemblyTextRenderer,
17990 ) -> *mut BNDisassemblyTextRenderer;
17991}
17992unsafe extern "C" {
17993 pub fn BNFreeDisassemblyTextRenderer(renderer: *mut BNDisassemblyTextRenderer);
17994}
17995unsafe extern "C" {
17996 pub fn BNGetDisassemblyTextRendererFunction(
17997 renderer: *mut BNDisassemblyTextRenderer,
17998 ) -> *mut BNFunction;
17999}
18000unsafe extern "C" {
18001 pub fn BNGetDisassemblyTextRendererLowLevelILFunction(
18002 renderer: *mut BNDisassemblyTextRenderer,
18003 ) -> *mut BNLowLevelILFunction;
18004}
18005unsafe extern "C" {
18006 pub fn BNGetDisassemblyTextRendererMediumLevelILFunction(
18007 renderer: *mut BNDisassemblyTextRenderer,
18008 ) -> *mut BNMediumLevelILFunction;
18009}
18010unsafe extern "C" {
18011 pub fn BNGetDisassemblyTextRendererHighLevelILFunction(
18012 renderer: *mut BNDisassemblyTextRenderer,
18013 ) -> *mut BNHighLevelILFunction;
18014}
18015unsafe extern "C" {
18016 pub fn BNGetDisassemblyTextRendererBasicBlock(
18017 renderer: *mut BNDisassemblyTextRenderer,
18018 ) -> *mut BNBasicBlock;
18019}
18020unsafe extern "C" {
18021 pub fn BNGetDisassemblyTextRendererArchitecture(
18022 renderer: *mut BNDisassemblyTextRenderer,
18023 ) -> *mut BNArchitecture;
18024}
18025unsafe extern "C" {
18026 pub fn BNGetDisassemblyTextRendererSettings(
18027 renderer: *mut BNDisassemblyTextRenderer,
18028 ) -> *mut BNDisassemblySettings;
18029}
18030unsafe extern "C" {
18031 pub fn BNSetDisassemblyTextRendererBasicBlock(
18032 renderer: *mut BNDisassemblyTextRenderer,
18033 block: *mut BNBasicBlock,
18034 );
18035}
18036unsafe extern "C" {
18037 pub fn BNSetDisassemblyTextRendererArchitecture(
18038 renderer: *mut BNDisassemblyTextRenderer,
18039 arch: *mut BNArchitecture,
18040 );
18041}
18042unsafe extern "C" {
18043 pub fn BNSetDisassemblyTextRendererSettings(
18044 renderer: *mut BNDisassemblyTextRenderer,
18045 settings: *mut BNDisassemblySettings,
18046 );
18047}
18048unsafe extern "C" {
18049 pub fn BNIsILDisassemblyTextRenderer(renderer: *mut BNDisassemblyTextRenderer) -> bool;
18050}
18051unsafe extern "C" {
18052 pub fn BNDisassemblyTextRendererHasDataFlow(renderer: *mut BNDisassemblyTextRenderer) -> bool;
18053}
18054unsafe extern "C" {
18055 pub fn BNGetDisassemblyTextRendererInstructionAnnotations(
18056 renderer: *mut BNDisassemblyTextRenderer,
18057 addr: u64,
18058 count: *mut usize,
18059 ) -> *mut BNInstructionTextToken;
18060}
18061unsafe extern "C" {
18062 pub fn BNGetDisassemblyTextRendererInstructionText(
18063 renderer: *mut BNDisassemblyTextRenderer,
18064 addr: u64,
18065 len: *mut usize,
18066 result: *mut *mut BNDisassemblyTextLine,
18067 count: *mut usize,
18068 ) -> bool;
18069}
18070unsafe extern "C" {
18071 pub fn BNGetDisassemblyTextRendererLines(
18072 renderer: *mut BNDisassemblyTextRenderer,
18073 addr: u64,
18074 len: *mut usize,
18075 result: *mut *mut BNDisassemblyTextLine,
18076 count: *mut usize,
18077 ) -> bool;
18078}
18079unsafe extern "C" {
18080 pub fn BNPostProcessDisassemblyTextRendererLines(
18081 renderer: *mut BNDisassemblyTextRenderer,
18082 addr: u64,
18083 len: usize,
18084 inLines: *mut BNDisassemblyTextLine,
18085 inCount: usize,
18086 outCount: *mut usize,
18087 indentSpaces: *const ::std::os::raw::c_char,
18088 ) -> *mut BNDisassemblyTextLine;
18089}
18090unsafe extern "C" {
18091 pub fn BNResetDisassemblyTextRendererDeduplicatedComments(
18092 renderer: *mut BNDisassemblyTextRenderer,
18093 );
18094}
18095unsafe extern "C" {
18096 pub fn BNGetDisassemblyTextRendererSymbolTokens(
18097 renderer: *mut BNDisassemblyTextRenderer,
18098 addr: u64,
18099 size: usize,
18100 operand: usize,
18101 result: *mut *mut BNInstructionTextToken,
18102 count: *mut usize,
18103 ) -> bool;
18104}
18105unsafe extern "C" {
18106 pub fn BNGetDisassemblyTextRendererSymbolTokensStatic(
18107 addr: u64,
18108 size: usize,
18109 operand: usize,
18110 data: *mut BNBinaryView,
18111 maxSymbolWidth: usize,
18112 func: *mut BNFunction,
18113 confidence: u8,
18114 symbolDisplay: BNSymbolDisplayType,
18115 precedence: BNOperatorPrecedence,
18116 instrAddr: u64,
18117 exprIndex: u64,
18118 result: *mut *mut BNInstructionTextToken,
18119 count: *mut usize,
18120 ) -> BNSymbolDisplayResult;
18121}
18122unsafe extern "C" {
18123 pub fn BNGetDisassemblyTextRendererStackVariableReferenceTokens(
18124 renderer: *mut BNDisassemblyTextRenderer,
18125 ref_: *mut BNStackVariableReference,
18126 count: *mut usize,
18127 ) -> *mut BNInstructionTextToken;
18128}
18129unsafe extern "C" {
18130 pub fn BNIsIntegerToken(type_: BNInstructionTextTokenType) -> bool;
18131}
18132unsafe extern "C" {
18133 pub fn BNGetDisassemblyTextRendererIntegerTokens(
18134 renderer: *mut BNDisassemblyTextRenderer,
18135 token: *mut BNInstructionTextToken,
18136 arch: *mut BNArchitecture,
18137 addr: u64,
18138 count: *mut usize,
18139 ) -> *mut BNInstructionTextToken;
18140}
18141unsafe extern "C" {
18142 pub fn BNDisassemblyTextRendererWrapComment(
18143 renderer: *mut BNDisassemblyTextRenderer,
18144 inLine: *const BNDisassemblyTextLine,
18145 outLineCount: *mut usize,
18146 comment: *const ::std::os::raw::c_char,
18147 hasAutoAnnotations: bool,
18148 leadingSpaces: *const ::std::os::raw::c_char,
18149 indentSpaces: *const ::std::os::raw::c_char,
18150 ) -> *mut BNDisassemblyTextLine;
18151}
18152unsafe extern "C" {
18153 pub fn BNGetStringLiteralPrefix(type_: BNStringType) -> *mut ::std::os::raw::c_char;
18154}
18155unsafe extern "C" {
18156 pub fn BNMarkFunctionAsRecentlyUsed(func: *mut BNFunction);
18157}
18158unsafe extern "C" {
18159 pub fn BNMarkBasicBlockAsRecentlyUsed(block: *mut BNBasicBlock);
18160}
18161unsafe extern "C" {
18162 pub fn BNGetCodeReferences(
18163 view: *mut BNBinaryView,
18164 addr: u64,
18165 count: *mut usize,
18166 limit: bool,
18167 maxItems: usize,
18168 ) -> *mut BNReferenceSource;
18169}
18170unsafe extern "C" {
18171 pub fn BNGetCodeReferencesInRange(
18172 view: *mut BNBinaryView,
18173 addr: u64,
18174 len: u64,
18175 count: *mut usize,
18176 limit: bool,
18177 maxItems: usize,
18178 ) -> *mut BNReferenceSource;
18179}
18180unsafe extern "C" {
18181 pub fn BNFreeCodeReferences(refs: *mut BNReferenceSource, count: usize);
18182}
18183unsafe extern "C" {
18184 pub fn BNFreeTypeFieldReferences(refs: *mut BNTypeFieldReference, count: usize);
18185}
18186unsafe extern "C" {
18187 pub fn BNFreeILReferences(refs: *mut BNILReferenceSource, count: usize);
18188}
18189unsafe extern "C" {
18190 pub fn BNGetCodeReferencesFrom(
18191 view: *mut BNBinaryView,
18192 src: *mut BNReferenceSource,
18193 count: *mut usize,
18194 ) -> *mut u64;
18195}
18196unsafe extern "C" {
18197 pub fn BNGetCodeReferencesFromInRange(
18198 view: *mut BNBinaryView,
18199 src: *mut BNReferenceSource,
18200 len: u64,
18201 count: *mut usize,
18202 ) -> *mut u64;
18203}
18204unsafe extern "C" {
18205 pub fn BNGetDataReferences(
18206 view: *mut BNBinaryView,
18207 addr: u64,
18208 count: *mut usize,
18209 limit: bool,
18210 maxItems: usize,
18211 ) -> *mut u64;
18212}
18213unsafe extern "C" {
18214 pub fn BNGetDataReferencesInRange(
18215 view: *mut BNBinaryView,
18216 addr: u64,
18217 len: u64,
18218 count: *mut usize,
18219 limit: bool,
18220 maxItems: usize,
18221 ) -> *mut u64;
18222}
18223unsafe extern "C" {
18224 pub fn BNGetDataReferencesFrom(
18225 view: *mut BNBinaryView,
18226 addr: u64,
18227 count: *mut usize,
18228 ) -> *mut u64;
18229}
18230unsafe extern "C" {
18231 pub fn BNGetDataReferencesFromInRange(
18232 view: *mut BNBinaryView,
18233 addr: u64,
18234 len: u64,
18235 count: *mut usize,
18236 ) -> *mut u64;
18237}
18238unsafe extern "C" {
18239 pub fn BNAddDataReference(view: *mut BNBinaryView, fromAddr: u64, toAddr: u64);
18240}
18241unsafe extern "C" {
18242 pub fn BNRemoveDataReference(view: *mut BNBinaryView, fromAddr: u64, toAddr: u64);
18243}
18244unsafe extern "C" {
18245 pub fn BNAddUserDataReference(view: *mut BNBinaryView, fromAddr: u64, toAddr: u64);
18246}
18247unsafe extern "C" {
18248 pub fn BNRemoveUserDataReference(view: *mut BNBinaryView, fromAddr: u64, toAddr: u64);
18249}
18250unsafe extern "C" {
18251 pub fn BNFreeDataReferences(refs: *mut u64);
18252}
18253unsafe extern "C" {
18254 pub fn BNFreeTypeReferences(refs: *mut BNTypeReferenceSource, count: usize);
18255}
18256unsafe extern "C" {
18257 pub fn BNFreeTypeFieldReferenceSizeInfo(refs: *mut BNTypeFieldReferenceSizeInfo, count: usize);
18258}
18259unsafe extern "C" {
18260 pub fn BNFreeTypeFieldReferenceTypeInfo(refs: *mut BNTypeFieldReferenceTypeInfo, count: usize);
18261}
18262unsafe extern "C" {
18263 pub fn BNFreeTypeFieldReferenceSizes(refs: *mut usize, count: usize);
18264}
18265unsafe extern "C" {
18266 pub fn BNFreeTypeFieldReferenceTypes(refs: *mut BNTypeWithConfidence, count: usize);
18267}
18268unsafe extern "C" {
18269 #[doc = " References to type"]
18270 pub fn BNGetCodeReferencesForType(
18271 view: *mut BNBinaryView,
18272 type_: *mut BNQualifiedName,
18273 count: *mut usize,
18274 limit: bool,
18275 maxItems: usize,
18276 ) -> *mut BNReferenceSource;
18277}
18278unsafe extern "C" {
18279 pub fn BNGetDataReferencesForType(
18280 view: *mut BNBinaryView,
18281 type_: *mut BNQualifiedName,
18282 count: *mut usize,
18283 limit: bool,
18284 maxItems: usize,
18285 ) -> *mut u64;
18286}
18287unsafe extern "C" {
18288 pub fn BNGetTypeReferencesForType(
18289 view: *mut BNBinaryView,
18290 type_: *mut BNQualifiedName,
18291 count: *mut usize,
18292 limit: bool,
18293 maxItems: usize,
18294 ) -> *mut BNTypeReferenceSource;
18295}
18296unsafe extern "C" {
18297 #[doc = " References to type field"]
18298 pub fn BNGetCodeReferencesForTypeField(
18299 view: *mut BNBinaryView,
18300 type_: *mut BNQualifiedName,
18301 offset: u64,
18302 count: *mut usize,
18303 limit: bool,
18304 maxItems: usize,
18305 ) -> *mut BNTypeFieldReference;
18306}
18307unsafe extern "C" {
18308 pub fn BNGetDataReferencesForTypeField(
18309 view: *mut BNBinaryView,
18310 type_: *mut BNQualifiedName,
18311 offset: u64,
18312 count: *mut usize,
18313 limit: bool,
18314 maxItems: usize,
18315 ) -> *mut u64;
18316}
18317unsafe extern "C" {
18318 pub fn BNGetDataReferencesFromForTypeField(
18319 view: *mut BNBinaryView,
18320 type_: *mut BNQualifiedName,
18321 offset: u64,
18322 count: *mut usize,
18323 limit: bool,
18324 maxItems: usize,
18325 ) -> *mut u64;
18326}
18327unsafe extern "C" {
18328 pub fn BNGetTypeReferencesForTypeField(
18329 view: *mut BNBinaryView,
18330 type_: *mut BNQualifiedName,
18331 offset: u64,
18332 count: *mut usize,
18333 limit: bool,
18334 maxItems: usize,
18335 ) -> *mut BNTypeReferenceSource;
18336}
18337unsafe extern "C" {
18338 pub fn BNGetAllReferencesForType(
18339 view: *mut BNBinaryView,
18340 type_: *mut BNQualifiedName,
18341 limit: bool,
18342 maxItems: usize,
18343 ) -> BNAllTypeReferences;
18344}
18345unsafe extern "C" {
18346 pub fn BNFreeAllTypeReferences(refs: *mut BNAllTypeReferences);
18347}
18348unsafe extern "C" {
18349 pub fn BNGetAllReferencesForTypeField(
18350 view: *mut BNBinaryView,
18351 type_: *mut BNQualifiedName,
18352 offset: u64,
18353 limit: bool,
18354 maxItems: usize,
18355 ) -> BNAllTypeFieldReferences;
18356}
18357unsafe extern "C" {
18358 pub fn BNFreeAllTypeFieldReferences(refs: *mut BNAllTypeFieldReferences);
18359}
18360unsafe extern "C" {
18361 pub fn BNGetCodeReferencesForTypeFrom(
18362 view: *mut BNBinaryView,
18363 addr: *mut BNReferenceSource,
18364 count: *mut usize,
18365 ) -> *mut BNTypeReferenceSource;
18366}
18367unsafe extern "C" {
18368 pub fn BNGetCodeReferencesForTypeFromInRange(
18369 view: *mut BNBinaryView,
18370 addr: *mut BNReferenceSource,
18371 len: u64,
18372 count: *mut usize,
18373 ) -> *mut BNTypeReferenceSource;
18374}
18375unsafe extern "C" {
18376 pub fn BNGetCodeReferencesForTypeFieldsFrom(
18377 view: *mut BNBinaryView,
18378 addr: *mut BNReferenceSource,
18379 count: *mut usize,
18380 ) -> *mut BNTypeReferenceSource;
18381}
18382unsafe extern "C" {
18383 pub fn BNGetCodeReferencesForTypeFieldsFromInRange(
18384 view: *mut BNBinaryView,
18385 addr: *mut BNReferenceSource,
18386 len: u64,
18387 count: *mut usize,
18388 ) -> *mut BNTypeReferenceSource;
18389}
18390unsafe extern "C" {
18391 pub fn BNGetAllFieldsReferenced(
18392 view: *mut BNBinaryView,
18393 type_: *mut BNQualifiedName,
18394 count: *mut usize,
18395 ) -> *mut u64;
18396}
18397unsafe extern "C" {
18398 pub fn BNGetAllSizesReferenced(
18399 view: *mut BNBinaryView,
18400 type_: *mut BNQualifiedName,
18401 count: *mut usize,
18402 ) -> *mut BNTypeFieldReferenceSizeInfo;
18403}
18404unsafe extern "C" {
18405 pub fn BNGetAllTypesReferenced(
18406 view: *mut BNBinaryView,
18407 type_: *mut BNQualifiedName,
18408 count: *mut usize,
18409 ) -> *mut BNTypeFieldReferenceTypeInfo;
18410}
18411unsafe extern "C" {
18412 pub fn BNGetSizesReferenced(
18413 view: *mut BNBinaryView,
18414 type_: *mut BNQualifiedName,
18415 offset: u64,
18416 count: *mut usize,
18417 ) -> *mut usize;
18418}
18419unsafe extern "C" {
18420 pub fn BNGetTypesReferenced(
18421 view: *mut BNBinaryView,
18422 type_: *mut BNQualifiedName,
18423 offset: u64,
18424 count: *mut usize,
18425 ) -> *mut BNTypeWithConfidence;
18426}
18427unsafe extern "C" {
18428 pub fn BNGetOutgoingDirectTypeReferences(
18429 view: *mut BNBinaryView,
18430 type_: *mut BNQualifiedName,
18431 count: *mut usize,
18432 ) -> *mut BNQualifiedName;
18433}
18434unsafe extern "C" {
18435 pub fn BNGetOutgoingRecursiveTypeReferences(
18436 view: *mut BNBinaryView,
18437 types: *mut BNQualifiedName,
18438 typeCount: usize,
18439 count: *mut usize,
18440 ) -> *mut BNQualifiedName;
18441}
18442unsafe extern "C" {
18443 pub fn BNGetIncomingDirectTypeReferences(
18444 view: *mut BNBinaryView,
18445 type_: *mut BNQualifiedName,
18446 count: *mut usize,
18447 ) -> *mut BNQualifiedName;
18448}
18449unsafe extern "C" {
18450 pub fn BNGetIncomingRecursiveTypeReferences(
18451 view: *mut BNBinaryView,
18452 types: *mut BNQualifiedName,
18453 typeCount: usize,
18454 count: *mut usize,
18455 ) -> *mut BNQualifiedName;
18456}
18457unsafe extern "C" {
18458 pub fn BNRegisterGlobalFunctionRecognizer(rec: *mut BNFunctionRecognizer);
18459}
18460unsafe extern "C" {
18461 pub fn BNGetStringAtAddress(
18462 view: *mut BNBinaryView,
18463 addr: u64,
18464 strRef: *mut BNStringReference,
18465 ) -> bool;
18466}
18467unsafe extern "C" {
18468 pub fn BNGetStrings(view: *mut BNBinaryView, count: *mut usize) -> *mut BNStringReference;
18469}
18470unsafe extern "C" {
18471 pub fn BNGetStringsInRange(
18472 view: *mut BNBinaryView,
18473 start: u64,
18474 len: u64,
18475 count: *mut usize,
18476 ) -> *mut BNStringReference;
18477}
18478unsafe extern "C" {
18479 pub fn BNFreeStringReferenceList(strings: *mut BNStringReference);
18480}
18481#[repr(C)]
18482#[derive(Debug, Copy, Clone)]
18483pub struct BNStringDetectionParameters {
18484 pub minStringLength: usize,
18485 pub utf8Enabled: bool,
18486 pub utf16Enabled: bool,
18487 pub utf32Enabled: bool,
18488 #[doc = " Unicode block names as accepted by the \"analysis.unicode.blocks\" setting."]
18489 pub unicodeBlockNames: *const *const ::std::os::raw::c_char,
18490 pub unicodeBlockNameCount: usize,
18491}
18492#[allow(clippy::unnecessary_operation, clippy::identity_op)]
18493const _: () = {
18494 ["Size of BNStringDetectionParameters"]
18495 [::std::mem::size_of::<BNStringDetectionParameters>() - 32usize];
18496 ["Alignment of BNStringDetectionParameters"]
18497 [::std::mem::align_of::<BNStringDetectionParameters>() - 8usize];
18498 ["Offset of field: BNStringDetectionParameters::minStringLength"]
18499 [::std::mem::offset_of!(BNStringDetectionParameters, minStringLength) - 0usize];
18500 ["Offset of field: BNStringDetectionParameters::utf8Enabled"]
18501 [::std::mem::offset_of!(BNStringDetectionParameters, utf8Enabled) - 8usize];
18502 ["Offset of field: BNStringDetectionParameters::utf16Enabled"]
18503 [::std::mem::offset_of!(BNStringDetectionParameters, utf16Enabled) - 9usize];
18504 ["Offset of field: BNStringDetectionParameters::utf32Enabled"]
18505 [::std::mem::offset_of!(BNStringDetectionParameters, utf32Enabled) - 10usize];
18506 ["Offset of field: BNStringDetectionParameters::unicodeBlockNames"]
18507 [::std::mem::offset_of!(BNStringDetectionParameters, unicodeBlockNames) - 16usize];
18508 ["Offset of field: BNStringDetectionParameters::unicodeBlockNameCount"]
18509 [::std::mem::offset_of!(BNStringDetectionParameters, unicodeBlockNameCount) - 24usize];
18510};
18511impl Default for BNStringDetectionParameters {
18512 fn default() -> Self {
18513 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
18514 unsafe {
18515 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
18516 s.assume_init()
18517 }
18518 }
18519}
18520unsafe extern "C" {
18521 #[doc = " A compiled string detector. Immutable once created, so a single instance may be shared\n across threads. Free with BNFreeStringDetector."]
18522 pub fn BNCreateStringDetector(
18523 params: *const BNStringDetectionParameters,
18524 ) -> *mut BNStringDetector;
18525}
18526unsafe extern "C" {
18527 pub fn BNFreeStringDetector(detector: *mut BNStringDetector);
18528}
18529unsafe extern "C" {
18530 #[doc = " Detects strings starting within the first blockLen bytes of data. Strings may extend up to\n dataLen bytes, allowing callers to scan large buffers in chunks with a BN_MAX_STRING_LENGTH\n overlap tail. lastFoundString (optional, in/out, zero-initialize before the first call)\n carries overlap state across consecutive calls so strings spanning a chunk boundary are not\n reported twice. Result addresses are relative to baseAddress. Free the result with\n BNFreeStringReferenceList."]
18531 pub fn BNStringDetectorDetectStrings(
18532 detector: *mut BNStringDetector,
18533 data: *const u8,
18534 dataLen: usize,
18535 blockLen: usize,
18536 baseAddress: u64,
18537 lastFoundString: *mut BNStringReference,
18538 count: *mut usize,
18539 ) -> *mut BNStringReference;
18540}
18541unsafe extern "C" {
18542 pub fn BNGetDerivedStrings(view: *mut BNBinaryView, count: *mut usize) -> *mut BNDerivedString;
18543}
18544unsafe extern "C" {
18545 pub fn BNGetDerivedStringCodeReferences(
18546 view: *mut BNBinaryView,
18547 str_: *mut BNDerivedString,
18548 count: *mut usize,
18549 limit: bool,
18550 maxItems: usize,
18551 ) -> *mut BNReferenceSource;
18552}
18553unsafe extern "C" {
18554 pub fn BNFreeDerivedStringList(strings: *mut BNDerivedString, count: usize);
18555}
18556unsafe extern "C" {
18557 pub fn BNGetStackLayout(func: *mut BNFunction, count: *mut usize)
18558 -> *mut BNVariableNameAndType;
18559}
18560unsafe extern "C" {
18561 pub fn BNFreeVariableNameAndTypeList(vars: *mut BNVariableNameAndType, count: usize);
18562}
18563unsafe extern "C" {
18564 pub fn BNCreateAutoStackVariable(
18565 func: *mut BNFunction,
18566 offset: i64,
18567 type_: *mut BNTypeWithConfidence,
18568 name: *const ::std::os::raw::c_char,
18569 );
18570}
18571unsafe extern "C" {
18572 pub fn BNCreateUserStackVariable(
18573 func: *mut BNFunction,
18574 offset: i64,
18575 type_: *mut BNTypeWithConfidence,
18576 name: *const ::std::os::raw::c_char,
18577 );
18578}
18579unsafe extern "C" {
18580 pub fn BNDeleteAutoStackVariable(func: *mut BNFunction, offset: i64);
18581}
18582unsafe extern "C" {
18583 pub fn BNDeleteUserStackVariable(func: *mut BNFunction, offset: i64);
18584}
18585unsafe extern "C" {
18586 pub fn BNGetStackVariableAtFrameOffset(
18587 func: *mut BNFunction,
18588 arch: *mut BNArchitecture,
18589 addr: u64,
18590 offset: i64,
18591 var: *mut BNVariableNameAndType,
18592 ) -> bool;
18593}
18594unsafe extern "C" {
18595 pub fn BNGetStackVariableAtFrameOffsetAfterInstruction(
18596 func: *mut BNFunction,
18597 arch: *mut BNArchitecture,
18598 addr: u64,
18599 offset: i64,
18600 var: *mut BNVariableNameAndType,
18601 ) -> bool;
18602}
18603unsafe extern "C" {
18604 pub fn BNFreeVariableNameAndType(var: *mut BNVariableNameAndType);
18605}
18606unsafe extern "C" {
18607 pub fn BNGetFunctionVariables(
18608 func: *mut BNFunction,
18609 count: *mut usize,
18610 ) -> *mut BNVariableNameAndType;
18611}
18612unsafe extern "C" {
18613 pub fn BNCreateAutoVariable(
18614 func: *mut BNFunction,
18615 var: *const BNVariable,
18616 type_: *mut BNTypeWithConfidence,
18617 name: *const ::std::os::raw::c_char,
18618 ignoreDisjointUses: bool,
18619 );
18620}
18621unsafe extern "C" {
18622 pub fn BNCreateUserVariable(
18623 func: *mut BNFunction,
18624 var: *const BNVariable,
18625 type_: *mut BNTypeWithConfidence,
18626 name: *const ::std::os::raw::c_char,
18627 ignoreDisjointUses: bool,
18628 );
18629}
18630unsafe extern "C" {
18631 pub fn BNDeleteUserVariable(func: *mut BNFunction, var: *const BNVariable);
18632}
18633unsafe extern "C" {
18634 pub fn BNIsVariableUserDefined(func: *mut BNFunction, var: *const BNVariable) -> bool;
18635}
18636unsafe extern "C" {
18637 pub fn BNGetVariableType(func: *mut BNFunction, var: *const BNVariable)
18638 -> BNTypeWithConfidence;
18639}
18640unsafe extern "C" {
18641 pub fn BNGetVariableName(
18642 func: *mut BNFunction,
18643 var: *const BNVariable,
18644 ) -> *mut ::std::os::raw::c_char;
18645}
18646unsafe extern "C" {
18647 pub fn BNGetVariableNameOrDefault(
18648 func: *mut BNFunction,
18649 var: *const BNVariable,
18650 ) -> *mut ::std::os::raw::c_char;
18651}
18652unsafe extern "C" {
18653 pub fn BNGetLastSeenVariableNameOrDefault(
18654 func: *mut BNFunction,
18655 var: *const BNVariable,
18656 ) -> *mut ::std::os::raw::c_char;
18657}
18658unsafe extern "C" {
18659 pub fn BNToVariableIdentifier(var: *const BNVariable) -> u64;
18660}
18661unsafe extern "C" {
18662 pub fn BNFromVariableIdentifier(id: u64) -> BNVariable;
18663}
18664unsafe extern "C" {
18665 pub fn BNGetFunctionVariableDeadStoreElimination(
18666 func: *mut BNFunction,
18667 var: *const BNVariable,
18668 ) -> BNDeadStoreElimination;
18669}
18670unsafe extern "C" {
18671 pub fn BNSetFunctionVariableDeadStoreElimination(
18672 func: *mut BNFunction,
18673 var: *const BNVariable,
18674 mode: BNDeadStoreElimination,
18675 );
18676}
18677unsafe extern "C" {
18678 pub fn BNGetExprFolding(func: *mut BNFunction, addr: u64) -> BNExprFolding;
18679}
18680unsafe extern "C" {
18681 pub fn BNSetExprFolding(func: *mut BNFunction, addr: u64, mode: BNExprFolding);
18682}
18683unsafe extern "C" {
18684 pub fn BNIsConditionInverted(func: *mut BNFunction, addr: u64) -> bool;
18685}
18686unsafe extern "C" {
18687 pub fn BNSetConditionInverted(func: *mut BNFunction, addr: u64, invert: bool);
18688}
18689unsafe extern "C" {
18690 pub fn BNGetEarlyReturn(func: *mut BNFunction, addr: u64) -> BNEarlyReturn;
18691}
18692unsafe extern "C" {
18693 pub fn BNSetEarlyReturn(func: *mut BNFunction, addr: u64, mode: BNEarlyReturn);
18694}
18695unsafe extern "C" {
18696 pub fn BNGetSwitchRecovery(func: *mut BNFunction, addr: u64) -> BNSwitchRecovery;
18697}
18698unsafe extern "C" {
18699 pub fn BNSetSwitchRecovery(func: *mut BNFunction, addr: u64, mode: BNSwitchRecovery);
18700}
18701unsafe extern "C" {
18702 pub fn BNGetMergedVariables(func: *mut BNFunction, count: *mut usize) -> *mut BNMergedVariable;
18703}
18704unsafe extern "C" {
18705 pub fn BNFreeMergedVariableList(vars: *mut BNMergedVariable, count: usize);
18706}
18707unsafe extern "C" {
18708 pub fn BNMergeVariables(
18709 func: *mut BNFunction,
18710 target: *const BNVariable,
18711 sources: *const BNVariable,
18712 sourceCount: usize,
18713 );
18714}
18715unsafe extern "C" {
18716 pub fn BNUnmergeVariables(
18717 func: *mut BNFunction,
18718 target: *const BNVariable,
18719 sources: *const BNVariable,
18720 sourceCount: usize,
18721 );
18722}
18723unsafe extern "C" {
18724 pub fn BNGetSplitVariables(func: *mut BNFunction, count: *mut usize) -> *mut BNVariable;
18725}
18726unsafe extern "C" {
18727 pub fn BNSplitVariable(func: *mut BNFunction, var: *const BNVariable);
18728}
18729unsafe extern "C" {
18730 pub fn BNUnsplitVariable(func: *mut BNFunction, var: *const BNVariable);
18731}
18732unsafe extern "C" {
18733 pub fn BNGetFunctionCallSites(
18734 func: *mut BNFunction,
18735 count: *mut usize,
18736 ) -> *mut BNReferenceSource;
18737}
18738unsafe extern "C" {
18739 pub fn BNGetCallees(
18740 view: *mut BNBinaryView,
18741 callSite: *mut BNReferenceSource,
18742 count: *mut usize,
18743 ) -> *mut u64;
18744}
18745unsafe extern "C" {
18746 pub fn BNGetCallers(
18747 view: *mut BNBinaryView,
18748 callee: u64,
18749 count: *mut usize,
18750 ) -> *mut BNReferenceSource;
18751}
18752unsafe extern "C" {
18753 pub fn BNSetAutoIndirectBranches(
18754 func: *mut BNFunction,
18755 sourceArch: *mut BNArchitecture,
18756 source: u64,
18757 branches: *mut BNArchitectureAndAddress,
18758 count: usize,
18759 );
18760}
18761unsafe extern "C" {
18762 pub fn BNSetUserIndirectBranches(
18763 func: *mut BNFunction,
18764 sourceArch: *mut BNArchitecture,
18765 source: u64,
18766 branches: *mut BNArchitectureAndAddress,
18767 count: usize,
18768 );
18769}
18770unsafe extern "C" {
18771 pub fn BNSetGuidedSourceBlocks(
18772 func: *mut BNFunction,
18773 addresses: *mut BNArchitectureAndAddress,
18774 count: usize,
18775 );
18776}
18777unsafe extern "C" {
18778 pub fn BNAddGuidedSourceBlocks(
18779 func: *mut BNFunction,
18780 addresses: *mut BNArchitectureAndAddress,
18781 count: usize,
18782 );
18783}
18784unsafe extern "C" {
18785 pub fn BNRemoveGuidedSourceBlocks(
18786 func: *mut BNFunction,
18787 addresses: *mut BNArchitectureAndAddress,
18788 count: usize,
18789 );
18790}
18791unsafe extern "C" {
18792 pub fn BNIsGuidedSourceBlock(
18793 func: *mut BNFunction,
18794 arch: *mut BNArchitecture,
18795 addr: u64,
18796 ) -> bool;
18797}
18798unsafe extern "C" {
18799 pub fn BNGetGuidedSourceBlocks(
18800 func: *mut BNFunction,
18801 count: *mut usize,
18802 ) -> *mut BNArchitectureAndAddress;
18803}
18804unsafe extern "C" {
18805 pub fn BNHasGuidedSourceBlocks(func: *mut BNFunction) -> bool;
18806}
18807unsafe extern "C" {
18808 pub fn BNFreeArchitectureAndAddressList(addresses: *mut BNArchitectureAndAddress);
18809}
18810unsafe extern "C" {
18811 pub fn BNGetIndirectBranches(
18812 func: *mut BNFunction,
18813 count: *mut usize,
18814 ) -> *mut BNIndirectBranchInfo;
18815}
18816unsafe extern "C" {
18817 pub fn BNGetIndirectBranchesAt(
18818 func: *mut BNFunction,
18819 arch: *mut BNArchitecture,
18820 addr: u64,
18821 count: *mut usize,
18822 ) -> *mut BNIndirectBranchInfo;
18823}
18824unsafe extern "C" {
18825 pub fn BNFreeIndirectBranchList(branches: *mut BNIndirectBranchInfo);
18826}
18827unsafe extern "C" {
18828 pub fn BNGetCalleeForAnalysis(
18829 func: *mut BNFunction,
18830 platform: *mut BNPlatform,
18831 addr: u64,
18832 exact: bool,
18833 ) -> *mut BNFunction;
18834}
18835unsafe extern "C" {
18836 pub fn BNGetUnresolvedIndirectBranches(
18837 func: *mut BNFunction,
18838 count: *mut usize,
18839 ) -> *mut BNArchitectureAndAddress;
18840}
18841unsafe extern "C" {
18842 pub fn BNHasUnresolvedIndirectBranches(func: *mut BNFunction) -> bool;
18843}
18844unsafe extern "C" {
18845 pub fn BNFunctionToggleRegion(func: *mut BNFunction, hash: u64);
18846}
18847unsafe extern "C" {
18848 pub fn BNFunctionIsRegionCollapsed(func: *mut BNFunction, hash: u64) -> bool;
18849}
18850unsafe extern "C" {
18851 pub fn BNFunctionExpandAll(func: *mut BNFunction);
18852}
18853unsafe extern "C" {
18854 pub fn BNFunctionCollapseRegion(func: *mut BNFunction, hash: u64);
18855}
18856unsafe extern "C" {
18857 pub fn BNFunctionExpandRegion(func: *mut BNFunction, hash: u64);
18858}
18859unsafe extern "C" {
18860 pub fn BNFunctionStoreMetadata(
18861 func: *mut BNFunction,
18862 key: *const ::std::os::raw::c_char,
18863 value: *mut BNMetadata,
18864 flags: BNMetadataStoreFlag,
18865 );
18866}
18867unsafe extern "C" {
18868 pub fn BNFunctionQueryMetadata(
18869 func: *mut BNFunction,
18870 key: *const ::std::os::raw::c_char,
18871 ) -> *mut BNMetadata;
18872}
18873unsafe extern "C" {
18874 pub fn BNFunctionRemoveMetadata(func: *mut BNFunction, key: *const ::std::os::raw::c_char);
18875}
18876unsafe extern "C" {
18877 pub fn BNFunctionGetMetadata(func: *mut BNFunction) -> *mut BNMetadata;
18878}
18879unsafe extern "C" {
18880 pub fn BNFunctionGetAutoMetadata(func: *mut BNFunction) -> *mut BNMetadata;
18881}
18882unsafe extern "C" {
18883 pub fn BNSetAutoCallTypeAdjustment(
18884 func: *mut BNFunction,
18885 arch: *mut BNArchitecture,
18886 addr: u64,
18887 type_: *mut BNTypeWithConfidence,
18888 );
18889}
18890unsafe extern "C" {
18891 pub fn BNSetUserCallTypeAdjustment(
18892 func: *mut BNFunction,
18893 arch: *mut BNArchitecture,
18894 addr: u64,
18895 type_: *mut BNTypeWithConfidence,
18896 );
18897}
18898unsafe extern "C" {
18899 pub fn BNSetAutoCallStackAdjustment(
18900 func: *mut BNFunction,
18901 arch: *mut BNArchitecture,
18902 addr: u64,
18903 adjust: i64,
18904 confidence: u8,
18905 );
18906}
18907unsafe extern "C" {
18908 pub fn BNSetUserCallStackAdjustment(
18909 func: *mut BNFunction,
18910 arch: *mut BNArchitecture,
18911 addr: u64,
18912 adjust: i64,
18913 confidence: u8,
18914 );
18915}
18916unsafe extern "C" {
18917 pub fn BNSetAutoCallRegisterStackAdjustment(
18918 func: *mut BNFunction,
18919 arch: *mut BNArchitecture,
18920 addr: u64,
18921 adjust: *mut BNRegisterStackAdjustment,
18922 count: usize,
18923 );
18924}
18925unsafe extern "C" {
18926 pub fn BNSetUserCallRegisterStackAdjustment(
18927 func: *mut BNFunction,
18928 arch: *mut BNArchitecture,
18929 addr: u64,
18930 adjust: *mut BNRegisterStackAdjustment,
18931 count: usize,
18932 );
18933}
18934unsafe extern "C" {
18935 pub fn BNSetAutoCallRegisterStackAdjustmentForRegisterStack(
18936 func: *mut BNFunction,
18937 arch: *mut BNArchitecture,
18938 addr: u64,
18939 regStack: u32,
18940 adjust: i32,
18941 confidence: u8,
18942 );
18943}
18944unsafe extern "C" {
18945 pub fn BNSetUserCallRegisterStackAdjustmentForRegisterStack(
18946 func: *mut BNFunction,
18947 arch: *mut BNArchitecture,
18948 addr: u64,
18949 regStack: u32,
18950 adjust: i32,
18951 confidence: u8,
18952 );
18953}
18954unsafe extern "C" {
18955 pub fn BNGetCallTypeAdjustment(
18956 func: *mut BNFunction,
18957 arch: *mut BNArchitecture,
18958 addr: u64,
18959 ) -> BNTypeWithConfidence;
18960}
18961unsafe extern "C" {
18962 pub fn BNGetCallStackAdjustment(
18963 func: *mut BNFunction,
18964 arch: *mut BNArchitecture,
18965 addr: u64,
18966 ) -> BNOffsetWithConfidence;
18967}
18968unsafe extern "C" {
18969 pub fn BNGetCallRegisterStackAdjustment(
18970 func: *mut BNFunction,
18971 arch: *mut BNArchitecture,
18972 addr: u64,
18973 count: *mut usize,
18974 ) -> *mut BNRegisterStackAdjustment;
18975}
18976unsafe extern "C" {
18977 pub fn BNGetCallRegisterStackAdjustmentForRegisterStack(
18978 func: *mut BNFunction,
18979 arch: *mut BNArchitecture,
18980 addr: u64,
18981 regStack: u32,
18982 ) -> BNRegisterStackAdjustment;
18983}
18984unsafe extern "C" {
18985 pub fn BNIsCallInstruction(func: *mut BNFunction, arch: *mut BNArchitecture, addr: u64)
18986 -> bool;
18987}
18988unsafe extern "C" {
18989 pub fn BNGetFunctionBlockAnnotations(
18990 func: *mut BNFunction,
18991 arch: *mut BNArchitecture,
18992 addr: u64,
18993 count: *mut usize,
18994 ) -> *mut BNInstructionTextLine;
18995}
18996unsafe extern "C" {
18997 pub fn BNGetFunctionBlockSortHint(
18998 func: *mut BNFunction,
18999 arch: *mut BNArchitecture,
19000 addr: u64,
19001 result: *mut i64,
19002 ) -> bool;
19003}
19004unsafe extern "C" {
19005 pub fn BNGetIntegerConstantDisplayType(
19006 func: *mut BNFunction,
19007 arch: *mut BNArchitecture,
19008 instrAddr: u64,
19009 value: u64,
19010 operand: usize,
19011 ) -> BNIntegerDisplayType;
19012}
19013unsafe extern "C" {
19014 pub fn BNSetIntegerConstantDisplayType(
19015 func: *mut BNFunction,
19016 arch: *mut BNArchitecture,
19017 instrAddr: u64,
19018 value: u64,
19019 operand: usize,
19020 type_: BNIntegerDisplayType,
19021 typeID: *const ::std::os::raw::c_char,
19022 );
19023}
19024unsafe extern "C" {
19025 pub fn BNGetIntegerConstantDisplayTypeEnumerationType(
19026 func: *mut BNFunction,
19027 arch: *mut BNArchitecture,
19028 instrAddr: u64,
19029 value: u64,
19030 operand: usize,
19031 ) -> *mut ::std::os::raw::c_char;
19032}
19033unsafe extern "C" {
19034 pub fn BNIsFunctionTooLarge(func: *mut BNFunction) -> bool;
19035}
19036unsafe extern "C" {
19037 pub fn BNIsFunctionAnalysisSkipped(func: *mut BNFunction) -> bool;
19038}
19039unsafe extern "C" {
19040 pub fn BNGetAnalysisSkipReason(func: *mut BNFunction) -> BNAnalysisSkipReason;
19041}
19042unsafe extern "C" {
19043 pub fn BNGetFunctionAnalysisSkipOverride(
19044 func: *mut BNFunction,
19045 ) -> BNFunctionAnalysisSkipOverride;
19046}
19047unsafe extern "C" {
19048 pub fn BNSetFunctionAnalysisSkipOverride(
19049 func: *mut BNFunction,
19050 skip: BNFunctionAnalysisSkipOverride,
19051 );
19052}
19053unsafe extern "C" {
19054 pub fn BNGetGotoLabelName(func: *mut BNFunction, labelId: u64) -> *mut ::std::os::raw::c_char;
19055}
19056unsafe extern "C" {
19057 pub fn BNSetUserGotoLabelName(
19058 func: *mut BNFunction,
19059 labelId: u64,
19060 name: *const ::std::os::raw::c_char,
19061 );
19062}
19063unsafe extern "C" {
19064 #[doc = " BNAnalyzeBasicBlockContext operations"]
19065 pub fn BNAnalyzeBasicBlocksContextCreateBasicBlock(
19066 abb: *mut BNBasicBlockAnalysisContext,
19067 arch: *mut BNArchitecture,
19068 addr: u64,
19069 ) -> *mut BNBasicBlock;
19070}
19071unsafe extern "C" {
19072 pub fn BNAnalyzeBasicBlocksContextAddBasicBlockToFunction(
19073 abb: *mut BNBasicBlockAnalysisContext,
19074 block: *mut BNBasicBlock,
19075 );
19076}
19077unsafe extern "C" {
19078 pub fn BNAnalyzeBasicBlocksContextAddTempReference(
19079 abb: *mut BNBasicBlockAnalysisContext,
19080 target: *mut BNFunction,
19081 );
19082}
19083unsafe extern "C" {
19084 pub fn BNAnalyzeBasicBlocksContextSetDirectCodeReferences(
19085 abb: *mut BNBasicBlockAnalysisContext,
19086 sources: *mut BNArchitectureAndAddress,
19087 targets: *mut u64,
19088 count: usize,
19089 );
19090}
19091unsafe extern "C" {
19092 pub fn BNAnalyzeBasicBlocksContextSetDirectNoReturnCalls(
19093 abb: *mut BNBasicBlockAnalysisContext,
19094 sources: *mut BNArchitectureAndAddress,
19095 count: usize,
19096 );
19097}
19098unsafe extern "C" {
19099 pub fn BNAnalyzeBasicBlocksContextSetContextualFunctionReturns(
19100 abb: *mut BNBasicBlockAnalysisContext,
19101 sources: *mut BNArchitectureAndAddress,
19102 values: *mut bool,
19103 count: usize,
19104 );
19105}
19106unsafe extern "C" {
19107 pub fn BNAnalyzeBasicBlocksContextSetHaltedDisassemblyAddresses(
19108 abb: *mut BNBasicBlockAnalysisContext,
19109 sources: *mut BNArchitectureAndAddress,
19110 count: usize,
19111 );
19112}
19113unsafe extern "C" {
19114 pub fn BNAnalyzeBasicBlocksContextSetInlinedUnresolvedIndirectBranches(
19115 abb: *mut BNBasicBlockAnalysisContext,
19116 locations: *mut BNArchitectureAndAddress,
19117 count: usize,
19118 );
19119}
19120unsafe extern "C" {
19121 pub fn BNGetParametersForAnalysis(view: *mut BNBinaryView) -> BNAnalysisParameters;
19122}
19123unsafe extern "C" {
19124 pub fn BNSetParametersForAnalysis(view: *mut BNBinaryView, params: BNAnalysisParameters);
19125}
19126unsafe extern "C" {
19127 pub fn BNGetMaxFunctionSizeForAnalysis(view: *mut BNBinaryView) -> u64;
19128}
19129unsafe extern "C" {
19130 pub fn BNSetMaxFunctionSizeForAnalysis(view: *mut BNBinaryView, size: u64);
19131}
19132unsafe extern "C" {
19133 pub fn BNGetNewAutoFunctionAnalysisSuppressed(view: *mut BNBinaryView) -> bool;
19134}
19135unsafe extern "C" {
19136 pub fn BNSetNewAutoFunctionAnalysisSuppressed(view: *mut BNBinaryView, suppress: bool);
19137}
19138unsafe extern "C" {
19139 pub fn BNAddAnalysisCompletionEvent(
19140 view: *mut BNBinaryView,
19141 ctxt: *mut ::std::os::raw::c_void,
19142 callback: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
19143 ) -> *mut BNAnalysisCompletionEvent;
19144}
19145unsafe extern "C" {
19146 pub fn BNNewAnalysisCompletionEventReference(
19147 event: *mut BNAnalysisCompletionEvent,
19148 ) -> *mut BNAnalysisCompletionEvent;
19149}
19150unsafe extern "C" {
19151 pub fn BNFreeAnalysisCompletionEvent(event: *mut BNAnalysisCompletionEvent);
19152}
19153unsafe extern "C" {
19154 pub fn BNCancelAnalysisCompletionEvent(event: *mut BNAnalysisCompletionEvent);
19155}
19156unsafe extern "C" {
19157 pub fn BNShouldSkipTargetAnalysis(
19158 view: *mut BNBinaryView,
19159 source: *mut BNArchitectureAndAddress,
19160 sourceFunc: *mut BNFunction,
19161 sourceEnd: u64,
19162 target: *mut BNArchitectureAndAddress,
19163 ) -> bool;
19164}
19165unsafe extern "C" {
19166 pub fn BNGetAnalysisInfo(view: *mut BNBinaryView) -> *mut BNAnalysisInfo;
19167}
19168unsafe extern "C" {
19169 pub fn BNFreeAnalysisInfo(info: *mut BNAnalysisInfo);
19170}
19171unsafe extern "C" {
19172 pub fn BNGetAnalysisProgress(view: *mut BNBinaryView) -> BNAnalysisProgress;
19173}
19174unsafe extern "C" {
19175 pub fn BNGetAnalysisState(view: *mut BNBinaryView) -> BNAnalysisState;
19176}
19177unsafe extern "C" {
19178 pub fn BNGetBackgroundAnalysisTask(view: *mut BNBinaryView) -> *mut BNBackgroundTask;
19179}
19180unsafe extern "C" {
19181 pub fn BNGetNextFunctionStartAfterAddress(view: *mut BNBinaryView, addr: u64) -> u64;
19182}
19183unsafe extern "C" {
19184 pub fn BNGetNextBasicBlockStartAfterAddress(view: *mut BNBinaryView, addr: u64) -> u64;
19185}
19186unsafe extern "C" {
19187 pub fn BNGetNextDataAfterAddress(view: *mut BNBinaryView, addr: u64) -> u64;
19188}
19189unsafe extern "C" {
19190 pub fn BNGetNextDataVariableStartAfterAddress(view: *mut BNBinaryView, addr: u64) -> u64;
19191}
19192unsafe extern "C" {
19193 pub fn BNGetPreviousFunctionStartBeforeAddress(view: *mut BNBinaryView, addr: u64) -> u64;
19194}
19195unsafe extern "C" {
19196 pub fn BNGetPreviousBasicBlockStartBeforeAddress(view: *mut BNBinaryView, addr: u64) -> u64;
19197}
19198unsafe extern "C" {
19199 pub fn BNGetPreviousBasicBlockEndBeforeAddress(view: *mut BNBinaryView, addr: u64) -> u64;
19200}
19201unsafe extern "C" {
19202 pub fn BNGetPreviousDataBeforeAddress(view: *mut BNBinaryView, addr: u64) -> u64;
19203}
19204unsafe extern "C" {
19205 pub fn BNGetPreviousDataVariableStartBeforeAddress(view: *mut BNBinaryView, addr: u64) -> u64;
19206}
19207unsafe extern "C" {
19208 pub fn BNCreateLinearViewDisassembly(
19209 view: *mut BNBinaryView,
19210 settings: *mut BNDisassemblySettings,
19211 ) -> *mut BNLinearViewObject;
19212}
19213unsafe extern "C" {
19214 pub fn BNCreateLinearViewLiftedIL(
19215 view: *mut BNBinaryView,
19216 settings: *mut BNDisassemblySettings,
19217 ) -> *mut BNLinearViewObject;
19218}
19219unsafe extern "C" {
19220 pub fn BNCreateLinearViewLowLevelIL(
19221 view: *mut BNBinaryView,
19222 settings: *mut BNDisassemblySettings,
19223 ) -> *mut BNLinearViewObject;
19224}
19225unsafe extern "C" {
19226 pub fn BNCreateLinearViewLowLevelILSSAForm(
19227 view: *mut BNBinaryView,
19228 settings: *mut BNDisassemblySettings,
19229 ) -> *mut BNLinearViewObject;
19230}
19231unsafe extern "C" {
19232 pub fn BNCreateLinearViewMediumLevelIL(
19233 view: *mut BNBinaryView,
19234 settings: *mut BNDisassemblySettings,
19235 ) -> *mut BNLinearViewObject;
19236}
19237unsafe extern "C" {
19238 pub fn BNCreateLinearViewMediumLevelILSSAForm(
19239 view: *mut BNBinaryView,
19240 settings: *mut BNDisassemblySettings,
19241 ) -> *mut BNLinearViewObject;
19242}
19243unsafe extern "C" {
19244 pub fn BNCreateLinearViewMappedMediumLevelIL(
19245 view: *mut BNBinaryView,
19246 settings: *mut BNDisassemblySettings,
19247 ) -> *mut BNLinearViewObject;
19248}
19249unsafe extern "C" {
19250 pub fn BNCreateLinearViewMappedMediumLevelILSSAForm(
19251 view: *mut BNBinaryView,
19252 settings: *mut BNDisassemblySettings,
19253 ) -> *mut BNLinearViewObject;
19254}
19255unsafe extern "C" {
19256 pub fn BNCreateLinearViewHighLevelIL(
19257 view: *mut BNBinaryView,
19258 settings: *mut BNDisassemblySettings,
19259 ) -> *mut BNLinearViewObject;
19260}
19261unsafe extern "C" {
19262 pub fn BNCreateLinearViewHighLevelILSSAForm(
19263 view: *mut BNBinaryView,
19264 settings: *mut BNDisassemblySettings,
19265 ) -> *mut BNLinearViewObject;
19266}
19267unsafe extern "C" {
19268 pub fn BNCreateLinearViewLanguageRepresentation(
19269 view: *mut BNBinaryView,
19270 settings: *mut BNDisassemblySettings,
19271 language: *const ::std::os::raw::c_char,
19272 ) -> *mut BNLinearViewObject;
19273}
19274unsafe extern "C" {
19275 pub fn BNCreateLinearViewDataOnly(
19276 view: *mut BNBinaryView,
19277 settings: *mut BNDisassemblySettings,
19278 ) -> *mut BNLinearViewObject;
19279}
19280unsafe extern "C" {
19281 pub fn BNCreateLinearViewSingleFunctionDisassembly(
19282 func: *mut BNFunction,
19283 settings: *mut BNDisassemblySettings,
19284 ) -> *mut BNLinearViewObject;
19285}
19286unsafe extern "C" {
19287 pub fn BNCreateLinearViewSingleFunctionLiftedIL(
19288 func: *mut BNFunction,
19289 settings: *mut BNDisassemblySettings,
19290 ) -> *mut BNLinearViewObject;
19291}
19292unsafe extern "C" {
19293 pub fn BNCreateLinearViewSingleFunctionLowLevelIL(
19294 func: *mut BNFunction,
19295 settings: *mut BNDisassemblySettings,
19296 ) -> *mut BNLinearViewObject;
19297}
19298unsafe extern "C" {
19299 pub fn BNCreateLinearViewSingleFunctionLowLevelILSSAForm(
19300 func: *mut BNFunction,
19301 settings: *mut BNDisassemblySettings,
19302 ) -> *mut BNLinearViewObject;
19303}
19304unsafe extern "C" {
19305 pub fn BNCreateLinearViewSingleFunctionMediumLevelIL(
19306 func: *mut BNFunction,
19307 settings: *mut BNDisassemblySettings,
19308 ) -> *mut BNLinearViewObject;
19309}
19310unsafe extern "C" {
19311 pub fn BNCreateLinearViewSingleFunctionMediumLevelILSSAForm(
19312 func: *mut BNFunction,
19313 settings: *mut BNDisassemblySettings,
19314 ) -> *mut BNLinearViewObject;
19315}
19316unsafe extern "C" {
19317 pub fn BNCreateLinearViewSingleFunctionMappedMediumLevelIL(
19318 func: *mut BNFunction,
19319 settings: *mut BNDisassemblySettings,
19320 ) -> *mut BNLinearViewObject;
19321}
19322unsafe extern "C" {
19323 pub fn BNCreateLinearViewSingleFunctionMappedMediumLevelILSSAForm(
19324 func: *mut BNFunction,
19325 settings: *mut BNDisassemblySettings,
19326 ) -> *mut BNLinearViewObject;
19327}
19328unsafe extern "C" {
19329 pub fn BNCreateLinearViewSingleFunctionHighLevelIL(
19330 func: *mut BNFunction,
19331 settings: *mut BNDisassemblySettings,
19332 ) -> *mut BNLinearViewObject;
19333}
19334unsafe extern "C" {
19335 pub fn BNCreateLinearViewSingleFunctionHighLevelILSSAForm(
19336 func: *mut BNFunction,
19337 settings: *mut BNDisassemblySettings,
19338 ) -> *mut BNLinearViewObject;
19339}
19340unsafe extern "C" {
19341 pub fn BNCreateLinearViewSingleFunctionLanguageRepresentation(
19342 func: *mut BNFunction,
19343 settings: *mut BNDisassemblySettings,
19344 language: *const ::std::os::raw::c_char,
19345 ) -> *mut BNLinearViewObject;
19346}
19347unsafe extern "C" {
19348 pub fn BNNewLinearViewObjectReference(obj: *mut BNLinearViewObject) -> *mut BNLinearViewObject;
19349}
19350unsafe extern "C" {
19351 pub fn BNFreeLinearViewObject(obj: *mut BNLinearViewObject);
19352}
19353unsafe extern "C" {
19354 pub fn BNGetFirstLinearViewObjectChild(obj: *mut BNLinearViewObject)
19355 -> *mut BNLinearViewObject;
19356}
19357unsafe extern "C" {
19358 pub fn BNGetLastLinearViewObjectChild(obj: *mut BNLinearViewObject) -> *mut BNLinearViewObject;
19359}
19360unsafe extern "C" {
19361 pub fn BNGetPreviousLinearViewObjectChild(
19362 parent: *mut BNLinearViewObject,
19363 child: *mut BNLinearViewObject,
19364 ) -> *mut BNLinearViewObject;
19365}
19366unsafe extern "C" {
19367 pub fn BNGetNextLinearViewObjectChild(
19368 parent: *mut BNLinearViewObject,
19369 child: *mut BNLinearViewObject,
19370 ) -> *mut BNLinearViewObject;
19371}
19372unsafe extern "C" {
19373 pub fn BNGetLinearViewObjectChildForAddress(
19374 parent: *mut BNLinearViewObject,
19375 addr: u64,
19376 ) -> *mut BNLinearViewObject;
19377}
19378unsafe extern "C" {
19379 pub fn BNGetLinearViewObjectChildForIdentifier(
19380 parent: *mut BNLinearViewObject,
19381 id: *mut BNLinearViewObjectIdentifier,
19382 ) -> *mut BNLinearViewObject;
19383}
19384unsafe extern "C" {
19385 pub fn BNGetLinearViewObjectLines(
19386 obj: *mut BNLinearViewObject,
19387 prev: *mut BNLinearViewObject,
19388 next: *mut BNLinearViewObject,
19389 count: *mut usize,
19390 ) -> *mut BNLinearDisassemblyLine;
19391}
19392unsafe extern "C" {
19393 pub fn BNFreeLinearDisassemblyLines(lines: *mut BNLinearDisassemblyLine, count: usize);
19394}
19395unsafe extern "C" {
19396 pub fn BNGetLinearViewObjectStart(obj: *mut BNLinearViewObject) -> u64;
19397}
19398unsafe extern "C" {
19399 pub fn BNGetLinearViewObjectEnd(obj: *mut BNLinearViewObject) -> u64;
19400}
19401unsafe extern "C" {
19402 pub fn BNGetLinearViewObjectIdentifier(
19403 obj: *mut BNLinearViewObject,
19404 ) -> BNLinearViewObjectIdentifier;
19405}
19406unsafe extern "C" {
19407 pub fn BNFreeLinearViewObjectIdentifier(id: *mut BNLinearViewObjectIdentifier);
19408}
19409unsafe extern "C" {
19410 pub fn BNCompareLinearViewObjectChildren(
19411 obj: *mut BNLinearViewObject,
19412 a: *mut BNLinearViewObject,
19413 b: *mut BNLinearViewObject,
19414 ) -> ::std::os::raw::c_int;
19415}
19416unsafe extern "C" {
19417 pub fn BNGetLinearViewObjectOrderingIndexTotal(obj: *mut BNLinearViewObject) -> u64;
19418}
19419unsafe extern "C" {
19420 pub fn BNGetLinearViewObjectOrderingIndexForChild(
19421 parent: *mut BNLinearViewObject,
19422 child: *mut BNLinearViewObject,
19423 ) -> u64;
19424}
19425unsafe extern "C" {
19426 pub fn BNGetLinearViewObjectChildForOrderingIndex(
19427 parent: *mut BNLinearViewObject,
19428 idx: u64,
19429 ) -> *mut BNLinearViewObject;
19430}
19431unsafe extern "C" {
19432 pub fn BNCreateLinearViewCursor(root: *mut BNLinearViewObject) -> *mut BNLinearViewCursor;
19433}
19434unsafe extern "C" {
19435 pub fn BNDuplicateLinearViewCursor(cursor: *mut BNLinearViewCursor) -> *mut BNLinearViewCursor;
19436}
19437unsafe extern "C" {
19438 pub fn BNNewLinearViewCursorReference(
19439 cursor: *mut BNLinearViewCursor,
19440 ) -> *mut BNLinearViewCursor;
19441}
19442unsafe extern "C" {
19443 pub fn BNFreeLinearViewCursor(cursor: *mut BNLinearViewCursor);
19444}
19445unsafe extern "C" {
19446 pub fn BNIsLinearViewCursorBeforeBegin(cursor: *mut BNLinearViewCursor) -> bool;
19447}
19448unsafe extern "C" {
19449 pub fn BNIsLinearViewCursorAfterEnd(cursor: *mut BNLinearViewCursor) -> bool;
19450}
19451unsafe extern "C" {
19452 pub fn BNGetLinearViewCursorCurrentObject(
19453 cursor: *mut BNLinearViewCursor,
19454 ) -> *mut BNLinearViewObject;
19455}
19456unsafe extern "C" {
19457 pub fn BNGetLinearViewCursorPath(
19458 cursor: *mut BNLinearViewCursor,
19459 count: *mut usize,
19460 ) -> *mut BNLinearViewObjectIdentifier;
19461}
19462unsafe extern "C" {
19463 pub fn BNFreeLinearViewCursorPath(objs: *mut BNLinearViewObjectIdentifier, count: usize);
19464}
19465unsafe extern "C" {
19466 pub fn BNGetLinearViewCursorPathObjects(
19467 cursor: *mut BNLinearViewCursor,
19468 count: *mut usize,
19469 ) -> *mut *mut BNLinearViewObject;
19470}
19471unsafe extern "C" {
19472 pub fn BNFreeLinearViewCursorPathObjects(objs: *mut *mut BNLinearViewObject, count: usize);
19473}
19474unsafe extern "C" {
19475 pub fn BNGetLinearViewCursorOrderingIndex(cursor: *mut BNLinearViewCursor) -> BNAddressRange;
19476}
19477unsafe extern "C" {
19478 pub fn BNGetLinearViewCursorOrderingIndexTotal(cursor: *mut BNLinearViewCursor) -> u64;
19479}
19480unsafe extern "C" {
19481 pub fn BNSeekLinearViewCursorToBegin(cursor: *mut BNLinearViewCursor);
19482}
19483unsafe extern "C" {
19484 pub fn BNSeekLinearViewCursorToEnd(cursor: *mut BNLinearViewCursor);
19485}
19486unsafe extern "C" {
19487 pub fn BNSeekLinearViewCursorToAddress(cursor: *mut BNLinearViewCursor, addr: u64);
19488}
19489unsafe extern "C" {
19490 pub fn BNSeekLinearViewCursorToPath(
19491 cursor: *mut BNLinearViewCursor,
19492 ids: *mut BNLinearViewObjectIdentifier,
19493 count: usize,
19494 ) -> bool;
19495}
19496unsafe extern "C" {
19497 pub fn BNSeekLinearViewCursorToPathAndAddress(
19498 cursor: *mut BNLinearViewCursor,
19499 ids: *mut BNLinearViewObjectIdentifier,
19500 count: usize,
19501 addr: u64,
19502 ) -> bool;
19503}
19504unsafe extern "C" {
19505 pub fn BNSeekLinearViewCursorToCursorPath(
19506 cursor: *mut BNLinearViewCursor,
19507 path: *mut BNLinearViewCursor,
19508 ) -> bool;
19509}
19510unsafe extern "C" {
19511 pub fn BNSeekLinearViewCursorToCursorPathAndAddress(
19512 cursor: *mut BNLinearViewCursor,
19513 path: *mut BNLinearViewCursor,
19514 addr: u64,
19515 ) -> bool;
19516}
19517unsafe extern "C" {
19518 pub fn BNSeekLinearViewCursorToOrderingIndex(cursor: *mut BNLinearViewCursor, idx: u64);
19519}
19520unsafe extern "C" {
19521 pub fn BNLinearViewCursorNext(cursor: *mut BNLinearViewCursor) -> bool;
19522}
19523unsafe extern "C" {
19524 pub fn BNLinearViewCursorPrevious(cursor: *mut BNLinearViewCursor) -> bool;
19525}
19526unsafe extern "C" {
19527 pub fn BNGetLinearViewCursorLines(
19528 cursor: *mut BNLinearViewCursor,
19529 count: *mut usize,
19530 ) -> *mut BNLinearDisassemblyLine;
19531}
19532unsafe extern "C" {
19533 pub fn BNCompareLinearViewCursors(
19534 a: *mut BNLinearViewCursor,
19535 b: *mut BNLinearViewCursor,
19536 ) -> ::std::os::raw::c_int;
19537}
19538unsafe extern "C" {
19539 pub fn BNGetLinearViewCursorRenderLayers(
19540 cursor: *mut BNLinearViewCursor,
19541 count: *mut usize,
19542 ) -> *mut *mut BNRenderLayer;
19543}
19544unsafe extern "C" {
19545 pub fn BNAddLinearViewCursorRenderLayer(
19546 cursor: *mut BNLinearViewCursor,
19547 layer: *mut BNRenderLayer,
19548 );
19549}
19550unsafe extern "C" {
19551 pub fn BNRemoveLinearViewCursorRenderLayer(
19552 cursor: *mut BNLinearViewCursor,
19553 layer: *mut BNRenderLayer,
19554 );
19555}
19556unsafe extern "C" {
19557 pub fn BNDefineDataVariable(
19558 view: *mut BNBinaryView,
19559 addr: u64,
19560 type_: *mut BNTypeWithConfidence,
19561 );
19562}
19563unsafe extern "C" {
19564 pub fn BNDefineUserDataVariable(
19565 view: *mut BNBinaryView,
19566 addr: u64,
19567 type_: *mut BNTypeWithConfidence,
19568 );
19569}
19570unsafe extern "C" {
19571 pub fn BNUndefineDataVariable(view: *mut BNBinaryView, addr: u64, blacklist: bool);
19572}
19573unsafe extern "C" {
19574 pub fn BNUndefineUserDataVariable(view: *mut BNBinaryView, addr: u64);
19575}
19576unsafe extern "C" {
19577 pub fn BNGetDataVariables(view: *mut BNBinaryView, count: *mut usize) -> *mut BNDataVariable;
19578}
19579unsafe extern "C" {
19580 pub fn BNFreeDataVariable(var: *mut BNDataVariable);
19581}
19582unsafe extern "C" {
19583 pub fn BNFreeDataVariables(vars: *mut BNDataVariable, count: usize);
19584}
19585unsafe extern "C" {
19586 pub fn BNFreeDataVariableAndName(var: *mut BNDataVariableAndName);
19587}
19588unsafe extern "C" {
19589 pub fn BNFreeDataVariablesAndName(vars: *mut BNDataVariableAndName, count: usize);
19590}
19591unsafe extern "C" {
19592 pub fn BNFreeDataVariableAndNameAndDebugParserList(
19593 vars: *mut BNDataVariableAndNameAndDebugParser,
19594 count: usize,
19595 );
19596}
19597unsafe extern "C" {
19598 pub fn BNGetDataVariableAtAddress(
19599 view: *mut BNBinaryView,
19600 addr: u64,
19601 var: *mut BNDataVariable,
19602 ) -> bool;
19603}
19604unsafe extern "C" {
19605 pub fn BNParseTypeString(
19606 view: *mut BNBinaryView,
19607 text: *const ::std::os::raw::c_char,
19608 result: *mut BNQualifiedNameAndType,
19609 errors: *mut *mut ::std::os::raw::c_char,
19610 typesAllowRedefinition: *mut BNQualifiedNameList,
19611 importDepencencies: bool,
19612 ) -> bool;
19613}
19614unsafe extern "C" {
19615 pub fn BNParseTypesString(
19616 view: *mut BNBinaryView,
19617 text: *const ::std::os::raw::c_char,
19618 options: *const *const ::std::os::raw::c_char,
19619 optionCount: usize,
19620 includeDirs: *const *const ::std::os::raw::c_char,
19621 includeDirCount: usize,
19622 result: *mut BNTypeParserResult,
19623 errors: *mut *mut ::std::os::raw::c_char,
19624 typesAllowRedefinition: *mut BNQualifiedNameList,
19625 importDepencencies: bool,
19626 ) -> bool;
19627}
19628unsafe extern "C" {
19629 pub fn BNFreeQualifiedNameAndType(obj: *mut BNQualifiedNameAndType);
19630}
19631unsafe extern "C" {
19632 pub fn BNFreeQualifiedNameAndTypeArray(obj: *mut BNQualifiedNameAndType, count: usize);
19633}
19634unsafe extern "C" {
19635 pub fn BNFreeQualifiedNameTypeAndId(obj: *mut BNQualifiedNameTypeAndId);
19636}
19637unsafe extern "C" {
19638 pub fn BNEscapeTypeName(
19639 name: *const ::std::os::raw::c_char,
19640 escaping: BNTokenEscapingType,
19641 ) -> *mut ::std::os::raw::c_char;
19642}
19643unsafe extern "C" {
19644 pub fn BNUnescapeTypeName(
19645 name: *const ::std::os::raw::c_char,
19646 escaping: BNTokenEscapingType,
19647 ) -> *mut ::std::os::raw::c_char;
19648}
19649unsafe extern "C" {
19650 pub fn BNGetAnalysisTypeList(
19651 view: *mut BNBinaryView,
19652 count: *mut usize,
19653 ) -> *mut BNQualifiedNameAndType;
19654}
19655unsafe extern "C" {
19656 pub fn BNGetAnalysisDependencySortedTypeList(
19657 view: *mut BNBinaryView,
19658 count: *mut usize,
19659 ) -> *mut BNQualifiedNameAndType;
19660}
19661unsafe extern "C" {
19662 pub fn BNFreeTypeAndNameList(types: *mut BNQualifiedNameAndType, count: usize);
19663}
19664unsafe extern "C" {
19665 pub fn BNFreeTypeIdList(types: *mut BNQualifiedNameTypeAndId, count: usize);
19666}
19667unsafe extern "C" {
19668 pub fn BNGetAnalysisTypeNames(
19669 view: *mut BNBinaryView,
19670 count: *mut usize,
19671 matching: *const ::std::os::raw::c_char,
19672 ) -> *mut BNQualifiedName;
19673}
19674unsafe extern "C" {
19675 pub fn BNFreeTypeNameList(names: *mut BNQualifiedName, count: usize);
19676}
19677unsafe extern "C" {
19678 pub fn BNGetAnalysisTypeContainer(view: *mut BNBinaryView) -> *mut BNTypeContainer;
19679}
19680unsafe extern "C" {
19681 pub fn BNGetAnalysisAutoTypeContainer(view: *mut BNBinaryView) -> *mut BNTypeContainer;
19682}
19683unsafe extern "C" {
19684 pub fn BNGetAnalysisUserTypeContainer(view: *mut BNBinaryView) -> *mut BNTypeContainer;
19685}
19686unsafe extern "C" {
19687 pub fn BNGetAnalysisTypeByName(
19688 view: *mut BNBinaryView,
19689 name: *mut BNQualifiedName,
19690 ) -> *mut BNType;
19691}
19692unsafe extern "C" {
19693 pub fn BNGetAnalysisTypeByRef(
19694 view: *mut BNBinaryView,
19695 ref_: *mut BNNamedTypeReference,
19696 ) -> *mut BNType;
19697}
19698unsafe extern "C" {
19699 pub fn BNGetAnalysisTypeById(
19700 view: *mut BNBinaryView,
19701 id: *const ::std::os::raw::c_char,
19702 ) -> *mut BNType;
19703}
19704unsafe extern "C" {
19705 pub fn BNGetAnalysisTypeId(
19706 view: *mut BNBinaryView,
19707 name: *mut BNQualifiedName,
19708 ) -> *mut ::std::os::raw::c_char;
19709}
19710unsafe extern "C" {
19711 pub fn BNGetAnalysisTypeNameById(
19712 view: *mut BNBinaryView,
19713 id: *const ::std::os::raw::c_char,
19714 ) -> BNQualifiedName;
19715}
19716unsafe extern "C" {
19717 pub fn BNIsAnalysisTypeAutoDefined(view: *mut BNBinaryView, name: *mut BNQualifiedName)
19718 -> bool;
19719}
19720unsafe extern "C" {
19721 pub fn BNDefineAnalysisType(
19722 view: *mut BNBinaryView,
19723 id: *const ::std::os::raw::c_char,
19724 defaultName: *mut BNQualifiedName,
19725 type_: *mut BNType,
19726 ) -> BNQualifiedName;
19727}
19728unsafe extern "C" {
19729 pub fn BNDefineUserAnalysisType(
19730 view: *mut BNBinaryView,
19731 name: *mut BNQualifiedName,
19732 type_: *mut BNType,
19733 );
19734}
19735unsafe extern "C" {
19736 pub fn BNDefineAnalysisTypes(
19737 view: *mut BNBinaryView,
19738 types: *mut BNQualifiedNameTypeAndId,
19739 count: usize,
19740 progress: BNProgressFunction,
19741 progressContext: *mut ::std::os::raw::c_void,
19742 resultIds: *mut *mut *mut ::std::os::raw::c_char,
19743 resultNames: *mut *mut BNQualifiedName,
19744 ) -> usize;
19745}
19746unsafe extern "C" {
19747 pub fn BNDefineUserAnalysisTypes(
19748 view: *mut BNBinaryView,
19749 types: *mut BNQualifiedNameAndType,
19750 count: usize,
19751 progress: BNProgressFunction,
19752 progressContext: *mut ::std::os::raw::c_void,
19753 );
19754}
19755unsafe extern "C" {
19756 pub fn BNUndefineAnalysisType(view: *mut BNBinaryView, id: *const ::std::os::raw::c_char);
19757}
19758unsafe extern "C" {
19759 pub fn BNUndefineUserAnalysisType(view: *mut BNBinaryView, name: *mut BNQualifiedName);
19760}
19761unsafe extern "C" {
19762 pub fn BNRenameAnalysisType(
19763 view: *mut BNBinaryView,
19764 oldName: *mut BNQualifiedName,
19765 newName: *mut BNQualifiedName,
19766 );
19767}
19768unsafe extern "C" {
19769 pub fn BNGetAnalysisSystemCallType(
19770 view: *mut BNBinaryView,
19771 platform: *mut BNPlatform,
19772 id: u32,
19773 ) -> *mut BNType;
19774}
19775unsafe extern "C" {
19776 pub fn BNGetAnalysisSystemCallName(
19777 view: *mut BNBinaryView,
19778 platform: *mut BNPlatform,
19779 id: u32,
19780 ) -> *mut ::std::os::raw::c_char;
19781}
19782unsafe extern "C" {
19783 pub fn BNGenerateAutoTypeId(
19784 source: *const ::std::os::raw::c_char,
19785 name: *mut BNQualifiedName,
19786 ) -> *mut ::std::os::raw::c_char;
19787}
19788unsafe extern "C" {
19789 pub fn BNGenerateAutoPlatformTypeId(
19790 platform: *mut BNPlatform,
19791 name: *mut BNQualifiedName,
19792 ) -> *mut ::std::os::raw::c_char;
19793}
19794unsafe extern "C" {
19795 pub fn BNGenerateAutoDemangledTypeId(name: *mut BNQualifiedName)
19796 -> *mut ::std::os::raw::c_char;
19797}
19798unsafe extern "C" {
19799 pub fn BNGetAutoPlatformTypeIdSource(platform: *mut BNPlatform) -> *mut ::std::os::raw::c_char;
19800}
19801unsafe extern "C" {
19802 pub fn BNGetAutoDemangledTypeIdSource() -> *mut ::std::os::raw::c_char;
19803}
19804unsafe extern "C" {
19805 pub fn BNGenerateAutoDebugTypeId(name: *mut BNQualifiedName) -> *mut ::std::os::raw::c_char;
19806}
19807unsafe extern "C" {
19808 pub fn BNGetAutoDebugTypeIdSource() -> *mut ::std::os::raw::c_char;
19809}
19810unsafe extern "C" {
19811 pub fn BNRegisterPlatformTypes(view: *mut BNBinaryView, platform: *mut BNPlatform);
19812}
19813unsafe extern "C" {
19814 pub fn BNLookupImportedTypePlatform(
19815 view: *mut BNBinaryView,
19816 typeName: *const BNQualifiedName,
19817 platform: *mut *mut BNPlatform,
19818 resultName: *mut BNQualifiedName,
19819 ) -> bool;
19820}
19821unsafe extern "C" {
19822 pub fn BNReanalyzeAllFunctions(view: *mut BNBinaryView);
19823}
19824unsafe extern "C" {
19825 pub fn BNAnalyzeFunction(func: *mut BNFunction);
19826}
19827unsafe extern "C" {
19828 pub fn BNReanalyzeFunction(func: *mut BNFunction, type_: BNFunctionUpdateType);
19829}
19830unsafe extern "C" {
19831 pub fn BNMarkUpdatesRequired(func: *mut BNFunction, type_: BNFunctionUpdateType);
19832}
19833unsafe extern "C" {
19834 pub fn BNMarkCallerUpdatesRequired(func: *mut BNFunction, type_: BNFunctionUpdateType);
19835}
19836unsafe extern "C" {
19837 pub fn BNGetInstructionHighlight(
19838 func: *mut BNFunction,
19839 arch: *mut BNArchitecture,
19840 addr: u64,
19841 ) -> BNHighlightColor;
19842}
19843unsafe extern "C" {
19844 pub fn BNSetAutoInstructionHighlight(
19845 func: *mut BNFunction,
19846 arch: *mut BNArchitecture,
19847 addr: u64,
19848 color: BNHighlightColor,
19849 );
19850}
19851unsafe extern "C" {
19852 pub fn BNSetUserInstructionHighlight(
19853 func: *mut BNFunction,
19854 arch: *mut BNArchitecture,
19855 addr: u64,
19856 color: BNHighlightColor,
19857 );
19858}
19859unsafe extern "C" {
19860 pub fn BNGetBasicBlockHighlight(block: *mut BNBasicBlock) -> BNHighlightColor;
19861}
19862unsafe extern "C" {
19863 pub fn BNSetAutoBasicBlockHighlight(block: *mut BNBasicBlock, color: BNHighlightColor);
19864}
19865unsafe extern "C" {
19866 pub fn BNSetUserBasicBlockHighlight(block: *mut BNBasicBlock, color: BNHighlightColor);
19867}
19868unsafe extern "C" {
19869 pub fn BNFreeTypeContainer(container: *mut BNTypeContainer);
19870}
19871unsafe extern "C" {
19872 pub fn BNDuplicateTypeContainer(container: *mut BNTypeContainer) -> *mut BNTypeContainer;
19873}
19874unsafe extern "C" {
19875 pub fn BNTypeContainerGetId(container: *mut BNTypeContainer) -> *mut ::std::os::raw::c_char;
19876}
19877unsafe extern "C" {
19878 pub fn BNTypeContainerGetName(container: *mut BNTypeContainer) -> *mut ::std::os::raw::c_char;
19879}
19880unsafe extern "C" {
19881 pub fn BNTypeContainerGetType(container: *mut BNTypeContainer) -> BNTypeContainerType;
19882}
19883unsafe extern "C" {
19884 pub fn BNTypeContainerIsMutable(container: *mut BNTypeContainer) -> bool;
19885}
19886unsafe extern "C" {
19887 pub fn BNTypeContainerGetPlatform(container: *mut BNTypeContainer) -> *mut BNPlatform;
19888}
19889unsafe extern "C" {
19890 pub fn BNTypeContainerAddTypes(
19891 container: *mut BNTypeContainer,
19892 typeNames: *const BNQualifiedName,
19893 types: *mut *mut BNType,
19894 typeCount: usize,
19895 progress: BNProgressFunction,
19896 progressContext: *mut ::std::os::raw::c_void,
19897 resultNames: *mut *mut BNQualifiedName,
19898 resultIds: *mut *mut *mut ::std::os::raw::c_char,
19899 resultCount: *mut usize,
19900 ) -> bool;
19901}
19902unsafe extern "C" {
19903 pub fn BNTypeContainerRenameType(
19904 container: *mut BNTypeContainer,
19905 typeId: *const ::std::os::raw::c_char,
19906 newName: *const BNQualifiedName,
19907 ) -> bool;
19908}
19909unsafe extern "C" {
19910 pub fn BNTypeContainerDeleteType(
19911 container: *mut BNTypeContainer,
19912 typeId: *const ::std::os::raw::c_char,
19913 ) -> bool;
19914}
19915unsafe extern "C" {
19916 pub fn BNTypeContainerGetTypeId(
19917 container: *mut BNTypeContainer,
19918 typeName: *const BNQualifiedName,
19919 result: *mut *mut ::std::os::raw::c_char,
19920 ) -> bool;
19921}
19922unsafe extern "C" {
19923 pub fn BNTypeContainerGetTypeName(
19924 container: *mut BNTypeContainer,
19925 typeId: *const ::std::os::raw::c_char,
19926 result: *mut BNQualifiedName,
19927 ) -> bool;
19928}
19929unsafe extern "C" {
19930 pub fn BNTypeContainerGetTypeById(
19931 container: *mut BNTypeContainer,
19932 typeId: *const ::std::os::raw::c_char,
19933 result: *mut *mut BNType,
19934 ) -> bool;
19935}
19936unsafe extern "C" {
19937 pub fn BNTypeContainerGetTypes(
19938 container: *mut BNTypeContainer,
19939 typeIds: *mut *mut *mut ::std::os::raw::c_char,
19940 typeNames: *mut *mut BNQualifiedName,
19941 types: *mut *mut *mut BNType,
19942 count: *mut usize,
19943 ) -> bool;
19944}
19945unsafe extern "C" {
19946 pub fn BNTypeContainerGetTypeByName(
19947 container: *mut BNTypeContainer,
19948 typeName: *const BNQualifiedName,
19949 result: *mut *mut BNType,
19950 ) -> bool;
19951}
19952unsafe extern "C" {
19953 pub fn BNTypeContainerGetTypeIds(
19954 container: *mut BNTypeContainer,
19955 typeIds: *mut *mut *mut ::std::os::raw::c_char,
19956 count: *mut usize,
19957 ) -> bool;
19958}
19959unsafe extern "C" {
19960 pub fn BNTypeContainerGetTypeNames(
19961 container: *mut BNTypeContainer,
19962 typeNames: *mut *mut BNQualifiedName,
19963 count: *mut usize,
19964 ) -> bool;
19965}
19966unsafe extern "C" {
19967 pub fn BNTypeContainerGetTypeNamesAndIds(
19968 container: *mut BNTypeContainer,
19969 typeIds: *mut *mut *mut ::std::os::raw::c_char,
19970 typeNames: *mut *mut BNQualifiedName,
19971 count: *mut usize,
19972 ) -> bool;
19973}
19974unsafe extern "C" {
19975 pub fn BNTypeContainerGetTypeCount(container: *mut BNTypeContainer) -> usize;
19976}
19977unsafe extern "C" {
19978 pub fn BNTypeContainerParseTypeString(
19979 container: *mut BNTypeContainer,
19980 source: *const ::std::os::raw::c_char,
19981 importDepencencies: bool,
19982 result: *mut BNQualifiedNameAndType,
19983 errors: *mut *mut BNTypeParserError,
19984 errorCount: *mut usize,
19985 ) -> bool;
19986}
19987unsafe extern "C" {
19988 pub fn BNTypeContainerParseTypesFromSource(
19989 container: *mut BNTypeContainer,
19990 source: *const ::std::os::raw::c_char,
19991 fileName: *const ::std::os::raw::c_char,
19992 options: *const *const ::std::os::raw::c_char,
19993 optionCount: usize,
19994 includeDirs: *const *const ::std::os::raw::c_char,
19995 includeDirCount: usize,
19996 autoTypeSource: *const ::std::os::raw::c_char,
19997 importDepencencies: bool,
19998 result: *mut BNTypeParserResult,
19999 errors: *mut *mut BNTypeParserError,
20000 errorCount: *mut usize,
20001 ) -> bool;
20002}
20003unsafe extern "C" {
20004 pub fn BNGetEmptyTypeContainer() -> *mut BNTypeContainer;
20005}
20006unsafe extern "C" {
20007 pub fn BNCreateTagType(view: *mut BNBinaryView) -> *mut BNTagType;
20008}
20009unsafe extern "C" {
20010 pub fn BNNewTagTypeReference(tagType: *mut BNTagType) -> *mut BNTagType;
20011}
20012unsafe extern "C" {
20013 pub fn BNFreeTagType(tagType: *mut BNTagType);
20014}
20015unsafe extern "C" {
20016 pub fn BNFreeTagTypeList(tagTypes: *mut *mut BNTagType, count: usize);
20017}
20018unsafe extern "C" {
20019 pub fn BNTagTypeGetView(tagType: *mut BNTagType) -> *mut BNBinaryView;
20020}
20021unsafe extern "C" {
20022 pub fn BNTagTypeGetId(tagType: *mut BNTagType) -> *mut ::std::os::raw::c_char;
20023}
20024unsafe extern "C" {
20025 pub fn BNTagTypeGetName(tagType: *mut BNTagType) -> *mut ::std::os::raw::c_char;
20026}
20027unsafe extern "C" {
20028 pub fn BNTagTypeSetName(tagType: *mut BNTagType, name: *const ::std::os::raw::c_char);
20029}
20030unsafe extern "C" {
20031 pub fn BNTagTypeGetIcon(tagType: *mut BNTagType) -> *mut ::std::os::raw::c_char;
20032}
20033unsafe extern "C" {
20034 pub fn BNTagTypeSetIcon(tagType: *mut BNTagType, icon: *const ::std::os::raw::c_char);
20035}
20036unsafe extern "C" {
20037 pub fn BNTagTypeGetVisible(tagType: *mut BNTagType) -> bool;
20038}
20039unsafe extern "C" {
20040 pub fn BNTagTypeSetVisible(tagType: *mut BNTagType, visible: bool);
20041}
20042unsafe extern "C" {
20043 pub fn BNTagTypeGetType(tagType: *mut BNTagType) -> BNTagTypeType;
20044}
20045unsafe extern "C" {
20046 pub fn BNTagTypeSetType(tagType: *mut BNTagType, type_: BNTagTypeType);
20047}
20048unsafe extern "C" {
20049 pub fn BNCreateTag(type_: *mut BNTagType, data: *const ::std::os::raw::c_char) -> *mut BNTag;
20050}
20051unsafe extern "C" {
20052 pub fn BNNewTagReference(tag: *mut BNTag) -> *mut BNTag;
20053}
20054unsafe extern "C" {
20055 pub fn BNFreeTag(tag: *mut BNTag);
20056}
20057unsafe extern "C" {
20058 pub fn BNFreeTagList(tags: *mut *mut BNTag, count: usize);
20059}
20060unsafe extern "C" {
20061 pub fn BNTagGetId(tag: *mut BNTag) -> *mut ::std::os::raw::c_char;
20062}
20063unsafe extern "C" {
20064 pub fn BNTagGetType(tag: *mut BNTag) -> *mut BNTagType;
20065}
20066unsafe extern "C" {
20067 pub fn BNTagGetData(tag: *mut BNTag) -> *mut ::std::os::raw::c_char;
20068}
20069unsafe extern "C" {
20070 pub fn BNTagSetData(tag: *mut BNTag, data: *const ::std::os::raw::c_char);
20071}
20072unsafe extern "C" {
20073 pub fn BNAddTagType(view: *mut BNBinaryView, tagType: *mut BNTagType);
20074}
20075unsafe extern "C" {
20076 pub fn BNRemoveTagType(view: *mut BNBinaryView, tagType: *mut BNTagType);
20077}
20078unsafe extern "C" {
20079 pub fn BNGetTagType(
20080 view: *mut BNBinaryView,
20081 name: *const ::std::os::raw::c_char,
20082 ) -> *mut BNTagType;
20083}
20084unsafe extern "C" {
20085 pub fn BNGetTagTypeWithType(
20086 view: *mut BNBinaryView,
20087 name: *const ::std::os::raw::c_char,
20088 type_: BNTagTypeType,
20089 ) -> *mut BNTagType;
20090}
20091unsafe extern "C" {
20092 pub fn BNGetTagTypeById(
20093 view: *mut BNBinaryView,
20094 id: *const ::std::os::raw::c_char,
20095 ) -> *mut BNTagType;
20096}
20097unsafe extern "C" {
20098 pub fn BNGetTagTypeByIdWithType(
20099 view: *mut BNBinaryView,
20100 id: *const ::std::os::raw::c_char,
20101 type_: BNTagTypeType,
20102 ) -> *mut BNTagType;
20103}
20104unsafe extern "C" {
20105 pub fn BNGetTagTypes(view: *mut BNBinaryView, count: *mut usize) -> *mut *mut BNTagType;
20106}
20107unsafe extern "C" {
20108 pub fn BNAddTag(view: *mut BNBinaryView, tag: *mut BNTag, user: bool);
20109}
20110unsafe extern "C" {
20111 pub fn BNGetTag(view: *mut BNBinaryView, tagId: *const ::std::os::raw::c_char) -> *mut BNTag;
20112}
20113unsafe extern "C" {
20114 pub fn BNRemoveTag(view: *mut BNBinaryView, tag: *mut BNTag, user: bool);
20115}
20116unsafe extern "C" {
20117 pub fn BNGetAllTagReferences(view: *mut BNBinaryView, count: *mut usize)
20118 -> *mut BNTagReference;
20119}
20120unsafe extern "C" {
20121 pub fn BNGetAllAddressTagReferences(
20122 view: *mut BNBinaryView,
20123 count: *mut usize,
20124 ) -> *mut BNTagReference;
20125}
20126unsafe extern "C" {
20127 pub fn BNGetAllFunctionTagReferences(
20128 view: *mut BNBinaryView,
20129 count: *mut usize,
20130 ) -> *mut BNTagReference;
20131}
20132unsafe extern "C" {
20133 pub fn BNGetAllTagReferencesOfType(
20134 view: *mut BNBinaryView,
20135 tagType: *mut BNTagType,
20136 count: *mut usize,
20137 ) -> *mut BNTagReference;
20138}
20139unsafe extern "C" {
20140 pub fn BNGetTagReferencesOfType(
20141 view: *mut BNBinaryView,
20142 tagType: *mut BNTagType,
20143 count: *mut usize,
20144 ) -> *mut BNTagReference;
20145}
20146unsafe extern "C" {
20147 pub fn BNGetDataTagReferences(
20148 view: *mut BNBinaryView,
20149 count: *mut usize,
20150 ) -> *mut BNTagReference;
20151}
20152unsafe extern "C" {
20153 pub fn BNGetAutoDataTagReferences(
20154 view: *mut BNBinaryView,
20155 count: *mut usize,
20156 ) -> *mut BNTagReference;
20157}
20158unsafe extern "C" {
20159 pub fn BNGetUserDataTagReferences(
20160 view: *mut BNBinaryView,
20161 count: *mut usize,
20162 ) -> *mut BNTagReference;
20163}
20164unsafe extern "C" {
20165 pub fn BNRemoveTagReference(view: *mut BNBinaryView, ref_: BNTagReference);
20166}
20167unsafe extern "C" {
20168 pub fn BNFreeTagReferences(refs: *mut BNTagReference, count: usize);
20169}
20170unsafe extern "C" {
20171 pub fn BNGetDataTags(view: *mut BNBinaryView, addr: u64, count: *mut usize) -> *mut *mut BNTag;
20172}
20173unsafe extern "C" {
20174 pub fn BNGetAutoDataTags(
20175 view: *mut BNBinaryView,
20176 addr: u64,
20177 count: *mut usize,
20178 ) -> *mut *mut BNTag;
20179}
20180unsafe extern "C" {
20181 pub fn BNGetUserDataTags(
20182 view: *mut BNBinaryView,
20183 addr: u64,
20184 count: *mut usize,
20185 ) -> *mut *mut BNTag;
20186}
20187unsafe extern "C" {
20188 pub fn BNGetDataTagsOfType(
20189 view: *mut BNBinaryView,
20190 addr: u64,
20191 tagType: *mut BNTagType,
20192 count: *mut usize,
20193 ) -> *mut *mut BNTag;
20194}
20195unsafe extern "C" {
20196 pub fn BNGetAutoDataTagsOfType(
20197 view: *mut BNBinaryView,
20198 addr: u64,
20199 tagType: *mut BNTagType,
20200 count: *mut usize,
20201 ) -> *mut *mut BNTag;
20202}
20203unsafe extern "C" {
20204 pub fn BNGetUserDataTagsOfType(
20205 view: *mut BNBinaryView,
20206 addr: u64,
20207 tagType: *mut BNTagType,
20208 count: *mut usize,
20209 ) -> *mut *mut BNTag;
20210}
20211unsafe extern "C" {
20212 pub fn BNGetDataTagsInRange(
20213 view: *mut BNBinaryView,
20214 start: u64,
20215 end: u64,
20216 count: *mut usize,
20217 ) -> *mut BNTagReference;
20218}
20219unsafe extern "C" {
20220 pub fn BNGetAutoDataTagsInRange(
20221 view: *mut BNBinaryView,
20222 start: u64,
20223 end: u64,
20224 count: *mut usize,
20225 ) -> *mut BNTagReference;
20226}
20227unsafe extern "C" {
20228 pub fn BNGetUserDataTagsInRange(
20229 view: *mut BNBinaryView,
20230 start: u64,
20231 end: u64,
20232 count: *mut usize,
20233 ) -> *mut BNTagReference;
20234}
20235unsafe extern "C" {
20236 pub fn BNAddAutoDataTag(view: *mut BNBinaryView, addr: u64, tag: *mut BNTag);
20237}
20238unsafe extern "C" {
20239 pub fn BNRemoveAutoDataTag(view: *mut BNBinaryView, addr: u64, tag: *mut BNTag);
20240}
20241unsafe extern "C" {
20242 pub fn BNRemoveAutoDataTagsOfType(view: *mut BNBinaryView, addr: u64, tagType: *mut BNTagType);
20243}
20244unsafe extern "C" {
20245 pub fn BNAddUserDataTag(view: *mut BNBinaryView, addr: u64, tag: *mut BNTag);
20246}
20247unsafe extern "C" {
20248 pub fn BNRemoveUserDataTag(view: *mut BNBinaryView, addr: u64, tag: *mut BNTag);
20249}
20250unsafe extern "C" {
20251 pub fn BNRemoveUserDataTagsOfType(view: *mut BNBinaryView, addr: u64, tagType: *mut BNTagType);
20252}
20253unsafe extern "C" {
20254 pub fn BNGetTagReferencesOfTypeCount(view: *mut BNBinaryView, tagType: *mut BNTagType)
20255 -> usize;
20256}
20257unsafe extern "C" {
20258 pub fn BNGetAllTagReferencesOfTypeCount(
20259 view: *mut BNBinaryView,
20260 tagType: *mut BNTagType,
20261 ) -> usize;
20262}
20263unsafe extern "C" {
20264 pub fn BNGetAllTagReferenceTypeCounts(
20265 view: *mut BNBinaryView,
20266 tagTypes: *mut *mut *mut BNTagType,
20267 counts: *mut *mut usize,
20268 count: *mut usize,
20269 );
20270}
20271unsafe extern "C" {
20272 pub fn BNFreeTagReferenceTypeCounts(
20273 tagTypes: *mut *mut BNTagType,
20274 counts: *mut usize,
20275 count: usize,
20276 );
20277}
20278unsafe extern "C" {
20279 pub fn BNGetFunctionAllTagReferences(
20280 func: *mut BNFunction,
20281 count: *mut usize,
20282 ) -> *mut BNTagReference;
20283}
20284unsafe extern "C" {
20285 pub fn BNGetFunctionTagReferencesOfType(
20286 func: *mut BNFunction,
20287 tagType: *mut BNTagType,
20288 count: *mut usize,
20289 ) -> *mut BNTagReference;
20290}
20291unsafe extern "C" {
20292 pub fn BNGetAddressTagReferences(
20293 func: *mut BNFunction,
20294 count: *mut usize,
20295 ) -> *mut BNTagReference;
20296}
20297unsafe extern "C" {
20298 pub fn BNGetAutoAddressTagReferences(
20299 func: *mut BNFunction,
20300 count: *mut usize,
20301 ) -> *mut BNTagReference;
20302}
20303unsafe extern "C" {
20304 pub fn BNGetUserAddressTagReferences(
20305 func: *mut BNFunction,
20306 count: *mut usize,
20307 ) -> *mut BNTagReference;
20308}
20309unsafe extern "C" {
20310 pub fn BNGetAddressTags(
20311 func: *mut BNFunction,
20312 arch: *mut BNArchitecture,
20313 addr: u64,
20314 count: *mut usize,
20315 ) -> *mut *mut BNTag;
20316}
20317unsafe extern "C" {
20318 pub fn BNGetAutoAddressTags(
20319 func: *mut BNFunction,
20320 arch: *mut BNArchitecture,
20321 addr: u64,
20322 count: *mut usize,
20323 ) -> *mut *mut BNTag;
20324}
20325unsafe extern "C" {
20326 pub fn BNGetUserAddressTags(
20327 func: *mut BNFunction,
20328 arch: *mut BNArchitecture,
20329 addr: u64,
20330 count: *mut usize,
20331 ) -> *mut *mut BNTag;
20332}
20333unsafe extern "C" {
20334 pub fn BNGetAddressTagsOfType(
20335 func: *mut BNFunction,
20336 arch: *mut BNArchitecture,
20337 addr: u64,
20338 tagType: *mut BNTagType,
20339 count: *mut usize,
20340 ) -> *mut *mut BNTag;
20341}
20342unsafe extern "C" {
20343 pub fn BNGetAutoAddressTagsOfType(
20344 func: *mut BNFunction,
20345 arch: *mut BNArchitecture,
20346 addr: u64,
20347 tagType: *mut BNTagType,
20348 count: *mut usize,
20349 ) -> *mut *mut BNTag;
20350}
20351unsafe extern "C" {
20352 pub fn BNGetUserAddressTagsOfType(
20353 func: *mut BNFunction,
20354 arch: *mut BNArchitecture,
20355 addr: u64,
20356 tagType: *mut BNTagType,
20357 count: *mut usize,
20358 ) -> *mut *mut BNTag;
20359}
20360unsafe extern "C" {
20361 pub fn BNGetAddressTagsInRange(
20362 func: *mut BNFunction,
20363 arch: *mut BNArchitecture,
20364 start: u64,
20365 end: u64,
20366 count: *mut usize,
20367 ) -> *mut BNTagReference;
20368}
20369unsafe extern "C" {
20370 pub fn BNGetAutoAddressTagsInRange(
20371 func: *mut BNFunction,
20372 arch: *mut BNArchitecture,
20373 start: u64,
20374 end: u64,
20375 count: *mut usize,
20376 ) -> *mut BNTagReference;
20377}
20378unsafe extern "C" {
20379 pub fn BNGetUserAddressTagsInRange(
20380 func: *mut BNFunction,
20381 arch: *mut BNArchitecture,
20382 start: u64,
20383 end: u64,
20384 count: *mut usize,
20385 ) -> *mut BNTagReference;
20386}
20387unsafe extern "C" {
20388 pub fn BNAddAutoAddressTag(
20389 func: *mut BNFunction,
20390 arch: *mut BNArchitecture,
20391 addr: u64,
20392 tag: *mut BNTag,
20393 );
20394}
20395unsafe extern "C" {
20396 pub fn BNRemoveAutoAddressTag(
20397 func: *mut BNFunction,
20398 arch: *mut BNArchitecture,
20399 addr: u64,
20400 tag: *mut BNTag,
20401 );
20402}
20403unsafe extern "C" {
20404 pub fn BNRemoveAutoAddressTagsOfType(
20405 func: *mut BNFunction,
20406 arch: *mut BNArchitecture,
20407 addr: u64,
20408 tagType: *mut BNTagType,
20409 );
20410}
20411unsafe extern "C" {
20412 pub fn BNAddUserAddressTag(
20413 func: *mut BNFunction,
20414 arch: *mut BNArchitecture,
20415 addr: u64,
20416 tag: *mut BNTag,
20417 );
20418}
20419unsafe extern "C" {
20420 pub fn BNRemoveUserAddressTag(
20421 func: *mut BNFunction,
20422 arch: *mut BNArchitecture,
20423 addr: u64,
20424 tag: *mut BNTag,
20425 );
20426}
20427unsafe extern "C" {
20428 pub fn BNRemoveUserAddressTagsOfType(
20429 func: *mut BNFunction,
20430 arch: *mut BNArchitecture,
20431 addr: u64,
20432 tagType: *mut BNTagType,
20433 );
20434}
20435unsafe extern "C" {
20436 pub fn BNGetFunctionTagReferences(
20437 func: *mut BNFunction,
20438 count: *mut usize,
20439 ) -> *mut BNTagReference;
20440}
20441unsafe extern "C" {
20442 pub fn BNGetAutoFunctionTagReferences(
20443 func: *mut BNFunction,
20444 count: *mut usize,
20445 ) -> *mut BNTagReference;
20446}
20447unsafe extern "C" {
20448 pub fn BNGetUserFunctionTagReferences(
20449 func: *mut BNFunction,
20450 count: *mut usize,
20451 ) -> *mut BNTagReference;
20452}
20453unsafe extern "C" {
20454 pub fn BNGetFunctionTags(func: *mut BNFunction, count: *mut usize) -> *mut *mut BNTag;
20455}
20456unsafe extern "C" {
20457 pub fn BNGetAutoFunctionTags(func: *mut BNFunction, count: *mut usize) -> *mut *mut BNTag;
20458}
20459unsafe extern "C" {
20460 pub fn BNGetUserFunctionTags(func: *mut BNFunction, count: *mut usize) -> *mut *mut BNTag;
20461}
20462unsafe extern "C" {
20463 pub fn BNGetFunctionTagsOfType(
20464 func: *mut BNFunction,
20465 tagType: *mut BNTagType,
20466 count: *mut usize,
20467 ) -> *mut *mut BNTag;
20468}
20469unsafe extern "C" {
20470 pub fn BNGetAutoFunctionTagsOfType(
20471 func: *mut BNFunction,
20472 tagType: *mut BNTagType,
20473 count: *mut usize,
20474 ) -> *mut *mut BNTag;
20475}
20476unsafe extern "C" {
20477 pub fn BNGetUserFunctionTagsOfType(
20478 func: *mut BNFunction,
20479 tagType: *mut BNTagType,
20480 count: *mut usize,
20481 ) -> *mut *mut BNTag;
20482}
20483unsafe extern "C" {
20484 pub fn BNAddAutoFunctionTag(func: *mut BNFunction, tag: *mut BNTag);
20485}
20486unsafe extern "C" {
20487 pub fn BNRemoveAutoFunctionTag(func: *mut BNFunction, tag: *mut BNTag);
20488}
20489unsafe extern "C" {
20490 pub fn BNRemoveAutoFunctionTagsOfType(func: *mut BNFunction, tagType: *mut BNTagType);
20491}
20492unsafe extern "C" {
20493 pub fn BNAddUserFunctionTag(func: *mut BNFunction, tag: *mut BNTag);
20494}
20495unsafe extern "C" {
20496 pub fn BNRemoveUserFunctionTag(func: *mut BNFunction, tag: *mut BNTag);
20497}
20498unsafe extern "C" {
20499 pub fn BNRemoveUserFunctionTagsOfType(func: *mut BNFunction, tagType: *mut BNTagType);
20500}
20501unsafe extern "C" {
20502 pub fn BNGetFunctionAnalysisPerformanceInfo(
20503 func: *mut BNFunction,
20504 count: *mut usize,
20505 ) -> *mut BNPerformanceInfo;
20506}
20507unsafe extern "C" {
20508 pub fn BNFreeAnalysisPerformanceInfo(info: *mut BNPerformanceInfo, count: usize);
20509}
20510unsafe extern "C" {
20511 pub fn BNGetUnresolvedStackAdjustmentGraph(func: *mut BNFunction) -> *mut BNFlowGraph;
20512}
20513unsafe extern "C" {
20514 pub fn BNSetUserVariableValue(
20515 func: *mut BNFunction,
20516 var: *const BNVariable,
20517 defSite: *const BNArchitectureAndAddress,
20518 after: bool,
20519 value: *const BNPossibleValueSet,
20520 );
20521}
20522unsafe extern "C" {
20523 pub fn BNClearUserVariableValue(
20524 func: *mut BNFunction,
20525 var: *const BNVariable,
20526 defSite: *const BNArchitectureAndAddress,
20527 after: bool,
20528 );
20529}
20530unsafe extern "C" {
20531 pub fn BNGetAllUserVariableValues(
20532 func: *mut BNFunction,
20533 count: *mut usize,
20534 ) -> *mut BNUserVariableValue;
20535}
20536unsafe extern "C" {
20537 pub fn BNFreeUserVariableValues(result: *mut BNUserVariableValue);
20538}
20539unsafe extern "C" {
20540 pub fn BNParsePossibleValueSet(
20541 view: *mut BNBinaryView,
20542 valueText: *const ::std::os::raw::c_char,
20543 state: BNRegisterValueType,
20544 result: *mut BNPossibleValueSet,
20545 here: u64,
20546 errors: *mut *mut ::std::os::raw::c_char,
20547 ) -> bool;
20548}
20549unsafe extern "C" {
20550 pub fn BNCreateForcedVariableVersion(
20551 func: *mut BNFunction,
20552 var: *const BNVariable,
20553 defSite: *const BNArchitectureAndAddress,
20554 );
20555}
20556unsafe extern "C" {
20557 pub fn BNClearForcedVariableVersion(
20558 func: *mut BNFunction,
20559 var: *const BNVariable,
20560 defSite: *const BNArchitectureAndAddress,
20561 );
20562}
20563unsafe extern "C" {
20564 pub fn BNSetFieldResolutionForVariableAt(
20565 func: *mut BNFunction,
20566 var: *const BNVariable,
20567 defSite: *const BNArchitectureAndAddress,
20568 info: *const BNFieldResolutionInfo,
20569 );
20570}
20571unsafe extern "C" {
20572 pub fn BNGetFieldResolutionForVariableAt(
20573 func: *mut BNFunction,
20574 var: *const BNVariable,
20575 defSite: *const BNArchitectureAndAddress,
20576 ) -> *mut BNFieldResolutionInfo;
20577}
20578unsafe extern "C" {
20579 pub fn BNGetAllVariableFieldResolutions(
20580 func: *mut BNFunction,
20581 count: *mut usize,
20582 ) -> *mut BNVariableFieldResolutionInfo;
20583}
20584unsafe extern "C" {
20585 pub fn BNFreeVariableFieldResolutions(result: *mut BNVariableFieldResolutionInfo, count: usize);
20586}
20587unsafe extern "C" {
20588 pub fn BNClearFieldResolutionForVariableAt(
20589 func: *mut BNFunction,
20590 var: *const BNVariable,
20591 defSite: *const BNArchitectureAndAddress,
20592 );
20593}
20594unsafe extern "C" {
20595 pub fn BNRequestFunctionDebugReport(func: *mut BNFunction, name: *const ::std::os::raw::c_char);
20596}
20597unsafe extern "C" {
20598 pub fn BNFunctionCheckForDebugReport(
20599 func: *mut BNFunction,
20600 name: *const ::std::os::raw::c_char,
20601 ) -> bool;
20602}
20603unsafe extern "C" {
20604 pub fn BNGetMediumLevelILVariableReferences(
20605 func: *mut BNFunction,
20606 var: *mut BNVariable,
20607 count: *mut usize,
20608 ) -> *mut BNILReferenceSource;
20609}
20610unsafe extern "C" {
20611 pub fn BNGetMediumLevelILVariableReferencesFrom(
20612 func: *mut BNFunction,
20613 arch: *mut BNArchitecture,
20614 address: u64,
20615 count: *mut usize,
20616 ) -> *mut BNVariableReferenceSource;
20617}
20618unsafe extern "C" {
20619 pub fn BNGetMediumLevelILVariableReferencesInRange(
20620 func: *mut BNFunction,
20621 arch: *mut BNArchitecture,
20622 address: u64,
20623 len: u64,
20624 count: *mut usize,
20625 ) -> *mut BNVariableReferenceSource;
20626}
20627unsafe extern "C" {
20628 pub fn BNGetMediumLevelILVariableReferencesIfAvailable(
20629 func: *mut BNFunction,
20630 var: *mut BNVariable,
20631 count: *mut usize,
20632 ) -> *mut BNILReferenceSource;
20633}
20634unsafe extern "C" {
20635 pub fn BNGetMediumLevelILVariableReferencesFromIfAvailable(
20636 func: *mut BNFunction,
20637 arch: *mut BNArchitecture,
20638 address: u64,
20639 count: *mut usize,
20640 ) -> *mut BNVariableReferenceSource;
20641}
20642unsafe extern "C" {
20643 pub fn BNGetMediumLevelILVariableReferencesInRangeIfAvailable(
20644 func: *mut BNFunction,
20645 arch: *mut BNArchitecture,
20646 address: u64,
20647 len: u64,
20648 count: *mut usize,
20649 ) -> *mut BNVariableReferenceSource;
20650}
20651unsafe extern "C" {
20652 pub fn BNGetHighLevelILVariableReferences(
20653 func: *mut BNFunction,
20654 var: *mut BNVariable,
20655 count: *mut usize,
20656 ) -> *mut BNILReferenceSource;
20657}
20658unsafe extern "C" {
20659 pub fn BNGetHighLevelILVariableReferencesFrom(
20660 func: *mut BNFunction,
20661 arch: *mut BNArchitecture,
20662 address: u64,
20663 count: *mut usize,
20664 ) -> *mut BNVariableReferenceSource;
20665}
20666unsafe extern "C" {
20667 pub fn BNGetHighLevelILVariableReferencesInRange(
20668 func: *mut BNFunction,
20669 arch: *mut BNArchitecture,
20670 address: u64,
20671 len: u64,
20672 count: *mut usize,
20673 ) -> *mut BNVariableReferenceSource;
20674}
20675unsafe extern "C" {
20676 pub fn BNGetHighLevelILVariableReferencesIfAvailable(
20677 func: *mut BNFunction,
20678 var: *mut BNVariable,
20679 count: *mut usize,
20680 ) -> *mut BNILReferenceSource;
20681}
20682unsafe extern "C" {
20683 pub fn BNGetHighLevelILVariableReferencesFromIfAvailable(
20684 func: *mut BNFunction,
20685 arch: *mut BNArchitecture,
20686 address: u64,
20687 count: *mut usize,
20688 ) -> *mut BNVariableReferenceSource;
20689}
20690unsafe extern "C" {
20691 pub fn BNGetHighLevelILVariableReferencesInRangeIfAvailable(
20692 func: *mut BNFunction,
20693 arch: *mut BNArchitecture,
20694 address: u64,
20695 len: u64,
20696 count: *mut usize,
20697 ) -> *mut BNVariableReferenceSource;
20698}
20699unsafe extern "C" {
20700 pub fn BNFreeVariableList(vars: *mut BNVariable);
20701}
20702unsafe extern "C" {
20703 pub fn BNFreeVariableReferenceSourceList(vars: *mut BNVariableReferenceSource, count: usize);
20704}
20705unsafe extern "C" {
20706 #[doc = " Analysis Context"]
20707 pub fn BNCreateAnalysisContext() -> *mut BNAnalysisContext;
20708}
20709unsafe extern "C" {
20710 pub fn BNNewAnalysisContextReference(
20711 analysisContext: *mut BNAnalysisContext,
20712 ) -> *mut BNAnalysisContext;
20713}
20714unsafe extern "C" {
20715 pub fn BNFreeAnalysisContext(analysisContext: *mut BNAnalysisContext);
20716}
20717unsafe extern "C" {
20718 pub fn BNAnalysisContextGetBinaryView(
20719 analysisContext: *mut BNAnalysisContext,
20720 ) -> *mut BNBinaryView;
20721}
20722unsafe extern "C" {
20723 pub fn BNAnalysisContextGetFunction(analysisContext: *mut BNAnalysisContext)
20724 -> *mut BNFunction;
20725}
20726unsafe extern "C" {
20727 pub fn BNAnalysisContextGetLiftedILFunction(
20728 analysisContext: *mut BNAnalysisContext,
20729 ) -> *mut BNLowLevelILFunction;
20730}
20731unsafe extern "C" {
20732 pub fn BNAnalysisContextGetLowLevelILFunction(
20733 analysisContext: *mut BNAnalysisContext,
20734 ) -> *mut BNLowLevelILFunction;
20735}
20736unsafe extern "C" {
20737 pub fn BNAnalysisContextGetMediumLevelILFunction(
20738 analysisContext: *mut BNAnalysisContext,
20739 ) -> *mut BNMediumLevelILFunction;
20740}
20741unsafe extern "C" {
20742 pub fn BNAnalysisContextGetHighLevelILFunction(
20743 analysisContext: *mut BNAnalysisContext,
20744 ) -> *mut BNHighLevelILFunction;
20745}
20746unsafe extern "C" {
20747 pub fn BNSetBasicBlockList(
20748 analysisContext: *mut BNAnalysisContext,
20749 basicBlocks: *mut *mut BNBasicBlock,
20750 count: usize,
20751 );
20752}
20753unsafe extern "C" {
20754 pub fn BNSetLiftedILFunction(
20755 analysisContext: *mut BNAnalysisContext,
20756 liftedIL: *mut BNLowLevelILFunction,
20757 );
20758}
20759unsafe extern "C" {
20760 pub fn BNSetLowLevelILFunction(
20761 analysisContext: *mut BNAnalysisContext,
20762 lowLevelIL: *mut BNLowLevelILFunction,
20763 );
20764}
20765unsafe extern "C" {
20766 pub fn BNSetMediumLevelILFunction(
20767 analysisContext: *mut BNAnalysisContext,
20768 mediumLevelIL: *mut BNMediumLevelILFunction,
20769 llilSSAToMLILSSAInstrMap: *mut usize,
20770 instrCount: usize,
20771 llilSSAToMLILSSAExprMap: *mut BNExprMapInfo,
20772 exprCount: usize,
20773 );
20774}
20775unsafe extern "C" {
20776 pub fn BNSetHighLevelILFunction(
20777 analysisContext: *mut BNAnalysisContext,
20778 highLevelIL: *mut BNHighLevelILFunction,
20779 );
20780}
20781unsafe extern "C" {
20782 pub fn BNAnalysisContextInform(
20783 analysisContext: *mut BNAnalysisContext,
20784 request: *const ::std::os::raw::c_char,
20785 ) -> bool;
20786}
20787unsafe extern "C" {
20788 #[doc = " Settings cache access"]
20789 pub fn BNAnalysisContextGetSettingBool(
20790 analysisContext: *mut BNAnalysisContext,
20791 key: *const ::std::os::raw::c_char,
20792 ) -> bool;
20793}
20794unsafe extern "C" {
20795 pub fn BNAnalysisContextGetSettingDouble(
20796 analysisContext: *mut BNAnalysisContext,
20797 key: *const ::std::os::raw::c_char,
20798 ) -> f64;
20799}
20800unsafe extern "C" {
20801 pub fn BNAnalysisContextGetSettingInt64(
20802 analysisContext: *mut BNAnalysisContext,
20803 key: *const ::std::os::raw::c_char,
20804 ) -> i64;
20805}
20806unsafe extern "C" {
20807 pub fn BNAnalysisContextGetSettingUInt64(
20808 analysisContext: *mut BNAnalysisContext,
20809 key: *const ::std::os::raw::c_char,
20810 ) -> u64;
20811}
20812unsafe extern "C" {
20813 pub fn BNAnalysisContextGetSettingString(
20814 analysisContext: *mut BNAnalysisContext,
20815 key: *const ::std::os::raw::c_char,
20816 ) -> *mut ::std::os::raw::c_char;
20817}
20818unsafe extern "C" {
20819 pub fn BNAnalysisContextGetSettingStringList(
20820 analysisContext: *mut BNAnalysisContext,
20821 key: *const ::std::os::raw::c_char,
20822 count: *mut usize,
20823 ) -> *mut *mut ::std::os::raw::c_char;
20824}
20825unsafe extern "C" {
20826 #[doc = " Memory map access"]
20827 pub fn BNAnalysisContextIsValidOffset(
20828 analysisContext: *mut BNAnalysisContext,
20829 offset: u64,
20830 ) -> bool;
20831}
20832unsafe extern "C" {
20833 pub fn BNAnalysisContextIsOffsetReadable(
20834 analysisContext: *mut BNAnalysisContext,
20835 offset: u64,
20836 ) -> bool;
20837}
20838unsafe extern "C" {
20839 pub fn BNAnalysisContextIsOffsetWritable(
20840 analysisContext: *mut BNAnalysisContext,
20841 offset: u64,
20842 ) -> bool;
20843}
20844unsafe extern "C" {
20845 pub fn BNAnalysisContextIsOffsetExecutable(
20846 analysisContext: *mut BNAnalysisContext,
20847 offset: u64,
20848 ) -> bool;
20849}
20850unsafe extern "C" {
20851 pub fn BNAnalysisContextIsOffsetBackedByFile(
20852 analysisContext: *mut BNAnalysisContext,
20853 offset: u64,
20854 ) -> bool;
20855}
20856unsafe extern "C" {
20857 pub fn BNAnalysisContextIsOffsetCodeSemantics(
20858 analysisContext: *mut BNAnalysisContext,
20859 offset: u64,
20860 ) -> bool;
20861}
20862unsafe extern "C" {
20863 pub fn BNAnalysisContextIsOffsetExternSemantics(
20864 analysisContext: *mut BNAnalysisContext,
20865 offset: u64,
20866 ) -> bool;
20867}
20868unsafe extern "C" {
20869 pub fn BNAnalysisContextIsOffsetWritableSemantics(
20870 analysisContext: *mut BNAnalysisContext,
20871 offset: u64,
20872 ) -> bool;
20873}
20874unsafe extern "C" {
20875 pub fn BNAnalysisContextIsOffsetReadOnlySemantics(
20876 analysisContext: *mut BNAnalysisContext,
20877 offset: u64,
20878 ) -> bool;
20879}
20880unsafe extern "C" {
20881 pub fn BNAnalysisContextGetSections(
20882 analysisContext: *mut BNAnalysisContext,
20883 count: *mut usize,
20884 ) -> *mut *mut BNSection;
20885}
20886unsafe extern "C" {
20887 pub fn BNAnalysisContextGetSectionByName(
20888 analysisContext: *mut BNAnalysisContext,
20889 name: *const ::std::os::raw::c_char,
20890 ) -> *mut BNSection;
20891}
20892unsafe extern "C" {
20893 pub fn BNAnalysisContextGetSectionsAt(
20894 analysisContext: *mut BNAnalysisContext,
20895 addr: u64,
20896 count: *mut usize,
20897 ) -> *mut *mut BNSection;
20898}
20899unsafe extern "C" {
20900 pub fn BNAnalysisContextGetStart(analysisContext: *mut BNAnalysisContext) -> u64;
20901}
20902unsafe extern "C" {
20903 pub fn BNAnalysisContextGetEnd(analysisContext: *mut BNAnalysisContext) -> u64;
20904}
20905unsafe extern "C" {
20906 pub fn BNAnalysisContextGetLength(analysisContext: *mut BNAnalysisContext) -> u64;
20907}
20908unsafe extern "C" {
20909 pub fn BNAnalysisContextGetNextValidOffset(
20910 analysisContext: *mut BNAnalysisContext,
20911 offset: u64,
20912 ) -> u64;
20913}
20914unsafe extern "C" {
20915 pub fn BNAnalysisContextGetNextMappedAddress(
20916 analysisContext: *mut BNAnalysisContext,
20917 addr: u64,
20918 flags: u32,
20919 ) -> u64;
20920}
20921unsafe extern "C" {
20922 pub fn BNAnalysisContextGetNextBackedAddress(
20923 analysisContext: *mut BNAnalysisContext,
20924 addr: u64,
20925 flags: u32,
20926 ) -> u64;
20927}
20928unsafe extern "C" {
20929 pub fn BNAnalysisContextGetSegmentAt(
20930 analysisContext: *mut BNAnalysisContext,
20931 addr: u64,
20932 ) -> *mut BNSegment;
20933}
20934unsafe extern "C" {
20935 pub fn BNAnalysisContextGetMappedAddressRanges(
20936 analysisContext: *mut BNAnalysisContext,
20937 count: *mut usize,
20938 ) -> *mut BNAddressRange;
20939}
20940unsafe extern "C" {
20941 pub fn BNAnalysisContextGetBackedAddressRanges(
20942 analysisContext: *mut BNAnalysisContext,
20943 count: *mut usize,
20944 ) -> *mut BNAddressRange;
20945}
20946unsafe extern "C" {
20947 #[doc = " Activity"]
20948 pub fn BNCreateActivity(
20949 configuration: *const ::std::os::raw::c_char,
20950 ctxt: *mut ::std::os::raw::c_void,
20951 action: ::std::option::Option<
20952 unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void, arg2: *mut BNAnalysisContext),
20953 >,
20954 ) -> *mut BNActivity;
20955}
20956unsafe extern "C" {
20957 pub fn BNCreateActivityWithEligibility(
20958 configuration: *const ::std::os::raw::c_char,
20959 ctxt: *mut ::std::os::raw::c_void,
20960 action: ::std::option::Option<
20961 unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void, arg2: *mut BNAnalysisContext),
20962 >,
20963 eligibilityHandler: ::std::option::Option<
20964 unsafe extern "C" fn(
20965 arg1: *mut ::std::os::raw::c_void,
20966 arg2: *mut BNActivity,
20967 arg3: *mut BNAnalysisContext,
20968 ) -> bool,
20969 >,
20970 ) -> *mut BNActivity;
20971}
20972unsafe extern "C" {
20973 pub fn BNNewActivityReference(activity: *mut BNActivity) -> *mut BNActivity;
20974}
20975unsafe extern "C" {
20976 pub fn BNFreeActivity(activity: *mut BNActivity);
20977}
20978unsafe extern "C" {
20979 pub fn BNActivityGetName(activity: *mut BNActivity) -> *mut ::std::os::raw::c_char;
20980}
20981unsafe extern "C" {
20982 #[doc = " Workflow"]
20983 pub fn BNCreateWorkflow(name: *const ::std::os::raw::c_char) -> *mut BNWorkflow;
20984}
20985unsafe extern "C" {
20986 pub fn BNNewWorkflowReference(workflow: *mut BNWorkflow) -> *mut BNWorkflow;
20987}
20988unsafe extern "C" {
20989 pub fn BNFreeWorkflow(workflow: *mut BNWorkflow);
20990}
20991unsafe extern "C" {
20992 pub fn BNGetWorkflowList(count: *mut usize) -> *mut *mut BNWorkflow;
20993}
20994unsafe extern "C" {
20995 pub fn BNFreeWorkflowList(workflows: *mut *mut BNWorkflow, count: usize);
20996}
20997unsafe extern "C" {
20998 pub fn BNWorkflowGet(name: *const ::std::os::raw::c_char) -> *mut BNWorkflow;
20999}
21000unsafe extern "C" {
21001 pub fn BNWorkflowGetOrCreate(name: *const ::std::os::raw::c_char) -> *mut BNWorkflow;
21002}
21003unsafe extern "C" {
21004 pub fn BNRegisterWorkflow(
21005 workflow: *mut BNWorkflow,
21006 configuration: *const ::std::os::raw::c_char,
21007 ) -> bool;
21008}
21009unsafe extern "C" {
21010 pub fn BNWorkflowClone(
21011 workflow: *mut BNWorkflow,
21012 name: *const ::std::os::raw::c_char,
21013 activity: *const ::std::os::raw::c_char,
21014 ) -> *mut BNWorkflow;
21015}
21016unsafe extern "C" {
21017 pub fn BNWorkflowRegisterActivity(
21018 workflow: *mut BNWorkflow,
21019 activity: *mut BNActivity,
21020 subactivities: *mut *const ::std::os::raw::c_char,
21021 size: usize,
21022 ) -> *mut BNActivity;
21023}
21024unsafe extern "C" {
21025 pub fn BNWorkflowContains(
21026 workflow: *mut BNWorkflow,
21027 activity: *const ::std::os::raw::c_char,
21028 ) -> bool;
21029}
21030unsafe extern "C" {
21031 pub fn BNWorkflowGetConfiguration(
21032 workflow: *mut BNWorkflow,
21033 activity: *const ::std::os::raw::c_char,
21034 ) -> *mut ::std::os::raw::c_char;
21035}
21036unsafe extern "C" {
21037 pub fn BNGetWorkflowName(workflow: *mut BNWorkflow) -> *mut ::std::os::raw::c_char;
21038}
21039unsafe extern "C" {
21040 pub fn BNWorkflowIsRegistered(workflow: *mut BNWorkflow) -> bool;
21041}
21042unsafe extern "C" {
21043 pub fn BNWorkflowSize(workflow: *mut BNWorkflow) -> usize;
21044}
21045unsafe extern "C" {
21046 pub fn BNWorkflowGetActivity(
21047 workflow: *mut BNWorkflow,
21048 activity: *const ::std::os::raw::c_char,
21049 ) -> *mut BNActivity;
21050}
21051unsafe extern "C" {
21052 pub fn BNWorkflowGetActivityRoots(
21053 workflow: *mut BNWorkflow,
21054 activity: *const ::std::os::raw::c_char,
21055 inoutSize: *mut usize,
21056 ) -> *mut *const ::std::os::raw::c_char;
21057}
21058unsafe extern "C" {
21059 pub fn BNWorkflowGetSubactivities(
21060 workflow: *mut BNWorkflow,
21061 activity: *const ::std::os::raw::c_char,
21062 immediate: bool,
21063 inoutSize: *mut usize,
21064 ) -> *mut *const ::std::os::raw::c_char;
21065}
21066unsafe extern "C" {
21067 pub fn BNWorkflowAssignSubactivities(
21068 workflow: *mut BNWorkflow,
21069 activity: *const ::std::os::raw::c_char,
21070 activities: *mut *const ::std::os::raw::c_char,
21071 size: usize,
21072 ) -> bool;
21073}
21074unsafe extern "C" {
21075 pub fn BNWorkflowClear(workflow: *mut BNWorkflow) -> bool;
21076}
21077unsafe extern "C" {
21078 pub fn BNWorkflowInsert(
21079 workflow: *mut BNWorkflow,
21080 activity: *const ::std::os::raw::c_char,
21081 activities: *mut *const ::std::os::raw::c_char,
21082 size: usize,
21083 ) -> bool;
21084}
21085unsafe extern "C" {
21086 pub fn BNWorkflowInsertAfter(
21087 workflow: *mut BNWorkflow,
21088 activity: *const ::std::os::raw::c_char,
21089 activities: *mut *const ::std::os::raw::c_char,
21090 size: usize,
21091 ) -> bool;
21092}
21093unsafe extern "C" {
21094 pub fn BNWorkflowRemove(
21095 workflow: *mut BNWorkflow,
21096 activity: *const ::std::os::raw::c_char,
21097 ) -> bool;
21098}
21099unsafe extern "C" {
21100 pub fn BNWorkflowReplace(
21101 workflow: *mut BNWorkflow,
21102 activity: *const ::std::os::raw::c_char,
21103 newActivity: *const ::std::os::raw::c_char,
21104 ) -> bool;
21105}
21106unsafe extern "C" {
21107 pub fn BNWorkflowGetGraph(
21108 workflow: *mut BNWorkflow,
21109 activity: *const ::std::os::raw::c_char,
21110 sequential: bool,
21111 ) -> *mut BNFlowGraph;
21112}
21113unsafe extern "C" {
21114 pub fn BNWorkflowShowReport(workflow: *mut BNWorkflow, name: *const ::std::os::raw::c_char);
21115}
21116unsafe extern "C" {
21117 pub fn BNWorkflowGetEligibilitySettings(
21118 workflow: *mut BNWorkflow,
21119 inoutSize: *mut usize,
21120 ) -> *mut *const ::std::os::raw::c_char;
21121}
21122unsafe extern "C" {
21123 #[doc = " BinaryView Workflow Machine"]
21124 pub fn BNGetWorkflowForBinaryView(view: *mut BNBinaryView) -> *mut BNWorkflow;
21125}
21126unsafe extern "C" {
21127 pub fn BNPostWorkflowRequestForBinaryView(
21128 view: *mut BNBinaryView,
21129 request: *const ::std::os::raw::c_char,
21130 ) -> *mut ::std::os::raw::c_char;
21131}
21132unsafe extern "C" {
21133 pub fn BNGetWorkflowGraphForBinaryView(
21134 view: *mut BNBinaryView,
21135 name: *const ::std::os::raw::c_char,
21136 sequential: bool,
21137 ) -> *mut BNFlowGraph;
21138}
21139unsafe extern "C" {
21140 pub fn BNShowWorkflowReportForBinaryView(
21141 view: *mut BNBinaryView,
21142 name: *const ::std::os::raw::c_char,
21143 );
21144}
21145unsafe extern "C" {
21146 #[doc = " Function Workflow Machine"]
21147 pub fn BNGetWorkflowForFunction(func: *mut BNFunction) -> *mut BNWorkflow;
21148}
21149unsafe extern "C" {
21150 pub fn BNPostWorkflowRequestForFunction(
21151 func: *mut BNFunction,
21152 request: *const ::std::os::raw::c_char,
21153 ) -> *mut ::std::os::raw::c_char;
21154}
21155unsafe extern "C" {
21156 pub fn BNGetWorkflowGraphForFunction(
21157 func: *mut BNFunction,
21158 name: *const ::std::os::raw::c_char,
21159 sequential: bool,
21160 ) -> *mut BNFlowGraph;
21161}
21162unsafe extern "C" {
21163 pub fn BNShowWorkflowReportForFunction(
21164 func: *mut BNFunction,
21165 name: *const ::std::os::raw::c_char,
21166 );
21167}
21168unsafe extern "C" {
21169 #[doc = " Provenance"]
21170 pub fn BNGetProvenanceString(func: *mut BNFunction) -> *mut ::std::os::raw::c_char;
21171}
21172unsafe extern "C" {
21173 #[doc = " Disassembly settings"]
21174 pub fn BNCreateDisassemblySettings() -> *mut BNDisassemblySettings;
21175}
21176unsafe extern "C" {
21177 pub fn BNDefaultDisassemblySettings() -> *mut BNDisassemblySettings;
21178}
21179unsafe extern "C" {
21180 pub fn BNDefaultGraphDisassemblySettings() -> *mut BNDisassemblySettings;
21181}
21182unsafe extern "C" {
21183 pub fn BNDefaultLinearDisassemblySettings() -> *mut BNDisassemblySettings;
21184}
21185unsafe extern "C" {
21186 pub fn BNNewDisassemblySettingsReference(
21187 settings: *mut BNDisassemblySettings,
21188 ) -> *mut BNDisassemblySettings;
21189}
21190unsafe extern "C" {
21191 pub fn BNDuplicateDisassemblySettings(
21192 settings: *mut BNDisassemblySettings,
21193 ) -> *mut BNDisassemblySettings;
21194}
21195unsafe extern "C" {
21196 pub fn BNFreeDisassemblySettings(settings: *mut BNDisassemblySettings);
21197}
21198unsafe extern "C" {
21199 pub fn BNIsDisassemblySettingsOptionSet(
21200 settings: *mut BNDisassemblySettings,
21201 option: BNDisassemblyOption,
21202 ) -> bool;
21203}
21204unsafe extern "C" {
21205 pub fn BNSetDisassemblySettingsOption(
21206 settings: *mut BNDisassemblySettings,
21207 option: BNDisassemblyOption,
21208 state: bool,
21209 );
21210}
21211unsafe extern "C" {
21212 pub fn BNGetDisassemblyWidth(settings: *mut BNDisassemblySettings) -> usize;
21213}
21214unsafe extern "C" {
21215 pub fn BNSetDisassemblyWidth(settings: *mut BNDisassemblySettings, width: usize);
21216}
21217unsafe extern "C" {
21218 pub fn BNGetDisassemblyMaximumSymbolWidth(settings: *mut BNDisassemblySettings) -> usize;
21219}
21220unsafe extern "C" {
21221 pub fn BNSetDisassemblyMaximumSymbolWidth(settings: *mut BNDisassemblySettings, width: usize);
21222}
21223unsafe extern "C" {
21224 pub fn BNGetDisassemblyGutterWidth(settings: *mut BNDisassemblySettings) -> usize;
21225}
21226unsafe extern "C" {
21227 pub fn BNSetDisassemblyGutterWidth(settings: *mut BNDisassemblySettings, width: usize);
21228}
21229unsafe extern "C" {
21230 pub fn BNGetDisassemblyAddressMode(
21231 settings: *mut BNDisassemblySettings,
21232 ) -> BNDisassemblyAddressMode;
21233}
21234unsafe extern "C" {
21235 pub fn BNSetDisassemblyAddressMode(
21236 settings: *mut BNDisassemblySettings,
21237 mode: BNDisassemblyAddressMode,
21238 );
21239}
21240unsafe extern "C" {
21241 pub fn BNGetDisassemblyAddressBaseOffset(settings: *mut BNDisassemblySettings) -> u64;
21242}
21243unsafe extern "C" {
21244 pub fn BNSetDisassemblyAddressBaseOffset(
21245 settings: *mut BNDisassemblySettings,
21246 addressBaseOffset: u64,
21247 );
21248}
21249unsafe extern "C" {
21250 pub fn BNGetDisassemblyCallParameterHints(
21251 settings: *mut BNDisassemblySettings,
21252 ) -> BNDisassemblyCallParameterHints;
21253}
21254unsafe extern "C" {
21255 pub fn BNSetDisassemblyCallParameterHints(
21256 settings: *mut BNDisassemblySettings,
21257 hints: BNDisassemblyCallParameterHints,
21258 );
21259}
21260unsafe extern "C" {
21261 pub fn BNGetDisassemblyBlockLabels(
21262 settings: *mut BNDisassemblySettings,
21263 ) -> BNDisassemblyBlockLabels;
21264}
21265unsafe extern "C" {
21266 pub fn BNSetDisassemblyBlockLabels(
21267 settings: *mut BNDisassemblySettings,
21268 labels: BNDisassemblyBlockLabels,
21269 );
21270}
21271unsafe extern "C" {
21272 #[doc = " Flow graphs"]
21273 pub fn BNCreateFlowGraph() -> *mut BNFlowGraph;
21274}
21275unsafe extern "C" {
21276 pub fn BNCreateFunctionGraph(
21277 func: *mut BNFunction,
21278 type_: BNFunctionViewType,
21279 settings: *mut BNDisassemblySettings,
21280 ) -> *mut BNFlowGraph;
21281}
21282unsafe extern "C" {
21283 pub fn BNCreateLowLevelILFunctionGraph(
21284 func: *mut BNLowLevelILFunction,
21285 settings: *mut BNDisassemblySettings,
21286 ) -> *mut BNFlowGraph;
21287}
21288unsafe extern "C" {
21289 pub fn BNCreateMediumLevelILFunctionGraph(
21290 func: *mut BNMediumLevelILFunction,
21291 settings: *mut BNDisassemblySettings,
21292 ) -> *mut BNFlowGraph;
21293}
21294unsafe extern "C" {
21295 pub fn BNCreateHighLevelILFunctionGraph(
21296 func: *mut BNHighLevelILFunction,
21297 settings: *mut BNDisassemblySettings,
21298 ) -> *mut BNFlowGraph;
21299}
21300unsafe extern "C" {
21301 pub fn BNCreateImmediateFunctionGraph(
21302 func: *mut BNFunction,
21303 type_: BNFunctionViewType,
21304 settings: *mut BNDisassemblySettings,
21305 ) -> *mut BNFlowGraph;
21306}
21307unsafe extern "C" {
21308 pub fn BNCreateLowLevelILImmediateFunctionGraph(
21309 func: *mut BNLowLevelILFunction,
21310 settings: *mut BNDisassemblySettings,
21311 ) -> *mut BNFlowGraph;
21312}
21313unsafe extern "C" {
21314 pub fn BNCreateMediumLevelILImmediateFunctionGraph(
21315 func: *mut BNMediumLevelILFunction,
21316 settings: *mut BNDisassemblySettings,
21317 ) -> *mut BNFlowGraph;
21318}
21319unsafe extern "C" {
21320 pub fn BNCreateHighLevelILImmediateFunctionGraph(
21321 func: *mut BNHighLevelILFunction,
21322 settings: *mut BNDisassemblySettings,
21323 ) -> *mut BNFlowGraph;
21324}
21325unsafe extern "C" {
21326 pub fn BNCreateCustomFlowGraph(callbacks: *mut BNCustomFlowGraph) -> *mut BNFlowGraph;
21327}
21328unsafe extern "C" {
21329 pub fn BNNewFlowGraphReference(graph: *mut BNFlowGraph) -> *mut BNFlowGraph;
21330}
21331unsafe extern "C" {
21332 pub fn BNFreeFlowGraph(graph: *mut BNFlowGraph);
21333}
21334unsafe extern "C" {
21335 pub fn BNGetFunctionForFlowGraph(graph: *mut BNFlowGraph) -> *mut BNFunction;
21336}
21337unsafe extern "C" {
21338 pub fn BNSetFunctionForFlowGraph(graph: *mut BNFlowGraph, func: *mut BNFunction);
21339}
21340unsafe extern "C" {
21341 pub fn BNGetViewForFlowGraph(graph: *mut BNFlowGraph) -> *mut BNBinaryView;
21342}
21343unsafe extern "C" {
21344 pub fn BNSetViewForFlowGraph(graph: *mut BNFlowGraph, view: *mut BNBinaryView);
21345}
21346unsafe extern "C" {
21347 pub fn BNGetHorizontalFlowGraphNodeMargin(graph: *mut BNFlowGraph) -> ::std::os::raw::c_int;
21348}
21349unsafe extern "C" {
21350 pub fn BNGetVerticalFlowGraphNodeMargin(graph: *mut BNFlowGraph) -> ::std::os::raw::c_int;
21351}
21352unsafe extern "C" {
21353 pub fn BNSetFlowGraphNodeMargins(
21354 graph: *mut BNFlowGraph,
21355 horiz: ::std::os::raw::c_int,
21356 vert: ::std::os::raw::c_int,
21357 );
21358}
21359unsafe extern "C" {
21360 pub fn BNStartFlowGraphLayout(
21361 graph: *mut BNFlowGraph,
21362 ctxt: *mut ::std::os::raw::c_void,
21363 func: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
21364 ) -> *mut BNFlowGraphLayoutRequest;
21365}
21366unsafe extern "C" {
21367 pub fn BNIsFlowGraphLayoutComplete(graph: *mut BNFlowGraph) -> bool;
21368}
21369unsafe extern "C" {
21370 pub fn BNNewFlowGraphLayoutRequestReference(
21371 layout: *mut BNFlowGraphLayoutRequest,
21372 ) -> *mut BNFlowGraphLayoutRequest;
21373}
21374unsafe extern "C" {
21375 pub fn BNFreeFlowGraphLayoutRequest(layout: *mut BNFlowGraphLayoutRequest);
21376}
21377unsafe extern "C" {
21378 pub fn BNIsFlowGraphLayoutRequestComplete(layout: *mut BNFlowGraphLayoutRequest) -> bool;
21379}
21380unsafe extern "C" {
21381 pub fn BNGetGraphForFlowGraphLayoutRequest(
21382 layout: *mut BNFlowGraphLayoutRequest,
21383 ) -> *mut BNFlowGraph;
21384}
21385unsafe extern "C" {
21386 pub fn BNAbortFlowGraphLayoutRequest(graph: *mut BNFlowGraphLayoutRequest);
21387}
21388unsafe extern "C" {
21389 pub fn BNIsILFlowGraph(graph: *mut BNFlowGraph) -> bool;
21390}
21391unsafe extern "C" {
21392 pub fn BNIsLowLevelILFlowGraph(graph: *mut BNFlowGraph) -> bool;
21393}
21394unsafe extern "C" {
21395 pub fn BNIsMediumLevelILFlowGraph(graph: *mut BNFlowGraph) -> bool;
21396}
21397unsafe extern "C" {
21398 pub fn BNIsHighLevelILFlowGraph(graph: *mut BNFlowGraph) -> bool;
21399}
21400unsafe extern "C" {
21401 pub fn BNGetFlowGraphLowLevelILFunction(graph: *mut BNFlowGraph) -> *mut BNLowLevelILFunction;
21402}
21403unsafe extern "C" {
21404 pub fn BNGetFlowGraphMediumLevelILFunction(
21405 graph: *mut BNFlowGraph,
21406 ) -> *mut BNMediumLevelILFunction;
21407}
21408unsafe extern "C" {
21409 pub fn BNGetFlowGraphHighLevelILFunction(graph: *mut BNFlowGraph)
21410 -> *mut BNHighLevelILFunction;
21411}
21412unsafe extern "C" {
21413 pub fn BNSetFlowGraphLowLevelILFunction(
21414 graph: *mut BNFlowGraph,
21415 func: *mut BNLowLevelILFunction,
21416 );
21417}
21418unsafe extern "C" {
21419 pub fn BNSetFlowGraphMediumLevelILFunction(
21420 graph: *mut BNFlowGraph,
21421 func: *mut BNMediumLevelILFunction,
21422 );
21423}
21424unsafe extern "C" {
21425 pub fn BNSetFlowGraphHighLevelILFunction(
21426 graph: *mut BNFlowGraph,
21427 func: *mut BNHighLevelILFunction,
21428 );
21429}
21430unsafe extern "C" {
21431 pub fn BNGetFlowGraphNodes(
21432 graph: *mut BNFlowGraph,
21433 count: *mut usize,
21434 ) -> *mut *mut BNFlowGraphNode;
21435}
21436unsafe extern "C" {
21437 pub fn BNGetFlowGraphNode(graph: *mut BNFlowGraph, i: usize) -> *mut BNFlowGraphNode;
21438}
21439unsafe extern "C" {
21440 pub fn BNGetFlowGraphNodesInRegion(
21441 graph: *mut BNFlowGraph,
21442 left: ::std::os::raw::c_int,
21443 top: ::std::os::raw::c_int,
21444 right: ::std::os::raw::c_int,
21445 bottom: ::std::os::raw::c_int,
21446 count: *mut usize,
21447 ) -> *mut *mut BNFlowGraphNode;
21448}
21449unsafe extern "C" {
21450 pub fn BNFreeFlowGraphNodeList(nodes: *mut *mut BNFlowGraphNode, count: usize);
21451}
21452unsafe extern "C" {
21453 pub fn BNGetFlowGraphNodeCount(graph: *mut BNFlowGraph) -> usize;
21454}
21455unsafe extern "C" {
21456 pub fn BNFlowGraphHasNodes(graph: *mut BNFlowGraph) -> bool;
21457}
21458unsafe extern "C" {
21459 pub fn BNAddFlowGraphNode(graph: *mut BNFlowGraph, node: *mut BNFlowGraphNode) -> usize;
21460}
21461unsafe extern "C" {
21462 pub fn BNReplaceFlowGraphNode(graph: *mut BNFlowGraph, i: usize, newNode: *mut BNFlowGraphNode);
21463}
21464unsafe extern "C" {
21465 pub fn BNClearFlowGraphNodes(graph: *mut BNFlowGraph);
21466}
21467unsafe extern "C" {
21468 pub fn BNGetFlowGraphWidth(graph: *mut BNFlowGraph) -> ::std::os::raw::c_int;
21469}
21470unsafe extern "C" {
21471 pub fn BNGetFlowGraphHeight(graph: *mut BNFlowGraph) -> ::std::os::raw::c_int;
21472}
21473unsafe extern "C" {
21474 pub fn BNFlowGraphSetWidth(graph: *mut BNFlowGraph, width: ::std::os::raw::c_int);
21475}
21476unsafe extern "C" {
21477 pub fn BNFlowGraphSetHeight(graph: *mut BNFlowGraph, height: ::std::os::raw::c_int);
21478}
21479unsafe extern "C" {
21480 pub fn BNGetFlowGraphRenderLayers(
21481 graph: *mut BNFlowGraph,
21482 count: *mut usize,
21483 ) -> *mut *mut BNRenderLayer;
21484}
21485unsafe extern "C" {
21486 pub fn BNAddFlowGraphRenderLayer(graph: *mut BNFlowGraph, layer: *mut BNRenderLayer);
21487}
21488unsafe extern "C" {
21489 pub fn BNRemoveFlowGraphRenderLayer(graph: *mut BNFlowGraph, layer: *mut BNRenderLayer);
21490}
21491unsafe extern "C" {
21492 pub fn BNCreateFlowGraphNode(graph: *mut BNFlowGraph) -> *mut BNFlowGraphNode;
21493}
21494unsafe extern "C" {
21495 pub fn BNNewFlowGraphNodeReference(node: *mut BNFlowGraphNode) -> *mut BNFlowGraphNode;
21496}
21497unsafe extern "C" {
21498 pub fn BNFreeFlowGraphNode(node: *mut BNFlowGraphNode);
21499}
21500unsafe extern "C" {
21501 pub fn BNGetFlowGraphNodeOwner(node: *mut BNFlowGraphNode) -> *mut BNFlowGraph;
21502}
21503unsafe extern "C" {
21504 pub fn BNGetFlowGraphBasicBlock(node: *mut BNFlowGraphNode) -> *mut BNBasicBlock;
21505}
21506unsafe extern "C" {
21507 pub fn BNSetFlowGraphBasicBlock(node: *mut BNFlowGraphNode, block: *mut BNBasicBlock);
21508}
21509unsafe extern "C" {
21510 pub fn BNFlowGraphNodeSetX(node: *mut BNFlowGraphNode, x: ::std::os::raw::c_int);
21511}
21512unsafe extern "C" {
21513 pub fn BNFlowGraphNodeSetY(node: *mut BNFlowGraphNode, y: ::std::os::raw::c_int);
21514}
21515unsafe extern "C" {
21516 pub fn BNGetFlowGraphNodeX(node: *mut BNFlowGraphNode) -> ::std::os::raw::c_int;
21517}
21518unsafe extern "C" {
21519 pub fn BNGetFlowGraphNodeY(node: *mut BNFlowGraphNode) -> ::std::os::raw::c_int;
21520}
21521unsafe extern "C" {
21522 pub fn BNGetFlowGraphNodeWidth(node: *mut BNFlowGraphNode) -> ::std::os::raw::c_int;
21523}
21524unsafe extern "C" {
21525 pub fn BNGetFlowGraphNodeHeight(node: *mut BNFlowGraphNode) -> ::std::os::raw::c_int;
21526}
21527unsafe extern "C" {
21528 pub fn BNGetFlowGraphNodeLines(
21529 node: *mut BNFlowGraphNode,
21530 count: *mut usize,
21531 ) -> *mut BNDisassemblyTextLine;
21532}
21533unsafe extern "C" {
21534 pub fn BNSetFlowGraphNodeLines(
21535 node: *mut BNFlowGraphNode,
21536 lines: *mut BNDisassemblyTextLine,
21537 count: usize,
21538 );
21539}
21540unsafe extern "C" {
21541 pub fn BNGetFlowGraphNodeOutgoingEdges(
21542 node: *mut BNFlowGraphNode,
21543 count: *mut usize,
21544 ) -> *mut BNFlowGraphEdge;
21545}
21546unsafe extern "C" {
21547 pub fn BNGetFlowGraphNodeIncomingEdges(
21548 node: *mut BNFlowGraphNode,
21549 count: *mut usize,
21550 ) -> *mut BNFlowGraphEdge;
21551}
21552unsafe extern "C" {
21553 pub fn BNFreeFlowGraphNodeEdgeList(edges: *mut BNFlowGraphEdge, count: usize);
21554}
21555unsafe extern "C" {
21556 pub fn BNAddFlowGraphNodeOutgoingEdge(
21557 node: *mut BNFlowGraphNode,
21558 type_: BNBranchType,
21559 target: *mut BNFlowGraphNode,
21560 edgeStyle: BNEdgeStyle,
21561 );
21562}
21563unsafe extern "C" {
21564 pub fn BNGetFlowGraphNodeHighlight(node: *mut BNFlowGraphNode) -> BNHighlightColor;
21565}
21566unsafe extern "C" {
21567 pub fn BNSetFlowGraphNodeHighlight(node: *mut BNFlowGraphNode, color: BNHighlightColor);
21568}
21569unsafe extern "C" {
21570 pub fn BNFinishPrepareForLayout(graph: *mut BNFlowGraph);
21571}
21572unsafe extern "C" {
21573 pub fn BNFlowGraphUpdateQueryMode(graph: *mut BNFlowGraph) -> bool;
21574}
21575unsafe extern "C" {
21576 pub fn BNFlowGraphHasUpdates(graph: *mut BNFlowGraph) -> bool;
21577}
21578unsafe extern "C" {
21579 pub fn BNUpdateFlowGraph(graph: *mut BNFlowGraph) -> *mut BNFlowGraph;
21580}
21581unsafe extern "C" {
21582 pub fn BNSetFlowGraphOption(graph: *mut BNFlowGraph, option: BNFlowGraphOption, value: bool);
21583}
21584unsafe extern "C" {
21585 pub fn BNIsFlowGraphOptionSet(graph: *mut BNFlowGraph, option: BNFlowGraphOption) -> bool;
21586}
21587unsafe extern "C" {
21588 pub fn BNIsNodeValidForFlowGraph(graph: *mut BNFlowGraph, node: *mut BNFlowGraphNode) -> bool;
21589}
21590unsafe extern "C" {
21591 pub fn BNFlowGraphNodeSetVisibilityRegion(
21592 node: *mut BNFlowGraphNode,
21593 x: ::std::os::raw::c_int,
21594 y: ::std::os::raw::c_int,
21595 w: ::std::os::raw::c_int,
21596 h: ::std::os::raw::c_int,
21597 );
21598}
21599unsafe extern "C" {
21600 pub fn BNFlowGraphNodeSetOutgoingEdgePoints(
21601 node: *mut BNFlowGraphNode,
21602 edgeNum: usize,
21603 points: *mut BNPoint,
21604 pointCount: usize,
21605 );
21606}
21607unsafe extern "C" {
21608 pub fn BNGetFlowGraphLayouts(count: *mut usize) -> *mut *mut BNFlowGraphLayout;
21609}
21610unsafe extern "C" {
21611 pub fn BNFreeFlowGraphLayoutList(layouts: *mut *mut BNFlowGraphLayout);
21612}
21613unsafe extern "C" {
21614 pub fn BNRegisterFlowGraphLayout(
21615 name: *const ::std::os::raw::c_char,
21616 callbacks: *mut BNCustomFlowGraphLayout,
21617 ) -> *mut BNFlowGraphLayout;
21618}
21619unsafe extern "C" {
21620 pub fn BNGetFlowGraphLayoutByName(
21621 name: *const ::std::os::raw::c_char,
21622 ) -> *mut BNFlowGraphLayout;
21623}
21624unsafe extern "C" {
21625 pub fn BNGetFlowGraphLayoutName(layout: *mut BNFlowGraphLayout) -> *mut ::std::os::raw::c_char;
21626}
21627unsafe extern "C" {
21628 pub fn BNFlowGraphLayoutLayout(
21629 layout: *mut BNFlowGraphLayout,
21630 graph: *mut BNFlowGraph,
21631 nodes: *mut *mut BNFlowGraphNode,
21632 nodeCount: usize,
21633 ) -> bool;
21634}
21635unsafe extern "C" {
21636 #[doc = " Symbols"]
21637 pub fn BNCreateSymbol(
21638 type_: BNSymbolType,
21639 shortName: *const ::std::os::raw::c_char,
21640 fullName: *const ::std::os::raw::c_char,
21641 rawName: *const ::std::os::raw::c_char,
21642 addr: u64,
21643 binding: BNSymbolBinding,
21644 nameSpace: *const BNNameSpace,
21645 ordinal: u64,
21646 ) -> *mut BNSymbol;
21647}
21648unsafe extern "C" {
21649 pub fn BNNewSymbolReference(sym: *mut BNSymbol) -> *mut BNSymbol;
21650}
21651unsafe extern "C" {
21652 pub fn BNFreeSymbol(sym: *mut BNSymbol);
21653}
21654unsafe extern "C" {
21655 pub fn BNGetSymbolType(sym: *mut BNSymbol) -> BNSymbolType;
21656}
21657unsafe extern "C" {
21658 pub fn BNGetSymbolBinding(sym: *mut BNSymbol) -> BNSymbolBinding;
21659}
21660unsafe extern "C" {
21661 pub fn BNGetSymbolNameSpace(sym: *mut BNSymbol) -> BNNameSpace;
21662}
21663unsafe extern "C" {
21664 pub fn BNGetSymbolShortName(sym: *mut BNSymbol) -> *mut ::std::os::raw::c_char;
21665}
21666unsafe extern "C" {
21667 pub fn BNGetSymbolShortNameRef(sym: *mut BNSymbol) -> *mut BNStringRef;
21668}
21669unsafe extern "C" {
21670 pub fn BNGetSymbolFullName(sym: *mut BNSymbol) -> *mut ::std::os::raw::c_char;
21671}
21672unsafe extern "C" {
21673 pub fn BNGetSymbolFullNameRef(sym: *mut BNSymbol) -> *mut BNStringRef;
21674}
21675unsafe extern "C" {
21676 pub fn BNGetSymbolRawName(sym: *mut BNSymbol) -> *mut ::std::os::raw::c_char;
21677}
21678unsafe extern "C" {
21679 pub fn BNGetSymbolRawNameRef(sym: *mut BNSymbol) -> *mut BNStringRef;
21680}
21681unsafe extern "C" {
21682 pub fn BNGetSymbolRawBytes(
21683 sym: *mut BNSymbol,
21684 count: *mut usize,
21685 ) -> *mut ::std::os::raw::c_void;
21686}
21687unsafe extern "C" {
21688 pub fn BNFreeSymbolRawBytes(bytes: *mut ::std::os::raw::c_void);
21689}
21690unsafe extern "C" {
21691 pub fn BNGetSymbolAddress(sym: *mut BNSymbol) -> u64;
21692}
21693unsafe extern "C" {
21694 pub fn BNGetSymbolOrdinal(sym: *mut BNSymbol) -> u64;
21695}
21696unsafe extern "C" {
21697 pub fn BNIsSymbolAutoDefined(sym: *mut BNSymbol) -> bool;
21698}
21699unsafe extern "C" {
21700 pub fn BNGetSymbolByAddress(
21701 view: *mut BNBinaryView,
21702 addr: u64,
21703 nameSpace: *const BNNameSpace,
21704 ) -> *mut BNSymbol;
21705}
21706unsafe extern "C" {
21707 pub fn BNGetSymbolByRawName(
21708 view: *mut BNBinaryView,
21709 name: *const ::std::os::raw::c_char,
21710 nameSpace: *const BNNameSpace,
21711 ) -> *mut BNSymbol;
21712}
21713unsafe extern "C" {
21714 pub fn BNGetSymbolsByName(
21715 view: *mut BNBinaryView,
21716 name: *const ::std::os::raw::c_char,
21717 count: *mut usize,
21718 nameSpace: *const BNNameSpace,
21719 ) -> *mut *mut BNSymbol;
21720}
21721unsafe extern "C" {
21722 pub fn BNGetSymbolsByRawName(
21723 view: *mut BNBinaryView,
21724 name: *const ::std::os::raw::c_char,
21725 count: *mut usize,
21726 nameSpace: *const BNNameSpace,
21727 ) -> *mut *mut BNSymbol;
21728}
21729unsafe extern "C" {
21730 pub fn BNGetSymbols(
21731 view: *mut BNBinaryView,
21732 count: *mut usize,
21733 nameSpace: *const BNNameSpace,
21734 ) -> *mut *mut BNSymbol;
21735}
21736unsafe extern "C" {
21737 pub fn BNGetSymbolsInRange(
21738 view: *mut BNBinaryView,
21739 start: u64,
21740 len: u64,
21741 count: *mut usize,
21742 nameSpace: *const BNNameSpace,
21743 ) -> *mut *mut BNSymbol;
21744}
21745unsafe extern "C" {
21746 pub fn BNGetSymbolsOfType(
21747 view: *mut BNBinaryView,
21748 type_: BNSymbolType,
21749 count: *mut usize,
21750 nameSpace: *const BNNameSpace,
21751 ) -> *mut *mut BNSymbol;
21752}
21753unsafe extern "C" {
21754 pub fn BNGetSymbolsOfTypeInRange(
21755 view: *mut BNBinaryView,
21756 type_: BNSymbolType,
21757 start: u64,
21758 len: u64,
21759 count: *mut usize,
21760 nameSpace: *const BNNameSpace,
21761 ) -> *mut *mut BNSymbol;
21762}
21763unsafe extern "C" {
21764 pub fn BNFreeSymbolList(syms: *mut *mut BNSymbol, count: usize);
21765}
21766unsafe extern "C" {
21767 pub fn BNGetVisibleSymbols(
21768 view: *mut BNBinaryView,
21769 count: *mut usize,
21770 nameSpace: *const BNNameSpace,
21771 ) -> *mut *mut BNSymbol;
21772}
21773unsafe extern "C" {
21774 pub fn BNDefineAutoSymbol(view: *mut BNBinaryView, sym: *mut BNSymbol);
21775}
21776unsafe extern "C" {
21777 pub fn BNUndefineAutoSymbol(view: *mut BNBinaryView, sym: *mut BNSymbol);
21778}
21779unsafe extern "C" {
21780 pub fn BNDefineUserSymbol(view: *mut BNBinaryView, sym: *mut BNSymbol);
21781}
21782unsafe extern "C" {
21783 pub fn BNUndefineUserSymbol(view: *mut BNBinaryView, sym: *mut BNSymbol);
21784}
21785unsafe extern "C" {
21786 pub fn BNDefineImportedFunction(
21787 view: *mut BNBinaryView,
21788 importAddressSym: *mut BNSymbol,
21789 func: *mut BNFunction,
21790 type_: *mut BNType,
21791 );
21792}
21793unsafe extern "C" {
21794 pub fn BNDefineAutoSymbolAndVariableOrFunction(
21795 view: *mut BNBinaryView,
21796 platform: *mut BNPlatform,
21797 sym: *mut BNSymbol,
21798 type_: *mut BNTypeWithConfidence,
21799 ) -> *mut BNSymbol;
21800}
21801unsafe extern "C" {
21802 pub fn BNBeginBulkModifySymbols(view: *mut BNBinaryView);
21803}
21804unsafe extern "C" {
21805 pub fn BNEndBulkModifySymbols(view: *mut BNBinaryView);
21806}
21807unsafe extern "C" {
21808 pub fn BNGetDebugInfo(view: *mut BNBinaryView) -> *mut BNDebugInfo;
21809}
21810unsafe extern "C" {
21811 pub fn BNApplyDebugInfo(view: *mut BNBinaryView, newDebugInfo: *mut BNDebugInfo);
21812}
21813unsafe extern "C" {
21814 pub fn BNSetDebugInfo(view: *mut BNBinaryView, newDebugInfo: *mut BNDebugInfo);
21815}
21816unsafe extern "C" {
21817 pub fn BNIsApplyingDebugInfo(view: *mut BNBinaryView) -> bool;
21818}
21819unsafe extern "C" {
21820 pub fn BNImportedFunctionFromImportAddressSymbol(
21821 sym: *mut BNSymbol,
21822 addr: u64,
21823 ) -> *mut BNSymbol;
21824}
21825unsafe extern "C" {
21826 #[doc = " Low-level IL"]
21827 pub fn BNCreateLowLevelILFunction(
21828 arch: *mut BNArchitecture,
21829 func: *mut BNFunction,
21830 ) -> *mut BNLowLevelILFunction;
21831}
21832unsafe extern "C" {
21833 pub fn BNNewLowLevelILFunctionReference(
21834 func: *mut BNLowLevelILFunction,
21835 ) -> *mut BNLowLevelILFunction;
21836}
21837unsafe extern "C" {
21838 pub fn BNFreeLowLevelILFunction(func: *mut BNLowLevelILFunction);
21839}
21840unsafe extern "C" {
21841 pub fn BNGetLowLevelILOwnerFunction(func: *mut BNLowLevelILFunction) -> *mut BNFunction;
21842}
21843unsafe extern "C" {
21844 pub fn BNLowLevelILGetCurrentAddress(func: *mut BNLowLevelILFunction) -> u64;
21845}
21846unsafe extern "C" {
21847 pub fn BNLowLevelILSetCurrentAddress(
21848 func: *mut BNLowLevelILFunction,
21849 arch: *mut BNArchitecture,
21850 addr: u64,
21851 );
21852}
21853unsafe extern "C" {
21854 pub fn BNLowLevelILSetCurrentSourceBlock(
21855 func: *mut BNLowLevelILFunction,
21856 source: *mut BNBasicBlock,
21857 );
21858}
21859unsafe extern "C" {
21860 pub fn BNLowLevelILGetInstructionStart(
21861 func: *mut BNLowLevelILFunction,
21862 arch: *mut BNArchitecture,
21863 addr: u64,
21864 ) -> usize;
21865}
21866unsafe extern "C" {
21867 pub fn BNLowLevelILGetInstructionsAt(
21868 func: *mut BNLowLevelILFunction,
21869 arch: *mut BNArchitecture,
21870 addr: u64,
21871 count: *mut usize,
21872 ) -> *mut usize;
21873}
21874unsafe extern "C" {
21875 pub fn BNLowLevelILGetExitsForInstruction(
21876 func: *mut BNLowLevelILFunction,
21877 instr: usize,
21878 count: *mut usize,
21879 ) -> *mut usize;
21880}
21881unsafe extern "C" {
21882 pub fn BNLowLevelILClearIndirectBranches(func: *mut BNLowLevelILFunction);
21883}
21884unsafe extern "C" {
21885 pub fn BNLowLevelILSetIndirectBranches(
21886 func: *mut BNLowLevelILFunction,
21887 branches: *mut BNArchitectureAndAddress,
21888 count: usize,
21889 );
21890}
21891unsafe extern "C" {
21892 pub fn BNLowLevelILAddExpr(
21893 func: *mut BNLowLevelILFunction,
21894 operation: BNLowLevelILOperation,
21895 size: usize,
21896 flags: u32,
21897 a: u64,
21898 b: u64,
21899 c: u64,
21900 d: u64,
21901 ) -> usize;
21902}
21903unsafe extern "C" {
21904 pub fn BNLowLevelILAddExprWithLocation(
21905 func: *mut BNLowLevelILFunction,
21906 addr: u64,
21907 sourceOperand: u32,
21908 operation: BNLowLevelILOperation,
21909 size: usize,
21910 flags: u32,
21911 a: u64,
21912 b: u64,
21913 c: u64,
21914 d: u64,
21915 ) -> usize;
21916}
21917unsafe extern "C" {
21918 pub fn BNLowLevelILSetExprSourceOperand(
21919 func: *mut BNLowLevelILFunction,
21920 expr: usize,
21921 operand: u32,
21922 );
21923}
21924unsafe extern "C" {
21925 pub fn BNLowLevelILAddInstruction(func: *mut BNLowLevelILFunction, expr: usize) -> usize;
21926}
21927unsafe extern "C" {
21928 pub fn BNLowLevelILGoto(
21929 func: *mut BNLowLevelILFunction,
21930 label: *mut BNLowLevelILLabel,
21931 ) -> usize;
21932}
21933unsafe extern "C" {
21934 pub fn BNLowLevelILGotoWithLocation(
21935 func: *mut BNLowLevelILFunction,
21936 label: *mut BNLowLevelILLabel,
21937 addr: u64,
21938 sourceOperand: u32,
21939 ) -> usize;
21940}
21941unsafe extern "C" {
21942 pub fn BNLowLevelILIf(
21943 func: *mut BNLowLevelILFunction,
21944 op: u64,
21945 t: *mut BNLowLevelILLabel,
21946 f: *mut BNLowLevelILLabel,
21947 ) -> usize;
21948}
21949unsafe extern "C" {
21950 pub fn BNLowLevelILIfWithLocation(
21951 func: *mut BNLowLevelILFunction,
21952 op: u64,
21953 t: *mut BNLowLevelILLabel,
21954 f: *mut BNLowLevelILLabel,
21955 addr: u64,
21956 sourceOperand: u32,
21957 ) -> usize;
21958}
21959unsafe extern "C" {
21960 pub fn BNLowLevelILInitLabel(label: *mut BNLowLevelILLabel);
21961}
21962unsafe extern "C" {
21963 pub fn BNLowLevelILMarkLabel(func: *mut BNLowLevelILFunction, label: *mut BNLowLevelILLabel);
21964}
21965unsafe extern "C" {
21966 pub fn BNFinalizeLowLevelILFunction(func: *mut BNLowLevelILFunction);
21967}
21968unsafe extern "C" {
21969 pub fn BNGenerateLowLevelILSSAForm(func: *mut BNLowLevelILFunction);
21970}
21971unsafe extern "C" {
21972 pub fn BNLowLevelILFunctionHasIndirectBranches(func: *mut BNLowLevelILFunction) -> bool;
21973}
21974unsafe extern "C" {
21975 pub fn BNPrepareToCopyLowLevelILFunction(
21976 func: *mut BNLowLevelILFunction,
21977 src: *mut BNLowLevelILFunction,
21978 );
21979}
21980unsafe extern "C" {
21981 pub fn BNPrepareToCopyLowLevelILBasicBlock(
21982 func: *mut BNLowLevelILFunction,
21983 block: *mut BNBasicBlock,
21984 );
21985}
21986unsafe extern "C" {
21987 pub fn BNGetLabelForLowLevelILSourceInstruction(
21988 func: *mut BNLowLevelILFunction,
21989 instr: usize,
21990 ) -> *mut BNLowLevelILLabel;
21991}
21992unsafe extern "C" {
21993 pub fn BNPrepareToCopyForeignFunction(
21994 dst: *mut BNLowLevelILFunction,
21995 src: *mut BNLowLevelILFunction,
21996 count: *mut usize,
21997 ) -> *mut *mut BNBasicBlock;
21998}
21999unsafe extern "C" {
22000 pub fn BNLowLevelILAddLabelMap(
22001 func: *mut BNLowLevelILFunction,
22002 values: *mut u64,
22003 labels: *mut *mut BNLowLevelILLabel,
22004 count: usize,
22005 ) -> usize;
22006}
22007unsafe extern "C" {
22008 pub fn BNLowLevelILAddOperandList(
22009 func: *mut BNLowLevelILFunction,
22010 operands: *mut u64,
22011 count: usize,
22012 ) -> usize;
22013}
22014unsafe extern "C" {
22015 pub fn BNLowLevelILGetOperandList(
22016 func: *mut BNLowLevelILFunction,
22017 expr: usize,
22018 operand: usize,
22019 count: *mut usize,
22020 ) -> *mut u64;
22021}
22022unsafe extern "C" {
22023 pub fn BNLowLevelILFreeOperandList(operands: *mut u64);
22024}
22025unsafe extern "C" {
22026 pub fn BNLowLevelILGetOperand(func: *mut BNLowLevelILFunction, offset: usize) -> u64;
22027}
22028unsafe extern "C" {
22029 pub fn BNCacheLowLevelILPossibleValueSet(
22030 func: *mut BNLowLevelILFunction,
22031 pvs: *mut BNPossibleValueSet,
22032 ) -> usize;
22033}
22034unsafe extern "C" {
22035 pub fn BNGetCachedLowLevelILPossibleValueSet(
22036 func: *mut BNLowLevelILFunction,
22037 idx: usize,
22038 ) -> BNPossibleValueSet;
22039}
22040unsafe extern "C" {
22041 pub fn BNGetLowLevelILByIndex(
22042 func: *mut BNLowLevelILFunction,
22043 i: usize,
22044 ) -> BNLowLevelILInstruction;
22045}
22046unsafe extern "C" {
22047 pub fn BNGetLowLevelILIndexForInstruction(func: *mut BNLowLevelILFunction, i: usize) -> usize;
22048}
22049unsafe extern "C" {
22050 pub fn BNGetLowLevelILInstructionForExpr(func: *mut BNLowLevelILFunction, expr: usize)
22051 -> usize;
22052}
22053unsafe extern "C" {
22054 pub fn BNGetLowLevelILInstructionCount(func: *mut BNLowLevelILFunction) -> usize;
22055}
22056unsafe extern "C" {
22057 pub fn BNGetLowLevelILExprCount(func: *mut BNLowLevelILFunction) -> usize;
22058}
22059unsafe extern "C" {
22060 pub fn BNUpdateLowLevelILOperand(
22061 func: *mut BNLowLevelILFunction,
22062 instr: usize,
22063 operandIndex: usize,
22064 value: u64,
22065 );
22066}
22067unsafe extern "C" {
22068 pub fn BNReplaceLowLevelILExpr(func: *mut BNLowLevelILFunction, expr: usize, newExpr: usize);
22069}
22070unsafe extern "C" {
22071 pub fn BNSetLowLevelILExprAttributes(
22072 func: *mut BNLowLevelILFunction,
22073 expr: usize,
22074 attributes: u32,
22075 );
22076}
22077unsafe extern "C" {
22078 pub fn BNAddLowLevelILLabelForAddress(
22079 func: *mut BNLowLevelILFunction,
22080 arch: *mut BNArchitecture,
22081 addr: u64,
22082 );
22083}
22084unsafe extern "C" {
22085 pub fn BNGetLowLevelILLabelForAddress(
22086 func: *mut BNLowLevelILFunction,
22087 arch: *mut BNArchitecture,
22088 addr: u64,
22089 ) -> *mut BNLowLevelILLabel;
22090}
22091unsafe extern "C" {
22092 pub fn BNPrepareBlockTranslation(
22093 func: *mut BNLowLevelILFunction,
22094 arch: *mut BNArchitecture,
22095 addr: u64,
22096 );
22097}
22098unsafe extern "C" {
22099 pub fn BNGetLowLevelILExprText(
22100 func: *mut BNLowLevelILFunction,
22101 arch: *mut BNArchitecture,
22102 i: usize,
22103 settings: *mut BNDisassemblySettings,
22104 tokens: *mut *mut BNInstructionTextToken,
22105 count: *mut usize,
22106 ) -> bool;
22107}
22108unsafe extern "C" {
22109 pub fn BNGetLowLevelILInstructionText(
22110 il: *mut BNLowLevelILFunction,
22111 func: *mut BNFunction,
22112 arch: *mut BNArchitecture,
22113 i: usize,
22114 settings: *mut BNDisassemblySettings,
22115 tokens: *mut *mut BNInstructionTextToken,
22116 count: *mut usize,
22117 ) -> bool;
22118}
22119unsafe extern "C" {
22120 pub fn BNGetLowLevelILTemporaryRegisterCount(func: *mut BNLowLevelILFunction) -> u32;
22121}
22122unsafe extern "C" {
22123 pub fn BNGetLowLevelILTemporaryFlagCount(func: *mut BNLowLevelILFunction) -> u32;
22124}
22125unsafe extern "C" {
22126 pub fn BNGetLowLevelILBasicBlockList(
22127 func: *mut BNLowLevelILFunction,
22128 count: *mut usize,
22129 ) -> *mut *mut BNBasicBlock;
22130}
22131unsafe extern "C" {
22132 pub fn BNGetLowLevelILBasicBlockForInstruction(
22133 func: *mut BNLowLevelILFunction,
22134 i: usize,
22135 ) -> *mut BNBasicBlock;
22136}
22137unsafe extern "C" {
22138 pub fn BNGetLowLevelILSSAForm(func: *mut BNLowLevelILFunction) -> *mut BNLowLevelILFunction;
22139}
22140unsafe extern "C" {
22141 pub fn BNGetLowLevelILNonSSAForm(func: *mut BNLowLevelILFunction) -> *mut BNLowLevelILFunction;
22142}
22143unsafe extern "C" {
22144 pub fn BNGetLowLevelILSSAInstructionIndex(
22145 func: *mut BNLowLevelILFunction,
22146 instr: usize,
22147 ) -> usize;
22148}
22149unsafe extern "C" {
22150 pub fn BNGetLowLevelILNonSSAInstructionIndex(
22151 func: *mut BNLowLevelILFunction,
22152 instr: usize,
22153 ) -> usize;
22154}
22155unsafe extern "C" {
22156 pub fn BNGetLowLevelILSSAExprIndex(func: *mut BNLowLevelILFunction, expr: usize) -> usize;
22157}
22158unsafe extern "C" {
22159 pub fn BNGetLowLevelILNonSSAExprIndex(func: *mut BNLowLevelILFunction, expr: usize) -> usize;
22160}
22161unsafe extern "C" {
22162 pub fn BNGetLowLevelILSSARegisterDefinition(
22163 func: *mut BNLowLevelILFunction,
22164 reg: u32,
22165 version: usize,
22166 ) -> usize;
22167}
22168unsafe extern "C" {
22169 pub fn BNGetLowLevelILSSAFlagDefinition(
22170 func: *mut BNLowLevelILFunction,
22171 reg: u32,
22172 version: usize,
22173 ) -> usize;
22174}
22175unsafe extern "C" {
22176 pub fn BNGetLowLevelILSSAMemoryDefinition(
22177 func: *mut BNLowLevelILFunction,
22178 version: usize,
22179 ) -> usize;
22180}
22181unsafe extern "C" {
22182 pub fn BNGetLowLevelILSSARegisterUses(
22183 func: *mut BNLowLevelILFunction,
22184 reg: u32,
22185 version: usize,
22186 count: *mut usize,
22187 ) -> *mut usize;
22188}
22189unsafe extern "C" {
22190 pub fn BNGetLowLevelILSSAFlagUses(
22191 func: *mut BNLowLevelILFunction,
22192 reg: u32,
22193 version: usize,
22194 count: *mut usize,
22195 ) -> *mut usize;
22196}
22197unsafe extern "C" {
22198 pub fn BNGetLowLevelILSSAMemoryUses(
22199 func: *mut BNLowLevelILFunction,
22200 version: usize,
22201 count: *mut usize,
22202 ) -> *mut usize;
22203}
22204unsafe extern "C" {
22205 pub fn BNGetLowLevelILSSARegisterValue(
22206 func: *mut BNLowLevelILFunction,
22207 reg: u32,
22208 version: usize,
22209 ) -> BNRegisterValue;
22210}
22211unsafe extern "C" {
22212 pub fn BNGetLowLevelILSSAFlagValue(
22213 func: *mut BNLowLevelILFunction,
22214 flag: u32,
22215 version: usize,
22216 ) -> BNRegisterValue;
22217}
22218unsafe extern "C" {
22219 pub fn BNGetLowLevelILExprValue(
22220 func: *mut BNLowLevelILFunction,
22221 expr: usize,
22222 ) -> BNRegisterValue;
22223}
22224unsafe extern "C" {
22225 pub fn BNGetLowLevelILPossibleExprValues(
22226 func: *mut BNLowLevelILFunction,
22227 expr: usize,
22228 options: *mut BNDataFlowQueryOption,
22229 optionCount: usize,
22230 ) -> BNPossibleValueSet;
22231}
22232unsafe extern "C" {
22233 pub fn BNGetLowLevelILRegisterValueAtInstruction(
22234 func: *mut BNLowLevelILFunction,
22235 reg: u32,
22236 instr: usize,
22237 ) -> BNRegisterValue;
22238}
22239unsafe extern "C" {
22240 pub fn BNGetLowLevelILRegisterValueAfterInstruction(
22241 func: *mut BNLowLevelILFunction,
22242 reg: u32,
22243 instr: usize,
22244 ) -> BNRegisterValue;
22245}
22246unsafe extern "C" {
22247 pub fn BNGetLowLevelILPossibleRegisterValuesAtInstruction(
22248 func: *mut BNLowLevelILFunction,
22249 reg: u32,
22250 instr: usize,
22251 options: *mut BNDataFlowQueryOption,
22252 optionCount: usize,
22253 ) -> BNPossibleValueSet;
22254}
22255unsafe extern "C" {
22256 pub fn BNGetLowLevelILPossibleRegisterValuesAfterInstruction(
22257 func: *mut BNLowLevelILFunction,
22258 reg: u32,
22259 instr: usize,
22260 options: *mut BNDataFlowQueryOption,
22261 optionCount: usize,
22262 ) -> BNPossibleValueSet;
22263}
22264unsafe extern "C" {
22265 pub fn BNGetLowLevelILFlagValueAtInstruction(
22266 func: *mut BNLowLevelILFunction,
22267 flag: u32,
22268 instr: usize,
22269 ) -> BNRegisterValue;
22270}
22271unsafe extern "C" {
22272 pub fn BNGetLowLevelILFlagValueAfterInstruction(
22273 func: *mut BNLowLevelILFunction,
22274 flag: u32,
22275 instr: usize,
22276 ) -> BNRegisterValue;
22277}
22278unsafe extern "C" {
22279 pub fn BNGetLowLevelILPossibleFlagValuesAtInstruction(
22280 func: *mut BNLowLevelILFunction,
22281 flag: u32,
22282 instr: usize,
22283 options: *mut BNDataFlowQueryOption,
22284 optionCount: usize,
22285 ) -> BNPossibleValueSet;
22286}
22287unsafe extern "C" {
22288 pub fn BNGetLowLevelILPossibleFlagValuesAfterInstruction(
22289 func: *mut BNLowLevelILFunction,
22290 flag: u32,
22291 instr: usize,
22292 options: *mut BNDataFlowQueryOption,
22293 optionCount: usize,
22294 ) -> BNPossibleValueSet;
22295}
22296unsafe extern "C" {
22297 pub fn BNGetLowLevelILStackContentsAtInstruction(
22298 func: *mut BNLowLevelILFunction,
22299 offset: i64,
22300 len: usize,
22301 instr: usize,
22302 ) -> BNRegisterValue;
22303}
22304unsafe extern "C" {
22305 pub fn BNGetLowLevelILStackContentsAfterInstruction(
22306 func: *mut BNLowLevelILFunction,
22307 offset: i64,
22308 len: usize,
22309 instr: usize,
22310 ) -> BNRegisterValue;
22311}
22312unsafe extern "C" {
22313 pub fn BNGetLowLevelILPossibleStackContentsAtInstruction(
22314 func: *mut BNLowLevelILFunction,
22315 offset: i64,
22316 len: usize,
22317 instr: usize,
22318 options: *mut BNDataFlowQueryOption,
22319 optionCount: usize,
22320 ) -> BNPossibleValueSet;
22321}
22322unsafe extern "C" {
22323 pub fn BNGetLowLevelILPossibleStackContentsAfterInstruction(
22324 func: *mut BNLowLevelILFunction,
22325 offset: i64,
22326 len: usize,
22327 instr: usize,
22328 options: *mut BNDataFlowQueryOption,
22329 optionCount: usize,
22330 ) -> BNPossibleValueSet;
22331}
22332unsafe extern "C" {
22333 pub fn BNGetLowLevelRegisters(func: *mut BNLowLevelILFunction, count: *mut usize) -> *mut u32;
22334}
22335unsafe extern "C" {
22336 pub fn BNGetLowLevelRegisterStacks(
22337 func: *mut BNLowLevelILFunction,
22338 count: *mut usize,
22339 ) -> *mut u32;
22340}
22341unsafe extern "C" {
22342 pub fn BNGetLowLevelFlags(func: *mut BNLowLevelILFunction, count: *mut usize) -> *mut u32;
22343}
22344unsafe extern "C" {
22345 pub fn BNGetLowLevelSSARegistersWithoutVersions(
22346 func: *mut BNLowLevelILFunction,
22347 count: *mut usize,
22348 ) -> *mut u32;
22349}
22350unsafe extern "C" {
22351 pub fn BNGetLowLevelSSARegisterStacksWithoutVersions(
22352 func: *mut BNLowLevelILFunction,
22353 count: *mut usize,
22354 ) -> *mut u32;
22355}
22356unsafe extern "C" {
22357 pub fn BNGetLowLevelSSAFlagsWithoutVersions(
22358 func: *mut BNLowLevelILFunction,
22359 count: *mut usize,
22360 ) -> *mut u32;
22361}
22362unsafe extern "C" {
22363 pub fn BNGetLowLevelRegisterSSAVersions(
22364 func: *mut BNLowLevelILFunction,
22365 var: u32,
22366 count: *mut usize,
22367 ) -> *mut usize;
22368}
22369unsafe extern "C" {
22370 pub fn BNGetLowLevelRegisterStackSSAVersions(
22371 func: *mut BNLowLevelILFunction,
22372 var: u32,
22373 count: *mut usize,
22374 ) -> *mut usize;
22375}
22376unsafe extern "C" {
22377 pub fn BNGetLowLevelFlagSSAVersions(
22378 func: *mut BNLowLevelILFunction,
22379 var: u32,
22380 count: *mut usize,
22381 ) -> *mut usize;
22382}
22383unsafe extern "C" {
22384 pub fn BNGetLowLevelMemoryVersions(
22385 func: *mut BNLowLevelILFunction,
22386 count: *mut usize,
22387 ) -> *mut usize;
22388}
22389unsafe extern "C" {
22390 pub fn BNFreeLLILVariablesList(vars: *mut u32);
22391}
22392unsafe extern "C" {
22393 pub fn BNFreeLLILVariableVersionList(versions: *mut usize);
22394}
22395unsafe extern "C" {
22396 pub fn BNGetMediumLevelILForLowLevelIL(
22397 func: *mut BNLowLevelILFunction,
22398 ) -> *mut BNMediumLevelILFunction;
22399}
22400unsafe extern "C" {
22401 pub fn BNGetMappedMediumLevelIL(
22402 func: *mut BNLowLevelILFunction,
22403 ) -> *mut BNMediumLevelILFunction;
22404}
22405unsafe extern "C" {
22406 pub fn BNGetMediumLevelILInstructionIndex(
22407 func: *mut BNLowLevelILFunction,
22408 instr: usize,
22409 ) -> usize;
22410}
22411unsafe extern "C" {
22412 pub fn BNGetMediumLevelILExprIndex(func: *mut BNLowLevelILFunction, expr: usize) -> usize;
22413}
22414unsafe extern "C" {
22415 pub fn BNGetMediumLevelILExprIndexes(
22416 func: *mut BNLowLevelILFunction,
22417 expr: usize,
22418 count: *mut usize,
22419 ) -> *mut usize;
22420}
22421unsafe extern "C" {
22422 pub fn BNGetMappedMediumLevelILInstructionIndex(
22423 func: *mut BNLowLevelILFunction,
22424 instr: usize,
22425 ) -> usize;
22426}
22427unsafe extern "C" {
22428 pub fn BNGetMappedMediumLevelILExprIndex(func: *mut BNLowLevelILFunction, expr: usize)
22429 -> usize;
22430}
22431unsafe extern "C" {
22432 #[doc = " Medium-level IL"]
22433 pub fn BNCreateMediumLevelILFunction(
22434 arch: *mut BNArchitecture,
22435 func: *mut BNFunction,
22436 lowLevelIL: *mut BNLowLevelILFunction,
22437 ) -> *mut BNMediumLevelILFunction;
22438}
22439unsafe extern "C" {
22440 pub fn BNNewMediumLevelILFunctionReference(
22441 func: *mut BNMediumLevelILFunction,
22442 ) -> *mut BNMediumLevelILFunction;
22443}
22444unsafe extern "C" {
22445 pub fn BNFreeMediumLevelILFunction(func: *mut BNMediumLevelILFunction);
22446}
22447unsafe extern "C" {
22448 pub fn BNGetMediumLevelILOwnerFunction(func: *mut BNMediumLevelILFunction) -> *mut BNFunction;
22449}
22450unsafe extern "C" {
22451 pub fn BNMediumLevelILGetCurrentAddress(func: *mut BNMediumLevelILFunction) -> u64;
22452}
22453unsafe extern "C" {
22454 pub fn BNMediumLevelILSetCurrentAddress(
22455 func: *mut BNMediumLevelILFunction,
22456 arch: *mut BNArchitecture,
22457 addr: u64,
22458 );
22459}
22460unsafe extern "C" {
22461 pub fn BNMediumLevelILGetInstructionStart(
22462 func: *mut BNMediumLevelILFunction,
22463 arch: *mut BNArchitecture,
22464 addr: u64,
22465 ) -> usize;
22466}
22467unsafe extern "C" {
22468 pub fn BNMediumLevelILAddExpr(
22469 func: *mut BNMediumLevelILFunction,
22470 operation: BNMediumLevelILOperation,
22471 size: usize,
22472 a: u64,
22473 b: u64,
22474 c: u64,
22475 d: u64,
22476 e: u64,
22477 ) -> usize;
22478}
22479unsafe extern "C" {
22480 pub fn BNMediumLevelILAddExprWithLocation(
22481 func: *mut BNMediumLevelILFunction,
22482 operation: BNMediumLevelILOperation,
22483 addr: u64,
22484 sourceOperand: u32,
22485 size: usize,
22486 a: u64,
22487 b: u64,
22488 c: u64,
22489 d: u64,
22490 e: u64,
22491 ) -> usize;
22492}
22493unsafe extern "C" {
22494 pub fn BNMediumLevelILAddInstruction(func: *mut BNMediumLevelILFunction, expr: usize) -> usize;
22495}
22496unsafe extern "C" {
22497 pub fn BNMediumLevelILGoto(
22498 func: *mut BNMediumLevelILFunction,
22499 label: *mut BNMediumLevelILLabel,
22500 ) -> usize;
22501}
22502unsafe extern "C" {
22503 pub fn BNMediumLevelILGotoWithLocation(
22504 func: *mut BNMediumLevelILFunction,
22505 label: *mut BNMediumLevelILLabel,
22506 addr: u64,
22507 sourceOperand: u32,
22508 ) -> usize;
22509}
22510unsafe extern "C" {
22511 pub fn BNMediumLevelILIf(
22512 func: *mut BNMediumLevelILFunction,
22513 op: u64,
22514 t: *mut BNMediumLevelILLabel,
22515 f: *mut BNMediumLevelILLabel,
22516 ) -> usize;
22517}
22518unsafe extern "C" {
22519 pub fn BNMediumLevelILIfWithLocation(
22520 func: *mut BNMediumLevelILFunction,
22521 op: u64,
22522 t: *mut BNMediumLevelILLabel,
22523 f: *mut BNMediumLevelILLabel,
22524 addr: u64,
22525 sourceOperand: u32,
22526 ) -> usize;
22527}
22528unsafe extern "C" {
22529 pub fn BNMediumLevelILInitLabel(label: *mut BNMediumLevelILLabel);
22530}
22531unsafe extern "C" {
22532 pub fn BNMediumLevelILMarkLabel(
22533 func: *mut BNMediumLevelILFunction,
22534 label: *mut BNMediumLevelILLabel,
22535 );
22536}
22537unsafe extern "C" {
22538 pub fn BNFinalizeMediumLevelILFunction(func: *mut BNMediumLevelILFunction);
22539}
22540unsafe extern "C" {
22541 pub fn BNGenerateMediumLevelILSSAForm(
22542 func: *mut BNMediumLevelILFunction,
22543 analyzeConditionals: bool,
22544 handleAliases: bool,
22545 knownNotAliases: *mut BNVariable,
22546 knownNotAliasCount: usize,
22547 knownAliases: *mut BNVariable,
22548 knownAliasCount: usize,
22549 );
22550}
22551unsafe extern "C" {
22552 pub fn BNPrepareToCopyMediumLevelILFunction(
22553 func: *mut BNMediumLevelILFunction,
22554 src: *mut BNMediumLevelILFunction,
22555 );
22556}
22557unsafe extern "C" {
22558 pub fn BNPrepareToCopyMediumLevelILBasicBlock(
22559 func: *mut BNMediumLevelILFunction,
22560 block: *mut BNBasicBlock,
22561 );
22562}
22563unsafe extern "C" {
22564 pub fn BNGetLabelForMediumLevelILSourceInstruction(
22565 func: *mut BNMediumLevelILFunction,
22566 instr: usize,
22567 ) -> *mut BNMediumLevelILLabel;
22568}
22569unsafe extern "C" {
22570 pub fn BNMediumLevelILAddLabelMap(
22571 func: *mut BNMediumLevelILFunction,
22572 values: *mut u64,
22573 labels: *mut *mut BNMediumLevelILLabel,
22574 count: usize,
22575 ) -> usize;
22576}
22577unsafe extern "C" {
22578 pub fn BNMediumLevelILAddOperandList(
22579 func: *mut BNMediumLevelILFunction,
22580 operands: *mut u64,
22581 count: usize,
22582 ) -> usize;
22583}
22584unsafe extern "C" {
22585 pub fn BNMediumLevelILGetOperandList(
22586 func: *mut BNMediumLevelILFunction,
22587 expr: usize,
22588 operand: usize,
22589 count: *mut usize,
22590 ) -> *mut u64;
22591}
22592unsafe extern "C" {
22593 pub fn BNMediumLevelILFreeOperandList(operands: *mut u64);
22594}
22595unsafe extern "C" {
22596 pub fn BNMediumLevelILGetOperand(func: *mut BNMediumLevelILFunction, offset: usize) -> u64;
22597}
22598unsafe extern "C" {
22599 pub fn BNCacheMediumLevelILPossibleValueSet(
22600 func: *mut BNMediumLevelILFunction,
22601 pvs: *mut BNPossibleValueSet,
22602 ) -> usize;
22603}
22604unsafe extern "C" {
22605 pub fn BNGetCachedMediumLevelILPossibleValueSet(
22606 func: *mut BNMediumLevelILFunction,
22607 idx: usize,
22608 ) -> BNPossibleValueSet;
22609}
22610unsafe extern "C" {
22611 pub fn BNGetMediumLevelILByIndex(
22612 func: *mut BNMediumLevelILFunction,
22613 i: usize,
22614 ) -> BNMediumLevelILInstruction;
22615}
22616unsafe extern "C" {
22617 pub fn BNGetMediumLevelILIndexForInstruction(
22618 func: *mut BNMediumLevelILFunction,
22619 i: usize,
22620 ) -> usize;
22621}
22622unsafe extern "C" {
22623 pub fn BNGetMediumLevelILInstructionForExpr(
22624 func: *mut BNMediumLevelILFunction,
22625 expr: usize,
22626 ) -> usize;
22627}
22628unsafe extern "C" {
22629 pub fn BNGetMediumLevelILInstructionCount(func: *mut BNMediumLevelILFunction) -> usize;
22630}
22631unsafe extern "C" {
22632 pub fn BNGetMediumLevelILExprCount(func: *mut BNMediumLevelILFunction) -> usize;
22633}
22634unsafe extern "C" {
22635 pub fn BNUpdateMediumLevelILOperand(
22636 func: *mut BNMediumLevelILFunction,
22637 instr: usize,
22638 operandIndex: usize,
22639 value: u64,
22640 );
22641}
22642unsafe extern "C" {
22643 pub fn BNMarkMediumLevelILInstructionForRemoval(
22644 func: *mut BNMediumLevelILFunction,
22645 instr: usize,
22646 );
22647}
22648unsafe extern "C" {
22649 pub fn BNReplaceMediumLevelILInstruction(
22650 func: *mut BNMediumLevelILFunction,
22651 instr: usize,
22652 expr: usize,
22653 );
22654}
22655unsafe extern "C" {
22656 pub fn BNReplaceMediumLevelILExpr(
22657 func: *mut BNMediumLevelILFunction,
22658 expr: usize,
22659 newExpr: usize,
22660 );
22661}
22662unsafe extern "C" {
22663 pub fn BNSetMediumLevelILExprAttributes(
22664 func: *mut BNMediumLevelILFunction,
22665 expr: usize,
22666 attributes: u32,
22667 );
22668}
22669unsafe extern "C" {
22670 pub fn BNGetMediumLevelILExprText(
22671 func: *mut BNMediumLevelILFunction,
22672 arch: *mut BNArchitecture,
22673 i: usize,
22674 tokens: *mut *mut BNInstructionTextToken,
22675 count: *mut usize,
22676 settings: *mut BNDisassemblySettings,
22677 ) -> bool;
22678}
22679unsafe extern "C" {
22680 pub fn BNGetMediumLevelILInstructionText(
22681 il: *mut BNMediumLevelILFunction,
22682 func: *mut BNFunction,
22683 arch: *mut BNArchitecture,
22684 i: usize,
22685 tokens: *mut *mut BNInstructionTextToken,
22686 count: *mut usize,
22687 settings: *mut BNDisassemblySettings,
22688 ) -> bool;
22689}
22690unsafe extern "C" {
22691 pub fn BNGetMediumLevelILBasicBlockList(
22692 func: *mut BNMediumLevelILFunction,
22693 count: *mut usize,
22694 ) -> *mut *mut BNBasicBlock;
22695}
22696unsafe extern "C" {
22697 pub fn BNGetMediumLevelILBasicBlockForInstruction(
22698 func: *mut BNMediumLevelILFunction,
22699 i: usize,
22700 ) -> *mut BNBasicBlock;
22701}
22702unsafe extern "C" {
22703 pub fn BNGetMediumLevelILSSAForm(
22704 func: *mut BNMediumLevelILFunction,
22705 ) -> *mut BNMediumLevelILFunction;
22706}
22707unsafe extern "C" {
22708 pub fn BNGetMediumLevelILNonSSAForm(
22709 func: *mut BNMediumLevelILFunction,
22710 ) -> *mut BNMediumLevelILFunction;
22711}
22712unsafe extern "C" {
22713 pub fn BNGetMediumLevelILSSAInstructionIndex(
22714 func: *mut BNMediumLevelILFunction,
22715 instr: usize,
22716 ) -> usize;
22717}
22718unsafe extern "C" {
22719 pub fn BNGetMediumLevelILNonSSAInstructionIndex(
22720 func: *mut BNMediumLevelILFunction,
22721 instr: usize,
22722 ) -> usize;
22723}
22724unsafe extern "C" {
22725 pub fn BNGetMediumLevelILSSAExprIndex(func: *mut BNMediumLevelILFunction, expr: usize)
22726 -> usize;
22727}
22728unsafe extern "C" {
22729 pub fn BNGetMediumLevelILNonSSAExprIndex(
22730 func: *mut BNMediumLevelILFunction,
22731 expr: usize,
22732 ) -> usize;
22733}
22734unsafe extern "C" {
22735 pub fn BNGetMediumLevelILSSAVarDefinition(
22736 func: *mut BNMediumLevelILFunction,
22737 var: *const BNVariable,
22738 version: usize,
22739 ) -> usize;
22740}
22741unsafe extern "C" {
22742 pub fn BNGetMediumLevelILSSAMemoryDefinition(
22743 func: *mut BNMediumLevelILFunction,
22744 version: usize,
22745 ) -> usize;
22746}
22747unsafe extern "C" {
22748 pub fn BNGetMediumLevelILSSAVarUses(
22749 func: *mut BNMediumLevelILFunction,
22750 var: *const BNVariable,
22751 version: usize,
22752 count: *mut usize,
22753 ) -> *mut usize;
22754}
22755unsafe extern "C" {
22756 pub fn BNGetMediumLevelILSSAMemoryUses(
22757 func: *mut BNMediumLevelILFunction,
22758 version: usize,
22759 count: *mut usize,
22760 ) -> *mut usize;
22761}
22762unsafe extern "C" {
22763 pub fn BNIsMediumLevelILSSAVarLive(
22764 func: *mut BNMediumLevelILFunction,
22765 var: *const BNVariable,
22766 version: usize,
22767 ) -> bool;
22768}
22769unsafe extern "C" {
22770 pub fn BNIsMediumLevelILSSAVarLiveAt(
22771 func: *mut BNMediumLevelILFunction,
22772 var: *const BNVariable,
22773 version: usize,
22774 instr: usize,
22775 ) -> bool;
22776}
22777unsafe extern "C" {
22778 pub fn BNIsMediumLevelILVarLiveAt(
22779 func: *mut BNMediumLevelILFunction,
22780 var: *const BNVariable,
22781 instr: usize,
22782 ) -> bool;
22783}
22784unsafe extern "C" {
22785 pub fn BNGetMediumLevelILVariables(
22786 func: *mut BNMediumLevelILFunction,
22787 count: *mut usize,
22788 ) -> *mut BNVariable;
22789}
22790unsafe extern "C" {
22791 pub fn BNGetMediumLevelILAliasedVariables(
22792 func: *mut BNMediumLevelILFunction,
22793 count: *mut usize,
22794 ) -> *mut BNVariable;
22795}
22796unsafe extern "C" {
22797 pub fn BNGetMediumLevelILVariableSSAVersions(
22798 func: *mut BNMediumLevelILFunction,
22799 var: *const BNVariable,
22800 count: *mut usize,
22801 ) -> *mut usize;
22802}
22803unsafe extern "C" {
22804 pub fn BNGetMediumLevelILVariableDefinitions(
22805 func: *mut BNMediumLevelILFunction,
22806 var: *const BNVariable,
22807 count: *mut usize,
22808 ) -> *mut usize;
22809}
22810unsafe extern "C" {
22811 pub fn BNGetMediumLevelILVariableUses(
22812 func: *mut BNMediumLevelILFunction,
22813 var: *const BNVariable,
22814 count: *mut usize,
22815 ) -> *mut usize;
22816}
22817unsafe extern "C" {
22818 pub fn BNGetMediumLevelILLiveInstructionsForVariable(
22819 func: *mut BNMediumLevelILFunction,
22820 var: *const BNVariable,
22821 includeLastUse: bool,
22822 count: *mut usize,
22823 ) -> *mut usize;
22824}
22825unsafe extern "C" {
22826 pub fn BNGetDefaultIndexForMediumLevelILVariableDefinition(
22827 func: *mut BNMediumLevelILFunction,
22828 var: *const BNVariable,
22829 instrIndex: usize,
22830 ) -> u32;
22831}
22832unsafe extern "C" {
22833 pub fn BNGetMediumLevelILSSAVarValue(
22834 func: *mut BNMediumLevelILFunction,
22835 var: *const BNVariable,
22836 version: usize,
22837 ) -> BNRegisterValue;
22838}
22839unsafe extern "C" {
22840 pub fn BNGetMediumLevelILExprValue(
22841 func: *mut BNMediumLevelILFunction,
22842 expr: usize,
22843 ) -> BNRegisterValue;
22844}
22845unsafe extern "C" {
22846 pub fn BNGetMediumLevelILPossibleSSAVarValues(
22847 func: *mut BNMediumLevelILFunction,
22848 var: *const BNVariable,
22849 version: usize,
22850 instr: usize,
22851 options: *mut BNDataFlowQueryOption,
22852 optionCount: usize,
22853 ) -> BNPossibleValueSet;
22854}
22855unsafe extern "C" {
22856 pub fn BNGetMediumLevelILPossibleExprValues(
22857 func: *mut BNMediumLevelILFunction,
22858 expr: usize,
22859 options: *mut BNDataFlowQueryOption,
22860 optionCount: usize,
22861 ) -> BNPossibleValueSet;
22862}
22863unsafe extern "C" {
22864 pub fn BNGetMediumLevelILSSAVarVersionAtILInstruction(
22865 func: *mut BNMediumLevelILFunction,
22866 var: *const BNVariable,
22867 instr: usize,
22868 ) -> usize;
22869}
22870unsafe extern "C" {
22871 pub fn BNGetMediumLevelILSSAVarVersionAfterILInstruction(
22872 func: *mut BNMediumLevelILFunction,
22873 var: *const BNVariable,
22874 instr: usize,
22875 ) -> usize;
22876}
22877unsafe extern "C" {
22878 pub fn BNGetMediumLevelILSSAMemoryVersionAtILInstruction(
22879 func: *mut BNMediumLevelILFunction,
22880 instr: usize,
22881 ) -> usize;
22882}
22883unsafe extern "C" {
22884 pub fn BNGetMediumLevelILSSAMemoryVersionAfterILInstruction(
22885 func: *mut BNMediumLevelILFunction,
22886 instr: usize,
22887 ) -> usize;
22888}
22889unsafe extern "C" {
22890 pub fn BNGetMediumLevelILVariableForRegisterAtInstruction(
22891 func: *mut BNMediumLevelILFunction,
22892 reg: u32,
22893 instr: usize,
22894 ) -> BNVariable;
22895}
22896unsafe extern "C" {
22897 pub fn BNGetMediumLevelILVariableForRegisterAfterInstruction(
22898 func: *mut BNMediumLevelILFunction,
22899 reg: u32,
22900 instr: usize,
22901 ) -> BNVariable;
22902}
22903unsafe extern "C" {
22904 pub fn BNGetMediumLevelILVariableForFlagAtInstruction(
22905 func: *mut BNMediumLevelILFunction,
22906 flag: u32,
22907 instr: usize,
22908 ) -> BNVariable;
22909}
22910unsafe extern "C" {
22911 pub fn BNGetMediumLevelILVariableForFlagAfterInstruction(
22912 func: *mut BNMediumLevelILFunction,
22913 flag: u32,
22914 instr: usize,
22915 ) -> BNVariable;
22916}
22917unsafe extern "C" {
22918 pub fn BNGetMediumLevelILVariableForStackLocationAtInstruction(
22919 func: *mut BNMediumLevelILFunction,
22920 offset: i64,
22921 instr: usize,
22922 ) -> BNVariable;
22923}
22924unsafe extern "C" {
22925 pub fn BNGetMediumLevelILVariableForStackLocationAfterInstruction(
22926 func: *mut BNMediumLevelILFunction,
22927 offset: i64,
22928 instr: usize,
22929 ) -> BNVariable;
22930}
22931unsafe extern "C" {
22932 pub fn BNGetMediumLevelILRegisterValueAtInstruction(
22933 func: *mut BNMediumLevelILFunction,
22934 reg: u32,
22935 instr: usize,
22936 ) -> BNRegisterValue;
22937}
22938unsafe extern "C" {
22939 pub fn BNGetMediumLevelILRegisterValueAfterInstruction(
22940 func: *mut BNMediumLevelILFunction,
22941 reg: u32,
22942 instr: usize,
22943 ) -> BNRegisterValue;
22944}
22945unsafe extern "C" {
22946 pub fn BNGetMediumLevelILPossibleRegisterValuesAtInstruction(
22947 func: *mut BNMediumLevelILFunction,
22948 reg: u32,
22949 instr: usize,
22950 options: *mut BNDataFlowQueryOption,
22951 optionCount: usize,
22952 ) -> BNPossibleValueSet;
22953}
22954unsafe extern "C" {
22955 pub fn BNGetMediumLevelILPossibleRegisterValuesAfterInstruction(
22956 func: *mut BNMediumLevelILFunction,
22957 reg: u32,
22958 instr: usize,
22959 options: *mut BNDataFlowQueryOption,
22960 optionCount: usize,
22961 ) -> BNPossibleValueSet;
22962}
22963unsafe extern "C" {
22964 pub fn BNGetMediumLevelILFlagValueAtInstruction(
22965 func: *mut BNMediumLevelILFunction,
22966 flag: u32,
22967 instr: usize,
22968 ) -> BNRegisterValue;
22969}
22970unsafe extern "C" {
22971 pub fn BNGetMediumLevelILFlagValueAfterInstruction(
22972 func: *mut BNMediumLevelILFunction,
22973 flag: u32,
22974 instr: usize,
22975 ) -> BNRegisterValue;
22976}
22977unsafe extern "C" {
22978 pub fn BNGetMediumLevelILPossibleFlagValuesAtInstruction(
22979 func: *mut BNMediumLevelILFunction,
22980 flag: u32,
22981 instr: usize,
22982 options: *mut BNDataFlowQueryOption,
22983 optionCount: usize,
22984 ) -> BNPossibleValueSet;
22985}
22986unsafe extern "C" {
22987 pub fn BNGetMediumLevelILPossibleFlagValuesAfterInstruction(
22988 func: *mut BNMediumLevelILFunction,
22989 flag: u32,
22990 instr: usize,
22991 options: *mut BNDataFlowQueryOption,
22992 optionCount: usize,
22993 ) -> BNPossibleValueSet;
22994}
22995unsafe extern "C" {
22996 pub fn BNGetMediumLevelILStackContentsAtInstruction(
22997 func: *mut BNMediumLevelILFunction,
22998 offset: i64,
22999 len: usize,
23000 instr: usize,
23001 ) -> BNRegisterValue;
23002}
23003unsafe extern "C" {
23004 pub fn BNGetMediumLevelILStackContentsAfterInstruction(
23005 func: *mut BNMediumLevelILFunction,
23006 offset: i64,
23007 len: usize,
23008 instr: usize,
23009 ) -> BNRegisterValue;
23010}
23011unsafe extern "C" {
23012 pub fn BNGetMediumLevelILPossibleStackContentsAtInstruction(
23013 func: *mut BNMediumLevelILFunction,
23014 offset: i64,
23015 len: usize,
23016 instr: usize,
23017 options: *mut BNDataFlowQueryOption,
23018 optionCount: usize,
23019 ) -> BNPossibleValueSet;
23020}
23021unsafe extern "C" {
23022 pub fn BNGetMediumLevelILPossibleStackContentsAfterInstruction(
23023 func: *mut BNMediumLevelILFunction,
23024 offset: i64,
23025 len: usize,
23026 instr: usize,
23027 options: *mut BNDataFlowQueryOption,
23028 optionCount: usize,
23029 ) -> BNPossibleValueSet;
23030}
23031unsafe extern "C" {
23032 pub fn BNGetMediumLevelILBranchDependence(
23033 func: *mut BNMediumLevelILFunction,
23034 curInstr: usize,
23035 branchInstr: usize,
23036 ) -> BNILBranchDependence;
23037}
23038unsafe extern "C" {
23039 pub fn BNGetAllMediumLevelILBranchDependence(
23040 func: *mut BNMediumLevelILFunction,
23041 instr: usize,
23042 count: *mut usize,
23043 ) -> *mut BNILBranchInstructionAndDependence;
23044}
23045unsafe extern "C" {
23046 pub fn BNFreeILBranchDependenceList(branches: *mut BNILBranchInstructionAndDependence);
23047}
23048unsafe extern "C" {
23049 pub fn BNGetLowLevelILForMediumLevelIL(
23050 func: *mut BNMediumLevelILFunction,
23051 ) -> *mut BNLowLevelILFunction;
23052}
23053unsafe extern "C" {
23054 pub fn BNGetLowLevelILInstructionIndex(
23055 func: *mut BNMediumLevelILFunction,
23056 instr: usize,
23057 ) -> usize;
23058}
23059unsafe extern "C" {
23060 pub fn BNGetLowLevelILExprIndex(func: *mut BNMediumLevelILFunction, expr: usize) -> usize;
23061}
23062unsafe extern "C" {
23063 pub fn BNGetLowLevelILExprIndexes(
23064 func: *mut BNMediumLevelILFunction,
23065 expr: usize,
23066 count: *mut usize,
23067 ) -> *mut usize;
23068}
23069unsafe extern "C" {
23070 pub fn BNGetHighLevelILForMediumLevelIL(
23071 func: *mut BNMediumLevelILFunction,
23072 ) -> *mut BNHighLevelILFunction;
23073}
23074unsafe extern "C" {
23075 pub fn BNGetHighLevelILInstructionIndex(
23076 func: *mut BNMediumLevelILFunction,
23077 instr: usize,
23078 ) -> usize;
23079}
23080unsafe extern "C" {
23081 pub fn BNGetHighLevelILExprIndex(func: *mut BNMediumLevelILFunction, expr: usize) -> usize;
23082}
23083unsafe extern "C" {
23084 pub fn BNGetHighLevelILExprIndexes(
23085 func: *mut BNMediumLevelILFunction,
23086 expr: usize,
23087 count: *mut usize,
23088 ) -> *mut usize;
23089}
23090unsafe extern "C" {
23091 pub fn BNGetMediumLevelILExprType(
23092 func: *mut BNMediumLevelILFunction,
23093 expr: usize,
23094 ) -> BNTypeWithConfidence;
23095}
23096unsafe extern "C" {
23097 pub fn BNSetMediumLevelILExprType(
23098 func: *mut BNMediumLevelILFunction,
23099 expr: usize,
23100 type_: *mut BNTypeWithConfidence,
23101 );
23102}
23103unsafe extern "C" {
23104 #[doc = " High-level IL"]
23105 pub fn BNCreateHighLevelILFunction(
23106 arch: *mut BNArchitecture,
23107 func: *mut BNFunction,
23108 ) -> *mut BNHighLevelILFunction;
23109}
23110unsafe extern "C" {
23111 pub fn BNNewHighLevelILFunctionReference(
23112 func: *mut BNHighLevelILFunction,
23113 ) -> *mut BNHighLevelILFunction;
23114}
23115unsafe extern "C" {
23116 pub fn BNFreeHighLevelILFunction(func: *mut BNHighLevelILFunction);
23117}
23118unsafe extern "C" {
23119 pub fn BNGetHighLevelILOwnerFunction(func: *mut BNHighLevelILFunction) -> *mut BNFunction;
23120}
23121unsafe extern "C" {
23122 pub fn BNHighLevelILGetCurrentAddress(func: *mut BNHighLevelILFunction) -> u64;
23123}
23124unsafe extern "C" {
23125 pub fn BNHighLevelILSetCurrentAddress(
23126 func: *mut BNHighLevelILFunction,
23127 arch: *mut BNArchitecture,
23128 addr: u64,
23129 );
23130}
23131unsafe extern "C" {
23132 pub fn BNHighLevelILAddExpr(
23133 func: *mut BNHighLevelILFunction,
23134 operation: BNHighLevelILOperation,
23135 size: usize,
23136 a: u64,
23137 b: u64,
23138 c: u64,
23139 d: u64,
23140 e: u64,
23141 ) -> usize;
23142}
23143unsafe extern "C" {
23144 pub fn BNHighLevelILAddExprWithLocation(
23145 func: *mut BNHighLevelILFunction,
23146 operation: BNHighLevelILOperation,
23147 addr: u64,
23148 sourceOperand: u32,
23149 size: usize,
23150 a: u64,
23151 b: u64,
23152 c: u64,
23153 d: u64,
23154 e: u64,
23155 ) -> usize;
23156}
23157unsafe extern "C" {
23158 pub fn BNGetHighLevelILRootExpr(func: *mut BNHighLevelILFunction) -> usize;
23159}
23160unsafe extern "C" {
23161 pub fn BNSetHighLevelILRootExpr(func: *mut BNHighLevelILFunction, expr: usize);
23162}
23163unsafe extern "C" {
23164 pub fn BNFinalizeHighLevelILFunction(func: *mut BNHighLevelILFunction);
23165}
23166unsafe extern "C" {
23167 pub fn BNGenerateHighLevelILSSAForm(
23168 func: *mut BNHighLevelILFunction,
23169 aliases: *mut BNVariable,
23170 aliasCount: usize,
23171 );
23172}
23173unsafe extern "C" {
23174 pub fn BNHighLevelILAddOperandList(
23175 func: *mut BNHighLevelILFunction,
23176 operands: *mut u64,
23177 count: usize,
23178 ) -> usize;
23179}
23180unsafe extern "C" {
23181 pub fn BNHighLevelILGetOperandList(
23182 func: *mut BNHighLevelILFunction,
23183 expr: usize,
23184 operand: usize,
23185 count: *mut usize,
23186 ) -> *mut u64;
23187}
23188unsafe extern "C" {
23189 pub fn BNHighLevelILFreeOperandList(operands: *mut u64);
23190}
23191unsafe extern "C" {
23192 pub fn BNHighLevelILGetOperand(func: *mut BNHighLevelILFunction, offset: usize) -> u64;
23193}
23194unsafe extern "C" {
23195 pub fn BNCacheHighLevelILPossibleValueSet(
23196 func: *mut BNHighLevelILFunction,
23197 pvs: *mut BNPossibleValueSet,
23198 ) -> usize;
23199}
23200unsafe extern "C" {
23201 pub fn BNGetCachedHighLevelILPossibleValueSet(
23202 func: *mut BNHighLevelILFunction,
23203 idx: usize,
23204 ) -> BNPossibleValueSet;
23205}
23206unsafe extern "C" {
23207 pub fn BNGetHighLevelILByIndex(
23208 func: *mut BNHighLevelILFunction,
23209 i: usize,
23210 asFullAst: bool,
23211 ) -> BNHighLevelILInstruction;
23212}
23213unsafe extern "C" {
23214 pub fn BNGetHighLevelILIndexForInstruction(func: *mut BNHighLevelILFunction, i: usize)
23215 -> usize;
23216}
23217unsafe extern "C" {
23218 pub fn BNGetHighLevelILInstructionForExpr(
23219 func: *mut BNHighLevelILFunction,
23220 expr: usize,
23221 ) -> usize;
23222}
23223unsafe extern "C" {
23224 pub fn BNGetHighLevelILInstructionCount(func: *mut BNHighLevelILFunction) -> usize;
23225}
23226unsafe extern "C" {
23227 pub fn BNGetHighLevelILExprCount(func: *mut BNHighLevelILFunction) -> usize;
23228}
23229unsafe extern "C" {
23230 pub fn BNGetMediumLevelILForHighLevelILFunction(
23231 func: *mut BNHighLevelILFunction,
23232 ) -> *mut BNMediumLevelILFunction;
23233}
23234unsafe extern "C" {
23235 pub fn BNGetMediumLevelILExprIndexFromHighLevelIL(
23236 func: *mut BNHighLevelILFunction,
23237 expr: usize,
23238 ) -> usize;
23239}
23240unsafe extern "C" {
23241 pub fn BNGetMediumLevelILExprIndexesFromHighLevelIL(
23242 func: *mut BNHighLevelILFunction,
23243 expr: usize,
23244 count: *mut usize,
23245 ) -> *mut usize;
23246}
23247unsafe extern "C" {
23248 pub fn BNUpdateHighLevelILOperand(
23249 func: *mut BNHighLevelILFunction,
23250 instr: usize,
23251 operandIndex: usize,
23252 value: u64,
23253 );
23254}
23255unsafe extern "C" {
23256 pub fn BNReplaceHighLevelILExpr(func: *mut BNHighLevelILFunction, expr: usize, newExpr: usize);
23257}
23258unsafe extern "C" {
23259 pub fn BNSetHighLevelILExprAttributes(
23260 func: *mut BNHighLevelILFunction,
23261 expr: usize,
23262 attributes: u32,
23263 );
23264}
23265unsafe extern "C" {
23266 pub fn BNGetHighLevelILExprText(
23267 func: *mut BNHighLevelILFunction,
23268 expr: usize,
23269 asFullAst: bool,
23270 count: *mut usize,
23271 settings: *mut BNDisassemblySettings,
23272 ) -> *mut BNDisassemblyTextLine;
23273}
23274unsafe extern "C" {
23275 pub fn BNGetHighLevelILExprType(
23276 func: *mut BNHighLevelILFunction,
23277 expr: usize,
23278 ) -> BNTypeWithConfidence;
23279}
23280unsafe extern "C" {
23281 pub fn BNSetHighLevelILExprType(
23282 func: *mut BNHighLevelILFunction,
23283 expr: usize,
23284 type_: *mut BNTypeWithConfidence,
23285 );
23286}
23287unsafe extern "C" {
23288 pub fn BNGetHighLevelILBasicBlockList(
23289 func: *mut BNHighLevelILFunction,
23290 count: *mut usize,
23291 ) -> *mut *mut BNBasicBlock;
23292}
23293unsafe extern "C" {
23294 pub fn BNGetHighLevelILBasicBlockForInstruction(
23295 func: *mut BNHighLevelILFunction,
23296 i: usize,
23297 ) -> *mut BNBasicBlock;
23298}
23299unsafe extern "C" {
23300 pub fn BNGetHighLevelILSSAForm(func: *mut BNHighLevelILFunction) -> *mut BNHighLevelILFunction;
23301}
23302unsafe extern "C" {
23303 pub fn BNGetHighLevelILNonSSAForm(
23304 func: *mut BNHighLevelILFunction,
23305 ) -> *mut BNHighLevelILFunction;
23306}
23307unsafe extern "C" {
23308 pub fn BNGetHighLevelILSSAInstructionIndex(
23309 func: *mut BNHighLevelILFunction,
23310 instr: usize,
23311 ) -> usize;
23312}
23313unsafe extern "C" {
23314 pub fn BNGetHighLevelILNonSSAInstructionIndex(
23315 func: *mut BNHighLevelILFunction,
23316 instr: usize,
23317 ) -> usize;
23318}
23319unsafe extern "C" {
23320 pub fn BNGetHighLevelILSSAExprIndex(func: *mut BNHighLevelILFunction, expr: usize) -> usize;
23321}
23322unsafe extern "C" {
23323 pub fn BNGetHighLevelILNonSSAExprIndex(func: *mut BNHighLevelILFunction, expr: usize) -> usize;
23324}
23325unsafe extern "C" {
23326 pub fn BNGetHighLevelILSSAVarDefinition(
23327 func: *mut BNHighLevelILFunction,
23328 var: *const BNVariable,
23329 version: usize,
23330 ) -> usize;
23331}
23332unsafe extern "C" {
23333 pub fn BNGetHighLevelILSSAMemoryDefinition(
23334 func: *mut BNHighLevelILFunction,
23335 version: usize,
23336 ) -> usize;
23337}
23338unsafe extern "C" {
23339 pub fn BNGetHighLevelILSSAVarUses(
23340 func: *mut BNHighLevelILFunction,
23341 var: *const BNVariable,
23342 version: usize,
23343 count: *mut usize,
23344 ) -> *mut usize;
23345}
23346unsafe extern "C" {
23347 pub fn BNGetHighLevelILSSAMemoryUses(
23348 func: *mut BNHighLevelILFunction,
23349 version: usize,
23350 count: *mut usize,
23351 ) -> *mut usize;
23352}
23353unsafe extern "C" {
23354 pub fn BNIsHighLevelILSSAVarLive(
23355 func: *mut BNHighLevelILFunction,
23356 var: *const BNVariable,
23357 version: usize,
23358 ) -> bool;
23359}
23360unsafe extern "C" {
23361 pub fn BNIsHighLevelILSSAVarLiveAt(
23362 func: *mut BNHighLevelILFunction,
23363 var: *const BNVariable,
23364 version: usize,
23365 instr: usize,
23366 ) -> bool;
23367}
23368unsafe extern "C" {
23369 pub fn BNIsHighLevelILVarLiveAt(
23370 func: *mut BNHighLevelILFunction,
23371 var: *const BNVariable,
23372 instr: usize,
23373 ) -> bool;
23374}
23375unsafe extern "C" {
23376 pub fn BNHighLevelILHasSideEffects(func: *mut BNHighLevelILFunction, exprIndex: usize) -> bool;
23377}
23378unsafe extern "C" {
23379 pub fn BNGetHighLevelILExprScopeType(
23380 func: *mut BNHighLevelILFunction,
23381 exprIndex: usize,
23382 ) -> BNScopeType;
23383}
23384unsafe extern "C" {
23385 pub fn BNGetHighLevelILVariables(
23386 func: *mut BNHighLevelILFunction,
23387 count: *mut usize,
23388 ) -> *mut BNVariable;
23389}
23390unsafe extern "C" {
23391 pub fn BNGetHighLevelILAliasedVariables(
23392 func: *mut BNHighLevelILFunction,
23393 count: *mut usize,
23394 ) -> *mut BNVariable;
23395}
23396unsafe extern "C" {
23397 pub fn BNGetHighLevelILVariableSSAVersions(
23398 func: *mut BNHighLevelILFunction,
23399 var: *const BNVariable,
23400 count: *mut usize,
23401 ) -> *mut usize;
23402}
23403unsafe extern "C" {
23404 pub fn BNGetHighLevelILVariableDefinitions(
23405 func: *mut BNHighLevelILFunction,
23406 var: *const BNVariable,
23407 count: *mut usize,
23408 ) -> *mut usize;
23409}
23410unsafe extern "C" {
23411 pub fn BNGetHighLevelILVariableUses(
23412 func: *mut BNHighLevelILFunction,
23413 var: *const BNVariable,
23414 count: *mut usize,
23415 ) -> *mut usize;
23416}
23417unsafe extern "C" {
23418 pub fn BNGetHighLevelILSSAVarVersionAtILInstruction(
23419 func: *mut BNHighLevelILFunction,
23420 var: *const BNVariable,
23421 instr: usize,
23422 ) -> usize;
23423}
23424unsafe extern "C" {
23425 pub fn BNGetHighLevelILSSAMemoryVersionAtILInstruction(
23426 func: *mut BNHighLevelILFunction,
23427 instr: usize,
23428 ) -> usize;
23429}
23430unsafe extern "C" {
23431 pub fn BNGetHighLevelILExprIndexForLabel(func: *mut BNHighLevelILFunction, label: u64)
23432 -> usize;
23433}
23434unsafe extern "C" {
23435 pub fn BNGetHighLevelILUsesForLabel(
23436 func: *mut BNHighLevelILFunction,
23437 label: u64,
23438 count: *mut usize,
23439 ) -> *mut usize;
23440}
23441unsafe extern "C" {
23442 pub fn BNHighLevelILExprLessThan(
23443 leftFunc: *mut BNHighLevelILFunction,
23444 leftExpr: usize,
23445 rightFunc: *mut BNHighLevelILFunction,
23446 rightExpr: usize,
23447 ) -> bool;
23448}
23449unsafe extern "C" {
23450 pub fn BNHighLevelILExprEqual(
23451 leftFunc: *mut BNHighLevelILFunction,
23452 leftExpr: usize,
23453 rightFunc: *mut BNHighLevelILFunction,
23454 rightExpr: usize,
23455 ) -> bool;
23456}
23457unsafe extern "C" {
23458 pub fn BNSetHighLevelILDerivedStringReferenceForExpr(
23459 func: *mut BNHighLevelILFunction,
23460 expr: usize,
23461 str_: *mut BNDerivedString,
23462 );
23463}
23464unsafe extern "C" {
23465 pub fn BNRemoveHighLevelILDerivedStringReferenceForExpr(
23466 func: *mut BNHighLevelILFunction,
23467 expr: usize,
23468 );
23469}
23470unsafe extern "C" {
23471 pub fn BNGetHighLevelILDerivedStringReferenceForExpr(
23472 func: *mut BNHighLevelILFunction,
23473 expr: usize,
23474 out: *mut BNDerivedString,
23475 ) -> bool;
23476}
23477unsafe extern "C" {
23478 #[doc = " Type Libraries"]
23479 pub fn BNNewTypeLibrary(
23480 arch: *mut BNArchitecture,
23481 name: *const ::std::os::raw::c_char,
23482 ) -> *mut BNTypeLibrary;
23483}
23484unsafe extern "C" {
23485 pub fn BNNewTypeLibraryReference(lib: *mut BNTypeLibrary) -> *mut BNTypeLibrary;
23486}
23487unsafe extern "C" {
23488 pub fn BNDuplicateTypeLibrary(lib: *mut BNTypeLibrary) -> *mut BNTypeLibrary;
23489}
23490unsafe extern "C" {
23491 pub fn BNLoadTypeLibraryFromFile(path: *const ::std::os::raw::c_char) -> *mut BNTypeLibrary;
23492}
23493unsafe extern "C" {
23494 pub fn BNTypeLibraryDecompressToFile(
23495 lib: *mut BNTypeLibrary,
23496 output: *const ::std::os::raw::c_char,
23497 ) -> bool;
23498}
23499unsafe extern "C" {
23500 pub fn BNFreeTypeLibrary(lib: *mut BNTypeLibrary);
23501}
23502unsafe extern "C" {
23503 pub fn BNLookupTypeLibraryByName(
23504 arch: *mut BNArchitecture,
23505 name: *const ::std::os::raw::c_char,
23506 ) -> *mut BNTypeLibrary;
23507}
23508unsafe extern "C" {
23509 pub fn BNLookupTypeLibraryByGuid(
23510 arch: *mut BNArchitecture,
23511 guid: *const ::std::os::raw::c_char,
23512 ) -> *mut BNTypeLibrary;
23513}
23514unsafe extern "C" {
23515 pub fn BNGetArchitectureTypeLibraries(
23516 arch: *mut BNArchitecture,
23517 count: *mut usize,
23518 ) -> *mut *mut BNTypeLibrary;
23519}
23520unsafe extern "C" {
23521 pub fn BNFreeTypeLibraryList(lib: *mut *mut BNTypeLibrary, count: usize);
23522}
23523unsafe extern "C" {
23524 pub fn BNFinalizeTypeLibrary(lib: *mut BNTypeLibrary) -> bool;
23525}
23526unsafe extern "C" {
23527 pub fn BNRegisterTypeLibrary(lib: *mut BNTypeLibrary);
23528}
23529unsafe extern "C" {
23530 pub fn BNGetTypeLibraryArchitecture(lib: *mut BNTypeLibrary) -> *mut BNArchitecture;
23531}
23532unsafe extern "C" {
23533 pub fn BNSetTypeLibraryName(lib: *mut BNTypeLibrary, name: *const ::std::os::raw::c_char);
23534}
23535unsafe extern "C" {
23536 pub fn BNGetTypeLibraryName(lib: *mut BNTypeLibrary) -> *mut ::std::os::raw::c_char;
23537}
23538unsafe extern "C" {
23539 pub fn BNAddTypeLibraryAlternateName(
23540 lib: *mut BNTypeLibrary,
23541 name: *const ::std::os::raw::c_char,
23542 );
23543}
23544unsafe extern "C" {
23545 pub fn BNRemoveTypeLibraryAlternateName(
23546 lib: *mut BNTypeLibrary,
23547 name: *const ::std::os::raw::c_char,
23548 );
23549}
23550unsafe extern "C" {
23551 pub fn BNGetTypeLibraryAlternateNames(
23552 lib: *mut BNTypeLibrary,
23553 count: *mut usize,
23554 ) -> *mut *mut ::std::os::raw::c_char;
23555}
23556unsafe extern "C" {
23557 pub fn BNSetTypeLibraryDependencyName(
23558 lib: *mut BNTypeLibrary,
23559 name: *const ::std::os::raw::c_char,
23560 );
23561}
23562unsafe extern "C" {
23563 pub fn BNGetTypeLibraryDependencyName(lib: *mut BNTypeLibrary) -> *mut ::std::os::raw::c_char;
23564}
23565unsafe extern "C" {
23566 pub fn BNSetTypeLibraryGuid(lib: *mut BNTypeLibrary, name: *const ::std::os::raw::c_char);
23567}
23568unsafe extern "C" {
23569 pub fn BNGetTypeLibraryGuid(lib: *mut BNTypeLibrary) -> *mut ::std::os::raw::c_char;
23570}
23571unsafe extern "C" {
23572 pub fn BNClearTypeLibraryPlatforms(lib: *mut BNTypeLibrary);
23573}
23574unsafe extern "C" {
23575 pub fn BNAddTypeLibraryPlatform(lib: *mut BNTypeLibrary, platform: *mut BNPlatform);
23576}
23577unsafe extern "C" {
23578 pub fn BNGetTypeLibraryPlatforms(
23579 lib: *mut BNTypeLibrary,
23580 count: *mut usize,
23581 ) -> *mut *mut ::std::os::raw::c_char;
23582}
23583unsafe extern "C" {
23584 pub fn BNTypeLibraryStoreMetadata(
23585 lib: *mut BNTypeLibrary,
23586 key: *const ::std::os::raw::c_char,
23587 value: *mut BNMetadata,
23588 );
23589}
23590unsafe extern "C" {
23591 pub fn BNTypeLibraryQueryMetadata(
23592 lib: *mut BNTypeLibrary,
23593 key: *const ::std::os::raw::c_char,
23594 ) -> *mut BNMetadata;
23595}
23596unsafe extern "C" {
23597 pub fn BNTypeLibraryGetMetadata(lib: *mut BNTypeLibrary) -> *mut BNMetadata;
23598}
23599unsafe extern "C" {
23600 pub fn BNTypeLibraryRemoveMetadata(lib: *mut BNTypeLibrary, key: *const ::std::os::raw::c_char);
23601}
23602unsafe extern "C" {
23603 pub fn BNGetTypeLibraryTypeContainer(lib: *mut BNTypeLibrary) -> *mut BNTypeContainer;
23604}
23605unsafe extern "C" {
23606 pub fn BNAddTypeLibraryNamedObject(
23607 lib: *mut BNTypeLibrary,
23608 name: *mut BNQualifiedName,
23609 type_: *mut BNType,
23610 );
23611}
23612unsafe extern "C" {
23613 pub fn BNRemoveTypeLibraryNamedObject(lib: *mut BNTypeLibrary, name: *mut BNQualifiedName);
23614}
23615unsafe extern "C" {
23616 pub fn BNAddTypeLibraryNamedType(
23617 lib: *mut BNTypeLibrary,
23618 name: *mut BNQualifiedName,
23619 type_: *mut BNType,
23620 );
23621}
23622unsafe extern "C" {
23623 pub fn BNRemoveTypeLibraryNamedType(lib: *mut BNTypeLibrary, name: *mut BNQualifiedName);
23624}
23625unsafe extern "C" {
23626 pub fn BNAddTypeLibraryNamedTypeSource(
23627 lib: *mut BNTypeLibrary,
23628 name: *mut BNQualifiedName,
23629 source: *const ::std::os::raw::c_char,
23630 );
23631}
23632unsafe extern "C" {
23633 pub fn BNGetTypeLibraryNamedObject(
23634 lib: *mut BNTypeLibrary,
23635 name: *mut BNQualifiedName,
23636 ) -> *mut BNType;
23637}
23638unsafe extern "C" {
23639 pub fn BNGetTypeLibraryNamedType(
23640 lib: *mut BNTypeLibrary,
23641 name: *mut BNQualifiedName,
23642 ) -> *mut BNType;
23643}
23644unsafe extern "C" {
23645 pub fn BNGetTypeLibraryNamedTypeSource(
23646 lib: *mut BNTypeLibrary,
23647 name: *mut BNQualifiedName,
23648 ) -> *mut ::std::os::raw::c_char;
23649}
23650unsafe extern "C" {
23651 pub fn BNGetTypeLibraryNamedObjects(
23652 lib: *mut BNTypeLibrary,
23653 count: *mut usize,
23654 ) -> *mut BNQualifiedNameAndType;
23655}
23656unsafe extern "C" {
23657 pub fn BNGetTypeLibraryNamedTypes(
23658 lib: *mut BNTypeLibrary,
23659 count: *mut usize,
23660 ) -> *mut BNQualifiedNameAndType;
23661}
23662unsafe extern "C" {
23663 pub fn BNWriteTypeLibraryToFile(
23664 lib: *mut BNTypeLibrary,
23665 path: *const ::std::os::raw::c_char,
23666 ) -> bool;
23667}
23668unsafe extern "C" {
23669 pub fn BNAddBinaryViewTypeLibrary(view: *mut BNBinaryView, lib: *mut BNTypeLibrary);
23670}
23671unsafe extern "C" {
23672 pub fn BNGetBinaryViewTypeLibrary(
23673 view: *mut BNBinaryView,
23674 name: *const ::std::os::raw::c_char,
23675 ) -> *mut BNTypeLibrary;
23676}
23677unsafe extern "C" {
23678 pub fn BNGetBinaryViewTypeLibraries(
23679 view: *mut BNBinaryView,
23680 count: *mut usize,
23681 ) -> *mut *mut BNTypeLibrary;
23682}
23683unsafe extern "C" {
23684 pub fn BNBinaryViewImportTypeLibraryType(
23685 view: *mut BNBinaryView,
23686 lib: *mut *mut BNTypeLibrary,
23687 name: *mut BNQualifiedName,
23688 ) -> *mut BNType;
23689}
23690unsafe extern "C" {
23691 pub fn BNBinaryViewImportTypeLibraryObject(
23692 view: *mut BNBinaryView,
23693 lib: *mut *mut BNTypeLibrary,
23694 name: *mut BNQualifiedName,
23695 ) -> *mut BNType;
23696}
23697unsafe extern "C" {
23698 pub fn BNBinaryViewImportTypeLibraryTypeByGuid(
23699 view: *mut BNBinaryView,
23700 guid: *const ::std::os::raw::c_char,
23701 ) -> *mut BNType;
23702}
23703unsafe extern "C" {
23704 pub fn BNBinaryViewGetTypeNameByGuid(
23705 view: *mut BNBinaryView,
23706 guid: *const ::std::os::raw::c_char,
23707 ) -> BNQualifiedName;
23708}
23709unsafe extern "C" {
23710 pub fn BNBinaryViewExportTypeToTypeLibrary(
23711 view: *mut BNBinaryView,
23712 lib: *mut BNTypeLibrary,
23713 name: *mut BNQualifiedName,
23714 type_: *mut BNType,
23715 );
23716}
23717unsafe extern "C" {
23718 pub fn BNBinaryViewExportObjectToTypeLibrary(
23719 view: *mut BNBinaryView,
23720 lib: *mut BNTypeLibrary,
23721 name: *mut BNQualifiedName,
23722 type_: *mut BNType,
23723 );
23724}
23725unsafe extern "C" {
23726 pub fn BNBinaryViewSetManualDependencies(
23727 view: *mut BNBinaryView,
23728 viewTypeNames: *mut BNQualifiedName,
23729 libTypeNames: *mut BNQualifiedName,
23730 libNames: *mut *mut ::std::os::raw::c_char,
23731 count: usize,
23732 );
23733}
23734unsafe extern "C" {
23735 pub fn BNBinaryViewRecordImportedObjectLibrary(
23736 view: *mut BNBinaryView,
23737 tgtPlatform: *mut BNPlatform,
23738 tgtAddr: u64,
23739 lib: *mut BNTypeLibrary,
23740 name: *mut BNQualifiedName,
23741 );
23742}
23743unsafe extern "C" {
23744 pub fn BNBinaryViewLookupImportedObjectLibrary(
23745 view: *mut BNBinaryView,
23746 tgtPlatform: *mut BNPlatform,
23747 tgtAddr: u64,
23748 lib: *mut *mut BNTypeLibrary,
23749 name: *mut BNQualifiedName,
23750 ) -> bool;
23751}
23752unsafe extern "C" {
23753 pub fn BNBinaryViewLookupImportedTypeLibrary(
23754 view: *mut BNBinaryView,
23755 typeName: *const BNQualifiedName,
23756 lib: *mut *mut BNTypeLibrary,
23757 resultName: *mut BNQualifiedName,
23758 ) -> bool;
23759}
23760unsafe extern "C" {
23761 #[doc = " Language Representation"]
23762 pub fn BNRegisterLanguageRepresentationFunctionType(
23763 name: *const ::std::os::raw::c_char,
23764 type_: *mut BNCustomLanguageRepresentationFunctionType,
23765 ) -> *mut BNLanguageRepresentationFunctionType;
23766}
23767unsafe extern "C" {
23768 pub fn BNGetLanguageRepresentationFunctionTypeByName(
23769 name: *const ::std::os::raw::c_char,
23770 ) -> *mut BNLanguageRepresentationFunctionType;
23771}
23772unsafe extern "C" {
23773 pub fn BNGetLanguageRepresentationFunctionTypeList(
23774 count: *mut usize,
23775 ) -> *mut *mut BNLanguageRepresentationFunctionType;
23776}
23777unsafe extern "C" {
23778 pub fn BNFreeLanguageRepresentationFunctionTypeList(
23779 types: *mut *mut BNLanguageRepresentationFunctionType,
23780 );
23781}
23782unsafe extern "C" {
23783 pub fn BNGetLanguageRepresentationFunctionTypeName(
23784 type_: *mut BNLanguageRepresentationFunctionType,
23785 ) -> *mut ::std::os::raw::c_char;
23786}
23787unsafe extern "C" {
23788 pub fn BNCreateLanguageRepresentationFunction(
23789 type_: *mut BNLanguageRepresentationFunctionType,
23790 arch: *mut BNArchitecture,
23791 func: *mut BNFunction,
23792 highLevelIL: *mut BNHighLevelILFunction,
23793 ) -> *mut BNLanguageRepresentationFunction;
23794}
23795unsafe extern "C" {
23796 pub fn BNIsLanguageRepresentationFunctionTypeValid(
23797 type_: *mut BNLanguageRepresentationFunctionType,
23798 view: *mut BNBinaryView,
23799 ) -> bool;
23800}
23801unsafe extern "C" {
23802 pub fn BNGetLanguageRepresentationFunctionTypePrinter(
23803 type_: *mut BNLanguageRepresentationFunctionType,
23804 ) -> *mut BNTypePrinter;
23805}
23806unsafe extern "C" {
23807 pub fn BNGetLanguageRepresentationFunctionTypeParser(
23808 type_: *mut BNLanguageRepresentationFunctionType,
23809 ) -> *mut BNTypeParser;
23810}
23811unsafe extern "C" {
23812 pub fn BNGetLanguageRepresentationFunctionTypeLineFormatter(
23813 type_: *mut BNLanguageRepresentationFunctionType,
23814 ) -> *mut BNLineFormatter;
23815}
23816unsafe extern "C" {
23817 pub fn BNGetLanguageRepresentationFunctionTypeFunctionTypeTokens(
23818 type_: *mut BNLanguageRepresentationFunctionType,
23819 func: *mut BNFunction,
23820 settings: *mut BNDisassemblySettings,
23821 count: *mut usize,
23822 ) -> *mut BNDisassemblyTextLine;
23823}
23824unsafe extern "C" {
23825 pub fn BNCreateCustomLanguageRepresentationFunction(
23826 type_: *mut BNLanguageRepresentationFunctionType,
23827 arch: *mut BNArchitecture,
23828 func: *mut BNFunction,
23829 highLevelIL: *mut BNHighLevelILFunction,
23830 callbacks: *mut BNCustomLanguageRepresentationFunction,
23831 ) -> *mut BNLanguageRepresentationFunction;
23832}
23833unsafe extern "C" {
23834 pub fn BNNewLanguageRepresentationFunctionReference(
23835 func: *mut BNLanguageRepresentationFunction,
23836 ) -> *mut BNLanguageRepresentationFunction;
23837}
23838unsafe extern "C" {
23839 pub fn BNFreeLanguageRepresentationFunction(func: *mut BNLanguageRepresentationFunction);
23840}
23841unsafe extern "C" {
23842 pub fn BNGetLanguageRepresentationType(
23843 func: *mut BNLanguageRepresentationFunction,
23844 ) -> *mut BNLanguageRepresentationFunctionType;
23845}
23846unsafe extern "C" {
23847 pub fn BNGetLanguageRepresentationArchitecture(
23848 func: *mut BNLanguageRepresentationFunction,
23849 ) -> *mut BNArchitecture;
23850}
23851unsafe extern "C" {
23852 pub fn BNGetLanguageRepresentationOwnerFunction(
23853 func: *mut BNLanguageRepresentationFunction,
23854 ) -> *mut BNFunction;
23855}
23856unsafe extern "C" {
23857 pub fn BNGetLanguageRepresentationILFunction(
23858 func: *mut BNLanguageRepresentationFunction,
23859 ) -> *mut BNHighLevelILFunction;
23860}
23861unsafe extern "C" {
23862 pub fn BNGetLanguageRepresentationFunctionExprText(
23863 func: *mut BNLanguageRepresentationFunction,
23864 il: *mut BNHighLevelILFunction,
23865 exprIndex: usize,
23866 settings: *mut BNDisassemblySettings,
23867 asFullAst: bool,
23868 precedence: BNOperatorPrecedence,
23869 statement: bool,
23870 count: *mut usize,
23871 ) -> *mut BNDisassemblyTextLine;
23872}
23873unsafe extern "C" {
23874 pub fn BNGetLanguageRepresentationFunctionLinearLines(
23875 func: *mut BNLanguageRepresentationFunction,
23876 il: *mut BNHighLevelILFunction,
23877 exprIndex: usize,
23878 settings: *mut BNDisassemblySettings,
23879 asFullAst: bool,
23880 count: *mut usize,
23881 ) -> *mut BNDisassemblyTextLine;
23882}
23883unsafe extern "C" {
23884 pub fn BNGetLanguageRepresentationFunctionBlockLines(
23885 func: *mut BNLanguageRepresentationFunction,
23886 block: *mut BNBasicBlock,
23887 settings: *mut BNDisassemblySettings,
23888 count: *mut usize,
23889 ) -> *mut BNDisassemblyTextLine;
23890}
23891unsafe extern "C" {
23892 pub fn BNGetLanguageRepresentationFunctionHighlight(
23893 func: *mut BNLanguageRepresentationFunction,
23894 block: *mut BNBasicBlock,
23895 ) -> BNHighlightColor;
23896}
23897unsafe extern "C" {
23898 pub fn BNGetLanguageRepresentationFunctionCommentStartString(
23899 func: *mut BNLanguageRepresentationFunction,
23900 ) -> *mut ::std::os::raw::c_char;
23901}
23902unsafe extern "C" {
23903 pub fn BNGetLanguageRepresentationFunctionCommentEndString(
23904 func: *mut BNLanguageRepresentationFunction,
23905 ) -> *mut ::std::os::raw::c_char;
23906}
23907unsafe extern "C" {
23908 pub fn BNGetLanguageRepresentationFunctionAnnotationStartString(
23909 func: *mut BNLanguageRepresentationFunction,
23910 ) -> *mut ::std::os::raw::c_char;
23911}
23912unsafe extern "C" {
23913 pub fn BNGetLanguageRepresentationFunctionAnnotationEndString(
23914 func: *mut BNLanguageRepresentationFunction,
23915 ) -> *mut ::std::os::raw::c_char;
23916}
23917unsafe extern "C" {
23918 pub fn BNNewFieldResolutionInfoReference(
23919 info: *mut BNFieldResolutionInfo,
23920 ) -> *mut BNFieldResolutionInfo;
23921}
23922unsafe extern "C" {
23923 pub fn BNFreeFieldResolutionInfo(info: *mut BNFieldResolutionInfo);
23924}
23925unsafe extern "C" {
23926 #[doc = " Types"]
23927 pub fn BNTypesEqual(a: *mut BNType, b: *mut BNType) -> bool;
23928}
23929unsafe extern "C" {
23930 pub fn BNTypesNotEqual(a: *mut BNType, b: *mut BNType) -> bool;
23931}
23932unsafe extern "C" {
23933 pub fn BNCreateVoidType() -> *mut BNType;
23934}
23935unsafe extern "C" {
23936 pub fn BNCreateBoolType() -> *mut BNType;
23937}
23938unsafe extern "C" {
23939 pub fn BNCreateIntegerType(
23940 width: usize,
23941 sign: *mut BNBoolWithConfidence,
23942 altName: *const ::std::os::raw::c_char,
23943 ) -> *mut BNType;
23944}
23945unsafe extern "C" {
23946 pub fn BNCreateFloatType(width: usize, altName: *const ::std::os::raw::c_char) -> *mut BNType;
23947}
23948unsafe extern "C" {
23949 pub fn BNCreateWideCharType(
23950 width: usize,
23951 altName: *const ::std::os::raw::c_char,
23952 ) -> *mut BNType;
23953}
23954unsafe extern "C" {
23955 pub fn BNCreateStructureType(s: *mut BNStructure) -> *mut BNType;
23956}
23957unsafe extern "C" {
23958 pub fn BNCreateEnumerationType(
23959 arch: *mut BNArchitecture,
23960 e: *mut BNEnumeration,
23961 width: usize,
23962 isSigned: *mut BNBoolWithConfidence,
23963 ) -> *mut BNType;
23964}
23965unsafe extern "C" {
23966 pub fn BNCreateEnumerationTypeOfWidth(
23967 e: *mut BNEnumeration,
23968 width: usize,
23969 isSigned: *mut BNBoolWithConfidence,
23970 ) -> *mut BNType;
23971}
23972unsafe extern "C" {
23973 pub fn BNCreatePointerType(
23974 arch: *mut BNArchitecture,
23975 type_: *const BNTypeWithConfidence,
23976 cnst: *mut BNBoolWithConfidence,
23977 vltl: *mut BNBoolWithConfidence,
23978 refType: BNReferenceType,
23979 ) -> *mut BNType;
23980}
23981unsafe extern "C" {
23982 pub fn BNCreatePointerTypeOfWidth(
23983 width: usize,
23984 type_: *const BNTypeWithConfidence,
23985 cnst: *mut BNBoolWithConfidence,
23986 vltl: *mut BNBoolWithConfidence,
23987 refType: BNReferenceType,
23988 ) -> *mut BNType;
23989}
23990unsafe extern "C" {
23991 pub fn BNCreateFragmentType(
23992 width: usize,
23993 type_: *const BNTypeWithConfidence,
23994 offset: u64,
23995 endianness: BNEndianness,
23996 ) -> *mut BNType;
23997}
23998unsafe extern "C" {
23999 pub fn BNCreateFragmentTypeBits(
24000 width: usize,
24001 type_: *const BNTypeWithConfidence,
24002 originalFragmentOffsetBytes: u64,
24003 originalFragmentWidthBytes: usize,
24004 endianness: BNEndianness,
24005 fragmentStartBit: usize,
24006 fragmentWidthBits: usize,
24007 fragmentTruncatedStartBits: usize,
24008 wrapBit: usize,
24009 ) -> *mut BNType;
24010}
24011unsafe extern "C" {
24012 pub fn BNCreateArrayType(type_: *const BNTypeWithConfidence, elem: u64) -> *mut BNType;
24013}
24014unsafe extern "C" {
24015 pub fn BNCreateFunctionType(
24016 returnValue: *mut BNReturnValue,
24017 callingConvention: *mut BNCallingConventionWithConfidence,
24018 params: *mut BNFunctionParameter,
24019 paramCount: usize,
24020 varArg: *mut BNBoolWithConfidence,
24021 canReturn: *mut BNBoolWithConfidence,
24022 stackAdjust: *mut BNOffsetWithConfidence,
24023 regStackAdjustRegs: *mut u32,
24024 regStackAdjustValues: *mut BNOffsetWithConfidence,
24025 regStackAdjustCount: usize,
24026 ft: BNNameType,
24027 pure_: *mut BNBoolWithConfidence,
24028 ) -> *mut BNType;
24029}
24030unsafe extern "C" {
24031 pub fn BNCreateVarArgsType() -> *mut BNType;
24032}
24033unsafe extern "C" {
24034 pub fn BNCreateValueType(value: *const ::std::os::raw::c_char) -> *mut BNType;
24035}
24036unsafe extern "C" {
24037 pub fn BNGetNameTypeString(classFunctionType: BNNameType) -> *mut ::std::os::raw::c_char;
24038}
24039unsafe extern "C" {
24040 pub fn BNNewTypeReference(type_: *mut BNType) -> *mut BNType;
24041}
24042unsafe extern "C" {
24043 pub fn BNDuplicateType(type_: *mut BNType) -> *mut BNType;
24044}
24045unsafe extern "C" {
24046 pub fn BNGetTypeAndName(
24047 type_: *mut BNType,
24048 name: *mut BNQualifiedName,
24049 escaping: BNTokenEscapingType,
24050 ) -> *mut ::std::os::raw::c_char;
24051}
24052unsafe extern "C" {
24053 pub fn BNFreeType(type_: *mut BNType);
24054}
24055unsafe extern "C" {
24056 pub fn BNFreeTypeList(types: *mut *mut BNType, count: usize);
24057}
24058unsafe extern "C" {
24059 pub fn BNTypeSetIgnored(type_: *mut BNType, ignored: bool) -> *mut BNType;
24060}
24061unsafe extern "C" {
24062 pub fn BNCreateTypeBuilderFromType(type_: *mut BNType) -> *mut BNTypeBuilder;
24063}
24064unsafe extern "C" {
24065 pub fn BNCreateVoidTypeBuilder() -> *mut BNTypeBuilder;
24066}
24067unsafe extern "C" {
24068 pub fn BNCreateBoolTypeBuilder() -> *mut BNTypeBuilder;
24069}
24070unsafe extern "C" {
24071 pub fn BNCreateIntegerTypeBuilder(
24072 width: usize,
24073 sign: *mut BNBoolWithConfidence,
24074 altName: *const ::std::os::raw::c_char,
24075 ) -> *mut BNTypeBuilder;
24076}
24077unsafe extern "C" {
24078 pub fn BNCreateFloatTypeBuilder(
24079 width: usize,
24080 altName: *const ::std::os::raw::c_char,
24081 ) -> *mut BNTypeBuilder;
24082}
24083unsafe extern "C" {
24084 pub fn BNCreateWideCharTypeBuilder(
24085 width: usize,
24086 altName: *const ::std::os::raw::c_char,
24087 ) -> *mut BNTypeBuilder;
24088}
24089unsafe extern "C" {
24090 pub fn BNCreateStructureTypeBuilder(s: *mut BNStructure) -> *mut BNTypeBuilder;
24091}
24092unsafe extern "C" {
24093 pub fn BNCreateStructureTypeBuilderWithBuilder(
24094 s: *mut BNStructureBuilder,
24095 ) -> *mut BNTypeBuilder;
24096}
24097unsafe extern "C" {
24098 pub fn BNCreateEnumerationTypeBuilder(
24099 arch: *mut BNArchitecture,
24100 e: *mut BNEnumeration,
24101 width: usize,
24102 isSigned: *mut BNBoolWithConfidence,
24103 ) -> *mut BNTypeBuilder;
24104}
24105unsafe extern "C" {
24106 pub fn BNCreateEnumerationTypeBuilderWithBuilder(
24107 arch: *mut BNArchitecture,
24108 e: *mut BNEnumerationBuilder,
24109 width: usize,
24110 isSigned: *mut BNBoolWithConfidence,
24111 ) -> *mut BNTypeBuilder;
24112}
24113unsafe extern "C" {
24114 pub fn BNCreatePointerTypeBuilder(
24115 arch: *mut BNArchitecture,
24116 type_: *const BNTypeWithConfidence,
24117 cnst: *mut BNBoolWithConfidence,
24118 vltl: *mut BNBoolWithConfidence,
24119 refType: BNReferenceType,
24120 ) -> *mut BNTypeBuilder;
24121}
24122unsafe extern "C" {
24123 pub fn BNCreatePointerTypeBuilderOfWidth(
24124 width: usize,
24125 type_: *const BNTypeWithConfidence,
24126 cnst: *mut BNBoolWithConfidence,
24127 vltl: *mut BNBoolWithConfidence,
24128 refType: BNReferenceType,
24129 ) -> *mut BNTypeBuilder;
24130}
24131unsafe extern "C" {
24132 pub fn BNCreateFragmentTypeBuilder(
24133 width: usize,
24134 type_: *const BNTypeWithConfidence,
24135 offset: u64,
24136 endianness: BNEndianness,
24137 ) -> *mut BNTypeBuilder;
24138}
24139unsafe extern "C" {
24140 pub fn BNCreateFragmentTypeBuilderBits(
24141 width: usize,
24142 type_: *const BNTypeWithConfidence,
24143 originalFragmentOffsetBytes: u64,
24144 originalFragmentWidthBytes: usize,
24145 endianness: BNEndianness,
24146 fragmentStartBit: usize,
24147 fragmentWidthBits: usize,
24148 fragmentTruncatedStartBits: usize,
24149 wrapBit: usize,
24150 ) -> *mut BNTypeBuilder;
24151}
24152unsafe extern "C" {
24153 pub fn BNCreateArrayTypeBuilder(
24154 type_: *const BNTypeWithConfidence,
24155 elem: u64,
24156 ) -> *mut BNTypeBuilder;
24157}
24158unsafe extern "C" {
24159 pub fn BNCreateFunctionTypeBuilder(
24160 returnValue: *mut BNReturnValue,
24161 callingConvention: *mut BNCallingConventionWithConfidence,
24162 params: *mut BNFunctionParameter,
24163 paramCount: usize,
24164 varArg: *mut BNBoolWithConfidence,
24165 canReturn: *mut BNBoolWithConfidence,
24166 stackAdjust: *mut BNOffsetWithConfidence,
24167 regStackAdjustRegs: *mut u32,
24168 regStackAdjustValues: *mut BNOffsetWithConfidence,
24169 regStackAdjustCount: usize,
24170 ft: BNNameType,
24171 pure_: *mut BNBoolWithConfidence,
24172 ) -> *mut BNTypeBuilder;
24173}
24174unsafe extern "C" {
24175 pub fn BNCreateVarArgsTypeBuilder() -> *mut BNTypeBuilder;
24176}
24177unsafe extern "C" {
24178 pub fn BNCreateValueTypeBuilder(value: *const ::std::os::raw::c_char) -> *mut BNTypeBuilder;
24179}
24180unsafe extern "C" {
24181 pub fn BNFinalizeTypeBuilder(type_: *mut BNTypeBuilder) -> *mut BNType;
24182}
24183unsafe extern "C" {
24184 pub fn BNDuplicateTypeBuilder(type_: *mut BNTypeBuilder) -> *mut BNTypeBuilder;
24185}
24186unsafe extern "C" {
24187 pub fn BNGetTypeBuilderTypeAndName(
24188 type_: *mut BNTypeBuilder,
24189 name: *mut BNQualifiedName,
24190 ) -> *mut ::std::os::raw::c_char;
24191}
24192unsafe extern "C" {
24193 pub fn BNFreeTypeBuilder(type_: *mut BNTypeBuilder);
24194}
24195unsafe extern "C" {
24196 pub fn BNTypeGetTypeName(nt: *mut BNType) -> BNQualifiedName;
24197}
24198unsafe extern "C" {
24199 pub fn BNGetTypeClass(type_: *mut BNType) -> BNTypeClass;
24200}
24201unsafe extern "C" {
24202 pub fn BNGetTypeWidth(type_: *mut BNType) -> u64;
24203}
24204unsafe extern "C" {
24205 pub fn BNGetTypeAlignment(type_: *mut BNType) -> usize;
24206}
24207unsafe extern "C" {
24208 pub fn BNGetIntegerTypeDisplayType(type_: *mut BNType) -> BNIntegerDisplayType;
24209}
24210unsafe extern "C" {
24211 pub fn BNSetIntegerTypeDisplayType(
24212 type_: *mut BNTypeBuilder,
24213 displayType: BNIntegerDisplayType,
24214 );
24215}
24216unsafe extern "C" {
24217 pub fn BNIsTypeSigned(type_: *mut BNType) -> BNBoolWithConfidence;
24218}
24219unsafe extern "C" {
24220 pub fn BNIsTypeConst(type_: *mut BNType) -> BNBoolWithConfidence;
24221}
24222unsafe extern "C" {
24223 pub fn BNIsTypeVolatile(type_: *mut BNType) -> BNBoolWithConfidence;
24224}
24225unsafe extern "C" {
24226 pub fn BNIsTypeFloatingPoint(type_: *mut BNType) -> bool;
24227}
24228unsafe extern "C" {
24229 pub fn BNGetChildType(type_: *mut BNType) -> BNTypeWithConfidence;
24230}
24231unsafe extern "C" {
24232 pub fn BNGetTypeReturnValue(type_: *mut BNType) -> BNReturnValue;
24233}
24234unsafe extern "C" {
24235 pub fn BNIsTypeReturnValueDefaultLocation(type_: *mut BNType) -> bool;
24236}
24237unsafe extern "C" {
24238 pub fn BNGetTypeReturnValueLocation(type_: *mut BNType) -> BNValueLocationWithConfidence;
24239}
24240unsafe extern "C" {
24241 pub fn BNParseValueLocation(
24242 str_: *const ::std::os::raw::c_char,
24243 arch: *mut BNArchitecture,
24244 location: *mut BNValueLocation,
24245 error: *mut *mut ::std::os::raw::c_char,
24246 ) -> bool;
24247}
24248unsafe extern "C" {
24249 pub fn BNValueLocationToString(
24250 location: *mut BNValueLocation,
24251 arch: *mut BNArchitecture,
24252 ) -> *mut ::std::os::raw::c_char;
24253}
24254unsafe extern "C" {
24255 pub fn BNValueLocationComponentToString(
24256 component: *mut BNValueLocationComponent,
24257 arch: *mut BNArchitecture,
24258 ) -> *mut ::std::os::raw::c_char;
24259}
24260unsafe extern "C" {
24261 pub fn BNFreeValueLocation(location: *mut BNValueLocation);
24262}
24263unsafe extern "C" {
24264 pub fn BNGetTypeCallingConvention(type_: *mut BNType) -> BNCallingConventionWithConfidence;
24265}
24266unsafe extern "C" {
24267 pub fn BNGetTypeCallingConventionName(type_: *mut BNType) -> BNCallingConventionName;
24268}
24269unsafe extern "C" {
24270 pub fn BNGetTypeParameters(type_: *mut BNType, count: *mut usize) -> *mut BNFunctionParameter;
24271}
24272unsafe extern "C" {
24273 pub fn BNFreeTypeParameterList(types: *mut BNFunctionParameter, count: usize);
24274}
24275unsafe extern "C" {
24276 pub fn BNTypeHasVariableArguments(type_: *mut BNType) -> BNBoolWithConfidence;
24277}
24278unsafe extern "C" {
24279 pub fn BNTypeHasTemplateArguments(type_: *mut BNType) -> bool;
24280}
24281unsafe extern "C" {
24282 pub fn BNFunctionTypeCanReturn(type_: *mut BNType) -> BNBoolWithConfidence;
24283}
24284unsafe extern "C" {
24285 pub fn BNIsTypePure(type_: *mut BNType) -> BNBoolWithConfidence;
24286}
24287unsafe extern "C" {
24288 pub fn BNGetTypeStructure(type_: *mut BNType) -> *mut BNStructure;
24289}
24290unsafe extern "C" {
24291 pub fn BNGetTypeEnumeration(type_: *mut BNType) -> *mut BNEnumeration;
24292}
24293unsafe extern "C" {
24294 pub fn BNGetTypeNamedTypeReference(type_: *mut BNType) -> *mut BNNamedTypeReference;
24295}
24296unsafe extern "C" {
24297 pub fn BNGetTypeElementCount(type_: *mut BNType) -> u64;
24298}
24299unsafe extern "C" {
24300 pub fn BNGetTypeOffset(type_: *mut BNType) -> u64;
24301}
24302unsafe extern "C" {
24303 pub fn BNGetTypeFragmentOriginalOffsetBytes(type_: *mut BNType) -> u64;
24304}
24305unsafe extern "C" {
24306 pub fn BNGetTypeFragmentOriginalWidthBytes(type_: *mut BNType) -> usize;
24307}
24308unsafe extern "C" {
24309 pub fn BNGetTypeFragmentStartBit(type_: *mut BNType) -> usize;
24310}
24311unsafe extern "C" {
24312 pub fn BNGetTypeFragmentWidthBits(type_: *mut BNType) -> usize;
24313}
24314unsafe extern "C" {
24315 pub fn BNGetTypeFragmentTruncatedStartBits(type_: *mut BNType) -> usize;
24316}
24317unsafe extern "C" {
24318 pub fn BNGetTypeFragmentWrapBit(type_: *mut BNType) -> usize;
24319}
24320unsafe extern "C" {
24321 pub fn BNGetTypeFragmentEndianness(type_: *mut BNType) -> BNEndianness;
24322}
24323unsafe extern "C" {
24324 pub fn BNGetTypeStackAdjustment(type_: *mut BNType) -> BNOffsetWithConfidence;
24325}
24326unsafe extern "C" {
24327 pub fn BNTypeGetStructureName(type_: *mut BNType) -> BNQualifiedName;
24328}
24329unsafe extern "C" {
24330 pub fn BNGetRegisteredTypeName(type_: *mut BNType) -> *mut BNNamedTypeReference;
24331}
24332unsafe extern "C" {
24333 pub fn BNTypeGetReferenceType(type_: *mut BNType) -> BNReferenceType;
24334}
24335unsafe extern "C" {
24336 pub fn BNTypeGetPointerBaseType(type_: *mut BNType) -> BNPointerBaseType;
24337}
24338unsafe extern "C" {
24339 pub fn BNTypeGetPointerBaseOffset(type_: *mut BNType) -> i64;
24340}
24341unsafe extern "C" {
24342 pub fn BNTypeGetNameType(type_: *mut BNType) -> BNNameType;
24343}
24344unsafe extern "C" {
24345 pub fn BNGetTypeAlternateName(type_: *mut BNType) -> *mut ::std::os::raw::c_char;
24346}
24347unsafe extern "C" {
24348 pub fn BNTypeGetSystemCallNumber(type_: *mut BNType) -> u32;
24349}
24350unsafe extern "C" {
24351 pub fn BNTypeIsSystemCall(type_: *mut BNType) -> bool;
24352}
24353unsafe extern "C" {
24354 pub fn BNGetTypePointerSuffix(type_: *mut BNType, count: *mut usize) -> *mut BNPointerSuffix;
24355}
24356unsafe extern "C" {
24357 pub fn BNGetTypePointerSuffixString(type_: *mut BNType) -> *mut ::std::os::raw::c_char;
24358}
24359unsafe extern "C" {
24360 pub fn BNGetTypePointerSuffixTokens(
24361 type_: *mut BNType,
24362 baseConfidence: u8,
24363 count: *mut usize,
24364 ) -> *mut BNInstructionTextToken;
24365}
24366unsafe extern "C" {
24367 pub fn BNFreePointerSuffixList(suffix: *mut BNPointerSuffix, count: usize);
24368}
24369unsafe extern "C" {
24370 pub fn BNTypeShouldDisplayReturnType(type_: *mut BNType) -> bool;
24371}
24372unsafe extern "C" {
24373 pub fn BNGetTypeAttributes(type_: *mut BNType, count: *mut usize) -> *mut BNTypeAttribute;
24374}
24375unsafe extern "C" {
24376 pub fn BNGetTypeAttributeByName(
24377 type_: *mut BNType,
24378 name: *const ::std::os::raw::c_char,
24379 ) -> *mut ::std::os::raw::c_char;
24380}
24381unsafe extern "C" {
24382 pub fn BNFreeTypeAttributeList(attr: *mut BNTypeAttribute, count: usize);
24383}
24384unsafe extern "C" {
24385 pub fn BNDerefNamedTypeReference(view: *mut BNBinaryView, type_: *mut BNType) -> *mut BNType;
24386}
24387unsafe extern "C" {
24388 pub fn BNGetTypeString(
24389 type_: *mut BNType,
24390 platform: *mut BNPlatform,
24391 escaping: BNTokenEscapingType,
24392 ) -> *mut ::std::os::raw::c_char;
24393}
24394unsafe extern "C" {
24395 pub fn BNGetTypeStringBeforeName(
24396 type_: *mut BNType,
24397 platform: *mut BNPlatform,
24398 escaping: BNTokenEscapingType,
24399 ) -> *mut ::std::os::raw::c_char;
24400}
24401unsafe extern "C" {
24402 pub fn BNGetTypeStringAfterName(
24403 type_: *mut BNType,
24404 platform: *mut BNPlatform,
24405 escaping: BNTokenEscapingType,
24406 ) -> *mut ::std::os::raw::c_char;
24407}
24408unsafe extern "C" {
24409 pub fn BNGetTypeTokens(
24410 type_: *mut BNType,
24411 platform: *mut BNPlatform,
24412 baseConfidence: u8,
24413 escaping: BNTokenEscapingType,
24414 count: *mut usize,
24415 ) -> *mut BNInstructionTextToken;
24416}
24417unsafe extern "C" {
24418 pub fn BNGetTypeTokensBeforeName(
24419 type_: *mut BNType,
24420 platform: *mut BNPlatform,
24421 baseConfidence: u8,
24422 escaping: BNTokenEscapingType,
24423 count: *mut usize,
24424 ) -> *mut BNInstructionTextToken;
24425}
24426unsafe extern "C" {
24427 pub fn BNGetTypeTokensAfterName(
24428 type_: *mut BNType,
24429 platform: *mut BNPlatform,
24430 baseConfidence: u8,
24431 escaping: BNTokenEscapingType,
24432 count: *mut usize,
24433 ) -> *mut BNInstructionTextToken;
24434}
24435unsafe extern "C" {
24436 pub fn BNTypeWithReplacedStructure(
24437 type_: *mut BNType,
24438 from: *mut BNStructure,
24439 to: *mut BNStructure,
24440 ) -> *mut BNType;
24441}
24442unsafe extern "C" {
24443 pub fn BNTypeWithReplacedEnumeration(
24444 type_: *mut BNType,
24445 from: *mut BNEnumeration,
24446 to: *mut BNEnumeration,
24447 ) -> *mut BNType;
24448}
24449unsafe extern "C" {
24450 pub fn BNTypeWithReplacedNamedTypeReference(
24451 type_: *mut BNType,
24452 from: *mut BNNamedTypeReference,
24453 to: *mut BNNamedTypeReference,
24454 ) -> *mut BNType;
24455}
24456unsafe extern "C" {
24457 pub fn BNAddTypeMemberTokens(
24458 type_: *mut BNType,
24459 data: *mut BNBinaryView,
24460 tokens: *mut *mut BNInstructionTextToken,
24461 tokenCount: *mut usize,
24462 offset: i64,
24463 nameList: *mut *mut *mut ::std::os::raw::c_char,
24464 nameCount: *mut usize,
24465 size: usize,
24466 indirect: bool,
24467 info: *mut BNFieldResolutionInfo,
24468 ) -> bool;
24469}
24470unsafe extern "C" {
24471 pub fn BNGetTypeLines(
24472 type_: *mut BNType,
24473 types: *mut BNTypeContainer,
24474 name: *const ::std::os::raw::c_char,
24475 paddingCols: ::std::os::raw::c_int,
24476 collapsed: bool,
24477 escaping: BNTokenEscapingType,
24478 count: *mut usize,
24479 ) -> *mut BNTypeDefinitionLine;
24480}
24481unsafe extern "C" {
24482 pub fn BNFreeTypeDefinitionLineList(list: *mut BNTypeDefinitionLine, count: usize);
24483}
24484unsafe extern "C" {
24485 pub fn BNEnumerateTypesForAccess(
24486 type_: *mut BNType,
24487 data: *mut BNBinaryView,
24488 offset: u64,
24489 size: usize,
24490 baseConfidence: u8,
24491 terminal: ::std::option::Option<
24492 unsafe extern "C" fn(
24493 arg1: *mut ::std::os::raw::c_void,
24494 arg2: *mut BNTypeWithConfidence,
24495 arg3: *mut BNFieldResolutionInfo,
24496 ),
24497 >,
24498 ctxt: *mut ::std::os::raw::c_void,
24499 ) -> bool;
24500}
24501unsafe extern "C" {
24502 pub fn BNTypeBuilderGetTypeName(nt: *mut BNTypeBuilder) -> BNQualifiedName;
24503}
24504unsafe extern "C" {
24505 pub fn BNTypeBuilderSetTypeName(type_: *mut BNTypeBuilder, name: *mut BNQualifiedName);
24506}
24507unsafe extern "C" {
24508 pub fn BNTypeBuilderSetAlternateName(
24509 type_: *mut BNTypeBuilder,
24510 name: *const ::std::os::raw::c_char,
24511 );
24512}
24513unsafe extern "C" {
24514 pub fn BNGetTypeBuilderClass(type_: *mut BNTypeBuilder) -> BNTypeClass;
24515}
24516unsafe extern "C" {
24517 pub fn BNTypeBuilderSetSystemCallNumber(type_: *mut BNTypeBuilder, v: bool, n: u32);
24518}
24519unsafe extern "C" {
24520 pub fn BNGetTypeBuilderWidth(type_: *mut BNTypeBuilder) -> u64;
24521}
24522unsafe extern "C" {
24523 pub fn BNGetTypeBuilderAlignment(type_: *mut BNTypeBuilder) -> usize;
24524}
24525unsafe extern "C" {
24526 pub fn BNIsTypeBuilderSigned(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
24527}
24528unsafe extern "C" {
24529 pub fn BNIsTypeBuilderConst(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
24530}
24531unsafe extern "C" {
24532 pub fn BNIsTypeBuilderVolatile(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
24533}
24534unsafe extern "C" {
24535 pub fn BNIsTypeBuilderFloatingPoint(type_: *mut BNTypeBuilder) -> bool;
24536}
24537unsafe extern "C" {
24538 pub fn BNGetTypeBuilderChildType(type_: *mut BNTypeBuilder) -> BNTypeWithConfidence;
24539}
24540unsafe extern "C" {
24541 pub fn BNGetTypeBuilderReturnValue(type_: *mut BNTypeBuilder) -> BNReturnValue;
24542}
24543unsafe extern "C" {
24544 pub fn BNIsTypeBuilderReturnValueDefaultLocation(type_: *mut BNTypeBuilder) -> bool;
24545}
24546unsafe extern "C" {
24547 pub fn BNGetTypeBuilderReturnValueLocation(
24548 type_: *mut BNTypeBuilder,
24549 ) -> BNValueLocationWithConfidence;
24550}
24551unsafe extern "C" {
24552 pub fn BNGetTypeBuilderCallingConvention(
24553 type_: *mut BNTypeBuilder,
24554 ) -> BNCallingConventionWithConfidence;
24555}
24556unsafe extern "C" {
24557 pub fn BNGetTypeBuilderCallingConventionName(
24558 type_: *mut BNTypeBuilder,
24559 ) -> BNCallingConventionName;
24560}
24561unsafe extern "C" {
24562 pub fn BNGetTypeBuilderParameters(
24563 type_: *mut BNTypeBuilder,
24564 count: *mut usize,
24565 ) -> *mut BNFunctionParameter;
24566}
24567unsafe extern "C" {
24568 pub fn BNTypeBuilderHasVariableArguments(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
24569}
24570unsafe extern "C" {
24571 pub fn BNFunctionTypeBuilderCanReturn(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
24572}
24573unsafe extern "C" {
24574 pub fn BNIsTypeBuilderPure(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
24575}
24576unsafe extern "C" {
24577 pub fn BNGetTypeBuilderStructure(type_: *mut BNTypeBuilder) -> *mut BNStructure;
24578}
24579unsafe extern "C" {
24580 pub fn BNGetTypeBuilderEnumeration(type_: *mut BNTypeBuilder) -> *mut BNEnumeration;
24581}
24582unsafe extern "C" {
24583 pub fn BNGetTypeBuilderNamedTypeReference(
24584 type_: *mut BNTypeBuilder,
24585 ) -> *mut BNNamedTypeReference;
24586}
24587unsafe extern "C" {
24588 pub fn BNSetTypeBuilderNamedTypeReference(
24589 type_: *mut BNTypeBuilder,
24590 ntr: *mut BNNamedTypeReference,
24591 );
24592}
24593unsafe extern "C" {
24594 pub fn BNGetTypeBuilderElementCount(type_: *mut BNTypeBuilder) -> u64;
24595}
24596unsafe extern "C" {
24597 pub fn BNGetTypeBuilderOffset(type_: *mut BNTypeBuilder) -> u64;
24598}
24599unsafe extern "C" {
24600 pub fn BNGetTypeBuilderFragmentOriginalOffsetBytes(type_: *mut BNTypeBuilder) -> u64;
24601}
24602unsafe extern "C" {
24603 pub fn BNGetTypeBuilderFragmentOriginalWidthBytes(type_: *mut BNTypeBuilder) -> usize;
24604}
24605unsafe extern "C" {
24606 pub fn BNGetTypeBuilderFragmentStartBit(type_: *mut BNTypeBuilder) -> usize;
24607}
24608unsafe extern "C" {
24609 pub fn BNGetTypeBuilderFragmentWidthBits(type_: *mut BNTypeBuilder) -> usize;
24610}
24611unsafe extern "C" {
24612 pub fn BNGetTypeBuilderFragmentTruncatedStartBits(type_: *mut BNTypeBuilder) -> usize;
24613}
24614unsafe extern "C" {
24615 pub fn BNGetTypeBuilderFragmentWrapBit(type_: *mut BNTypeBuilder) -> usize;
24616}
24617unsafe extern "C" {
24618 pub fn BNGetTypeBuilderFragmentEndianness(type_: *mut BNTypeBuilder) -> BNEndianness;
24619}
24620unsafe extern "C" {
24621 pub fn BNSetTypeBuilderOffset(type_: *mut BNTypeBuilder, offset: u64);
24622}
24623unsafe extern "C" {
24624 pub fn BNSetTypeBuilderPointerBase(
24625 type_: *mut BNTypeBuilder,
24626 baseType: BNPointerBaseType,
24627 baseOffset: i64,
24628 );
24629}
24630unsafe extern "C" {
24631 pub fn BNSetTypeBuilderFragmentOriginalOffsetBytes(type_: *mut BNTypeBuilder, offset: u64);
24632}
24633unsafe extern "C" {
24634 pub fn BNSetTypeBuilderFragmentOriginalWidthBytes(type_: *mut BNTypeBuilder, size: usize);
24635}
24636unsafe extern "C" {
24637 pub fn BNSetTypeBuilderFragmentStartBit(type_: *mut BNTypeBuilder, startBit: usize);
24638}
24639unsafe extern "C" {
24640 pub fn BNSetTypeBuilderFragmentWidthBits(type_: *mut BNTypeBuilder, widthBits: usize);
24641}
24642unsafe extern "C" {
24643 pub fn BNSetTypeBuilderFragmentTruncatedStartBits(
24644 type_: *mut BNTypeBuilder,
24645 truncatedBits: usize,
24646 );
24647}
24648unsafe extern "C" {
24649 pub fn BNSetTypeBuilderFragmentWrapBit(type_: *mut BNTypeBuilder, wrapBit: usize);
24650}
24651unsafe extern "C" {
24652 pub fn BNSetTypeBuilderFragmentEndianness(type_: *mut BNTypeBuilder, endianness: BNEndianness);
24653}
24654unsafe extern "C" {
24655 pub fn BNSetFunctionTypeBuilderCanReturn(
24656 type_: *mut BNTypeBuilder,
24657 canReturn: *mut BNBoolWithConfidence,
24658 );
24659}
24660unsafe extern "C" {
24661 pub fn BNSetTypeBuilderPure(type_: *mut BNTypeBuilder, pure_: *mut BNBoolWithConfidence);
24662}
24663unsafe extern "C" {
24664 pub fn BNSetFunctionTypeBuilderParameters(
24665 type_: *mut BNTypeBuilder,
24666 params: *mut BNFunctionParameter,
24667 paramCount: usize,
24668 );
24669}
24670unsafe extern "C" {
24671 pub fn BNTypeBuilderSetWidth(type_: *mut BNTypeBuilder, width: usize);
24672}
24673unsafe extern "C" {
24674 pub fn BNTypeBuilderSetAlignment(type_: *mut BNTypeBuilder, alignment: usize);
24675}
24676unsafe extern "C" {
24677 pub fn BNTypeBuilderSetConst(type_: *mut BNTypeBuilder, cnst: *mut BNBoolWithConfidence);
24678}
24679unsafe extern "C" {
24680 pub fn BNTypeBuilderSetVolatile(type_: *mut BNTypeBuilder, vltl: *mut BNBoolWithConfidence);
24681}
24682unsafe extern "C" {
24683 pub fn BNTypeBuilderSetSigned(type_: *mut BNTypeBuilder, sign: *mut BNBoolWithConfidence);
24684}
24685unsafe extern "C" {
24686 pub fn BNTypeBuilderSetChildType(type_: *mut BNTypeBuilder, child: *mut BNTypeWithConfidence);
24687}
24688unsafe extern "C" {
24689 pub fn BNTypeBuilderSetReturnValue(type_: *mut BNTypeBuilder, rv: *mut BNReturnValue);
24690}
24691unsafe extern "C" {
24692 pub fn BNTypeBuilderSetIsReturnValueDefaultLocation(
24693 type_: *mut BNTypeBuilder,
24694 defaultLocation: bool,
24695 );
24696}
24697unsafe extern "C" {
24698 pub fn BNTypeBuilderSetReturnValueLocation(
24699 type_: *mut BNTypeBuilder,
24700 location: *mut BNValueLocationWithConfidence,
24701 );
24702}
24703unsafe extern "C" {
24704 pub fn BNTypeBuilderSetCallingConvention(
24705 type_: *mut BNTypeBuilder,
24706 cc: *mut BNCallingConventionWithConfidence,
24707 );
24708}
24709unsafe extern "C" {
24710 pub fn BNTypeBuilderSetCallingConventionName(
24711 type_: *mut BNTypeBuilder,
24712 cc: BNCallingConventionName,
24713 );
24714}
24715unsafe extern "C" {
24716 pub fn BNGetTypeBuilderStackAdjustment(type_: *mut BNTypeBuilder) -> BNOffsetWithConfidence;
24717}
24718unsafe extern "C" {
24719 pub fn BNTypeBuilderGetStructureName(type_: *mut BNTypeBuilder) -> BNQualifiedName;
24720}
24721unsafe extern "C" {
24722 pub fn BNTypeBuilderGetReferenceType(type_: *mut BNTypeBuilder) -> BNReferenceType;
24723}
24724unsafe extern "C" {
24725 pub fn BNTypeBuilderGetPointerBaseType(type_: *mut BNTypeBuilder) -> BNPointerBaseType;
24726}
24727unsafe extern "C" {
24728 pub fn BNTypeBuilderGetPointerBaseOffset(type_: *mut BNTypeBuilder) -> i64;
24729}
24730unsafe extern "C" {
24731 pub fn BNGetTypeBuilderAlternateName(type_: *mut BNTypeBuilder) -> *mut ::std::os::raw::c_char;
24732}
24733unsafe extern "C" {
24734 pub fn BNTypeBuilderIsSystemCall(type_: *mut BNTypeBuilder) -> bool;
24735}
24736unsafe extern "C" {
24737 pub fn BNTypeBuilderGetSystemCallNumber(type_: *mut BNTypeBuilder) -> u32;
24738}
24739unsafe extern "C" {
24740 pub fn BNTypeBuilderSetStackAdjustment(
24741 type_: *mut BNTypeBuilder,
24742 adjust: *mut BNOffsetWithConfidence,
24743 );
24744}
24745unsafe extern "C" {
24746 pub fn BNGetTypeBuilderPointerSuffix(
24747 type_: *mut BNTypeBuilder,
24748 count: *mut usize,
24749 ) -> *mut BNPointerSuffix;
24750}
24751unsafe extern "C" {
24752 pub fn BNGetTypeBuilderPointerSuffixString(
24753 type_: *mut BNTypeBuilder,
24754 ) -> *mut ::std::os::raw::c_char;
24755}
24756unsafe extern "C" {
24757 pub fn BNGetTypeBuilderPointerSuffixTokens(
24758 type_: *mut BNTypeBuilder,
24759 baseConfidence: u8,
24760 count: *mut usize,
24761 ) -> *mut BNInstructionTextToken;
24762}
24763unsafe extern "C" {
24764 pub fn BNAddTypeBuilderPointerSuffix(type_: *mut BNTypeBuilder, ps: BNPointerSuffix);
24765}
24766unsafe extern "C" {
24767 pub fn BNSetTypeBuilderPointerSuffix(
24768 type_: *mut BNTypeBuilder,
24769 suffix: *mut BNPointerSuffix,
24770 count: usize,
24771 );
24772}
24773unsafe extern "C" {
24774 pub fn BNGetTypeBuilderNameType(type_: *mut BNTypeBuilder) -> BNNameType;
24775}
24776unsafe extern "C" {
24777 pub fn BNTypeBuilderHasTemplateArguments(type_: *mut BNTypeBuilder) -> bool;
24778}
24779unsafe extern "C" {
24780 pub fn BNSetTypeBuilderNameType(type_: *mut BNTypeBuilder, nameType: BNNameType);
24781}
24782unsafe extern "C" {
24783 pub fn BNSetTypeBuilderHasTemplateArguments(
24784 type_: *mut BNTypeBuilder,
24785 hasTemplateArguments: bool,
24786 );
24787}
24788unsafe extern "C" {
24789 pub fn BNSetTypeBuilderAttribute(
24790 type_: *mut BNTypeBuilder,
24791 name: *const ::std::os::raw::c_char,
24792 value: *const ::std::os::raw::c_char,
24793 );
24794}
24795unsafe extern "C" {
24796 pub fn BNSetTypeBuilderAttributeList(
24797 type_: *mut BNTypeBuilder,
24798 attrs: *mut BNTypeAttribute,
24799 count: usize,
24800 );
24801}
24802unsafe extern "C" {
24803 pub fn BNRemoveTypeBuilderAttribute(
24804 type_: *mut BNTypeBuilder,
24805 name: *const ::std::os::raw::c_char,
24806 );
24807}
24808unsafe extern "C" {
24809 pub fn BNGetTypeBuilderAttributes(
24810 type_: *mut BNTypeBuilder,
24811 count: *mut usize,
24812 ) -> *mut BNTypeAttribute;
24813}
24814unsafe extern "C" {
24815 pub fn BNGetTypeBuilderAttributeByName(
24816 type_: *mut BNTypeBuilder,
24817 name: *const ::std::os::raw::c_char,
24818 ) -> *mut ::std::os::raw::c_char;
24819}
24820unsafe extern "C" {
24821 pub fn BNGetTypeBuilderString(
24822 type_: *mut BNTypeBuilder,
24823 platform: *mut BNPlatform,
24824 ) -> *mut ::std::os::raw::c_char;
24825}
24826unsafe extern "C" {
24827 pub fn BNGetTypeBuilderStringBeforeName(
24828 type_: *mut BNTypeBuilder,
24829 platform: *mut BNPlatform,
24830 ) -> *mut ::std::os::raw::c_char;
24831}
24832unsafe extern "C" {
24833 pub fn BNGetTypeBuilderStringAfterName(
24834 type_: *mut BNTypeBuilder,
24835 platform: *mut BNPlatform,
24836 ) -> *mut ::std::os::raw::c_char;
24837}
24838unsafe extern "C" {
24839 pub fn BNGetTypeBuilderTokens(
24840 type_: *mut BNTypeBuilder,
24841 platform: *mut BNPlatform,
24842 baseConfidence: u8,
24843 count: *mut usize,
24844 ) -> *mut BNInstructionTextToken;
24845}
24846unsafe extern "C" {
24847 pub fn BNGetTypeBuilderTokensBeforeName(
24848 type_: *mut BNTypeBuilder,
24849 platform: *mut BNPlatform,
24850 baseConfidence: u8,
24851 count: *mut usize,
24852 ) -> *mut BNInstructionTextToken;
24853}
24854unsafe extern "C" {
24855 pub fn BNGetTypeBuilderTokensAfterName(
24856 type_: *mut BNTypeBuilder,
24857 platform: *mut BNPlatform,
24858 baseConfidence: u8,
24859 count: *mut usize,
24860 ) -> *mut BNInstructionTextToken;
24861}
24862unsafe extern "C" {
24863 pub fn BNCreateNamedTypeReference(
24864 nt: *mut BNNamedTypeReference,
24865 width: usize,
24866 align: usize,
24867 cnst: *mut BNBoolWithConfidence,
24868 vltl: *mut BNBoolWithConfidence,
24869 ) -> *mut BNType;
24870}
24871unsafe extern "C" {
24872 pub fn BNCreateNamedTypeReferenceFromTypeAndId(
24873 id: *const ::std::os::raw::c_char,
24874 name: *mut BNQualifiedName,
24875 type_: *mut BNType,
24876 ) -> *mut BNType;
24877}
24878unsafe extern "C" {
24879 pub fn BNCreateNamedTypeReferenceFromType(
24880 view: *mut BNBinaryView,
24881 name: *mut BNQualifiedName,
24882 ) -> *mut BNType;
24883}
24884unsafe extern "C" {
24885 pub fn BNCreateNamedTypeReferenceBuilder(
24886 nt: *mut BNNamedTypeReference,
24887 width: usize,
24888 align: usize,
24889 cnst: *mut BNBoolWithConfidence,
24890 vltl: *mut BNBoolWithConfidence,
24891 ) -> *mut BNTypeBuilder;
24892}
24893unsafe extern "C" {
24894 pub fn BNCreateNamedTypeReferenceBuilderWithBuilder(
24895 nt: *mut BNNamedTypeReferenceBuilder,
24896 width: usize,
24897 align: usize,
24898 cnst: *mut BNBoolWithConfidence,
24899 vltl: *mut BNBoolWithConfidence,
24900 ) -> *mut BNTypeBuilder;
24901}
24902unsafe extern "C" {
24903 pub fn BNCreateNamedTypeReferenceBuilderFromTypeAndId(
24904 id: *const ::std::os::raw::c_char,
24905 name: *mut BNQualifiedName,
24906 type_: *mut BNType,
24907 ) -> *mut BNTypeBuilder;
24908}
24909unsafe extern "C" {
24910 pub fn BNCreateNamedTypeReferenceBuilderFromType(
24911 view: *mut BNBinaryView,
24912 name: *mut BNQualifiedName,
24913 ) -> *mut BNTypeBuilder;
24914}
24915unsafe extern "C" {
24916 pub fn BNCreateNamedType(
24917 cls: BNNamedTypeReferenceClass,
24918 id: *const ::std::os::raw::c_char,
24919 name: *mut BNQualifiedName,
24920 ) -> *mut BNNamedTypeReference;
24921}
24922unsafe extern "C" {
24923 pub fn BNGetTypeReferenceClass(nt: *mut BNNamedTypeReference) -> BNNamedTypeReferenceClass;
24924}
24925unsafe extern "C" {
24926 pub fn BNGetTypeReferenceId(nt: *mut BNNamedTypeReference) -> *mut ::std::os::raw::c_char;
24927}
24928unsafe extern "C" {
24929 pub fn BNGetTypeReferenceName(nt: *mut BNNamedTypeReference) -> BNQualifiedName;
24930}
24931unsafe extern "C" {
24932 pub fn BNFreeQualifiedName(name: *mut BNQualifiedName);
24933}
24934unsafe extern "C" {
24935 pub fn BNFreeQualifiedNameArray(names: *mut BNQualifiedName, count: usize);
24936}
24937unsafe extern "C" {
24938 pub fn BNFreeNamedTypeReference(nt: *mut BNNamedTypeReference);
24939}
24940unsafe extern "C" {
24941 pub fn BNNewNamedTypeReference(nt: *mut BNNamedTypeReference) -> *mut BNNamedTypeReference;
24942}
24943unsafe extern "C" {
24944 pub fn BNCreateNamedTypeBuilder(
24945 cls: BNNamedTypeReferenceClass,
24946 id: *const ::std::os::raw::c_char,
24947 name: *mut BNQualifiedName,
24948 ) -> *mut BNNamedTypeReferenceBuilder;
24949}
24950unsafe extern "C" {
24951 pub fn BNFreeNamedTypeReferenceBuilder(s: *mut BNNamedTypeReferenceBuilder);
24952}
24953unsafe extern "C" {
24954 pub fn BNSetNamedTypeReferenceBuilderTypeClass(
24955 s: *mut BNNamedTypeReferenceBuilder,
24956 type_: BNNamedTypeReferenceClass,
24957 );
24958}
24959unsafe extern "C" {
24960 pub fn BNSetNamedTypeReferenceBuilderTypeId(
24961 s: *mut BNNamedTypeReferenceBuilder,
24962 id: *const ::std::os::raw::c_char,
24963 );
24964}
24965unsafe extern "C" {
24966 pub fn BNSetNamedTypeReferenceBuilderName(
24967 s: *mut BNNamedTypeReferenceBuilder,
24968 name: *mut BNQualifiedName,
24969 );
24970}
24971unsafe extern "C" {
24972 pub fn BNFinalizeNamedTypeReferenceBuilder(
24973 s: *mut BNNamedTypeReferenceBuilder,
24974 ) -> *mut BNNamedTypeReference;
24975}
24976unsafe extern "C" {
24977 pub fn BNGetTypeReferenceBuilderClass(
24978 nt: *mut BNNamedTypeReferenceBuilder,
24979 ) -> BNNamedTypeReferenceClass;
24980}
24981unsafe extern "C" {
24982 pub fn BNGetTypeReferenceBuilderId(
24983 nt: *mut BNNamedTypeReferenceBuilder,
24984 ) -> *mut ::std::os::raw::c_char;
24985}
24986unsafe extern "C" {
24987 pub fn BNGetTypeReferenceBuilderName(nt: *mut BNNamedTypeReferenceBuilder) -> BNQualifiedName;
24988}
24989unsafe extern "C" {
24990 pub fn BNSetNamedTypeReferenceBuilder(
24991 type_: *mut BNTypeBuilder,
24992 nt: *mut BNNamedTypeReferenceBuilder,
24993 );
24994}
24995unsafe extern "C" {
24996 pub fn BNCreateStructureBuilder() -> *mut BNStructureBuilder;
24997}
24998unsafe extern "C" {
24999 pub fn BNCreateStructureBuilderWithOptions(
25000 type_: BNStructureVariant,
25001 packed: bool,
25002 ) -> *mut BNStructureBuilder;
25003}
25004unsafe extern "C" {
25005 pub fn BNCreateStructureBuilderFromStructure(s: *mut BNStructure) -> *mut BNStructureBuilder;
25006}
25007unsafe extern "C" {
25008 pub fn BNDuplicateStructureBuilder(s: *mut BNStructureBuilder) -> *mut BNStructureBuilder;
25009}
25010unsafe extern "C" {
25011 pub fn BNFinalizeStructureBuilder(s: *mut BNStructureBuilder) -> *mut BNStructure;
25012}
25013unsafe extern "C" {
25014 pub fn BNNewStructureReference(s: *mut BNStructure) -> *mut BNStructure;
25015}
25016unsafe extern "C" {
25017 pub fn BNFreeStructure(s: *mut BNStructure);
25018}
25019unsafe extern "C" {
25020 pub fn BNFreeStructureBuilder(s: *mut BNStructureBuilder);
25021}
25022unsafe extern "C" {
25023 pub fn BNSetStructureBuilder(type_: *mut BNTypeBuilder, s: *mut BNStructureBuilder);
25024}
25025unsafe extern "C" {
25026 pub fn BNGetStructureMemberByName(
25027 s: *mut BNStructure,
25028 name: *const ::std::os::raw::c_char,
25029 ) -> *mut BNStructureMember;
25030}
25031unsafe extern "C" {
25032 pub fn BNGetStructureMemberAtOffset(
25033 s: *mut BNStructure,
25034 offset: i64,
25035 idx: *mut usize,
25036 ) -> *mut BNStructureMember;
25037}
25038unsafe extern "C" {
25039 pub fn BNFreeStructureMember(s: *mut BNStructureMember);
25040}
25041unsafe extern "C" {
25042 pub fn BNGetStructureMembers(s: *mut BNStructure, count: *mut usize) -> *mut BNStructureMember;
25043}
25044unsafe extern "C" {
25045 pub fn BNFreeStructureMemberList(members: *mut BNStructureMember, count: usize);
25046}
25047unsafe extern "C" {
25048 pub fn BNGetStructureMembersIncludingInherited(
25049 s: *mut BNStructure,
25050 types: *mut BNTypeContainer,
25051 count: *mut usize,
25052 ) -> *mut BNInheritedStructureMember;
25053}
25054unsafe extern "C" {
25055 pub fn BNFreeInheritedStructureMemberList(
25056 members: *mut BNInheritedStructureMember,
25057 count: usize,
25058 );
25059}
25060unsafe extern "C" {
25061 pub fn BNGetMemberIncludingInheritedAtOffset(
25062 s: *mut BNStructure,
25063 view: *mut BNBinaryView,
25064 offset: i64,
25065 ) -> *mut BNInheritedStructureMember;
25066}
25067unsafe extern "C" {
25068 pub fn BNFreeInheritedStructureMember(members: *mut BNInheritedStructureMember);
25069}
25070unsafe extern "C" {
25071 pub fn BNGetStructureWidth(s: *mut BNStructure) -> u64;
25072}
25073unsafe extern "C" {
25074 pub fn BNGetStructurePointerOffset(s: *mut BNStructure) -> i64;
25075}
25076unsafe extern "C" {
25077 pub fn BNGetStructureAlignment(s: *mut BNStructure) -> usize;
25078}
25079unsafe extern "C" {
25080 pub fn BNIsStructurePacked(s: *mut BNStructure) -> bool;
25081}
25082unsafe extern "C" {
25083 pub fn BNIsStructureUnion(s: *mut BNStructure) -> bool;
25084}
25085unsafe extern "C" {
25086 pub fn BNStructurePropagatesDataVariableReferences(s: *mut BNStructure) -> bool;
25087}
25088unsafe extern "C" {
25089 pub fn BNGetStructureType(s: *mut BNStructure) -> BNStructureVariant;
25090}
25091unsafe extern "C" {
25092 pub fn BNGetBaseStructuresForStructure(
25093 s: *mut BNStructure,
25094 count: *mut usize,
25095 ) -> *mut BNBaseStructure;
25096}
25097unsafe extern "C" {
25098 pub fn BNFreeBaseStructureList(bases: *mut BNBaseStructure, count: usize);
25099}
25100unsafe extern "C" {
25101 pub fn BNResolveStructureMemberOrBaseMember(
25102 s: *mut BNStructure,
25103 data: *mut BNBinaryView,
25104 offset: u64,
25105 size: usize,
25106 callbackContext: *mut ::std::os::raw::c_void,
25107 resolveFunc: ::std::option::Option<
25108 unsafe extern "C" fn(
25109 ctxt: *mut ::std::os::raw::c_void,
25110 baseName: *mut BNNamedTypeReference,
25111 resolvedStruct: *mut BNStructure,
25112 memberIndex: usize,
25113 structOffset: u64,
25114 adjustedOffset: u64,
25115 member: BNStructureMember,
25116 ),
25117 >,
25118 memberIndexHintValid: bool,
25119 memberIndexHint: usize,
25120 ) -> bool;
25121}
25122unsafe extern "C" {
25123 pub fn BNStructureWithReplacedStructure(
25124 s: *mut BNStructure,
25125 from: *mut BNStructure,
25126 to: *mut BNStructure,
25127 ) -> *mut BNStructure;
25128}
25129unsafe extern "C" {
25130 pub fn BNStructureWithReplacedEnumeration(
25131 s: *mut BNStructure,
25132 from: *mut BNEnumeration,
25133 to: *mut BNEnumeration,
25134 ) -> *mut BNStructure;
25135}
25136unsafe extern "C" {
25137 pub fn BNStructureWithReplacedNamedTypeReference(
25138 s: *mut BNStructure,
25139 from: *mut BNNamedTypeReference,
25140 to: *mut BNNamedTypeReference,
25141 ) -> *mut BNStructure;
25142}
25143unsafe extern "C" {
25144 pub fn BNGetStructureBuilderMemberByName(
25145 s: *mut BNStructureBuilder,
25146 name: *const ::std::os::raw::c_char,
25147 ) -> *mut BNStructureMember;
25148}
25149unsafe extern "C" {
25150 pub fn BNGetStructureBuilderMemberAtOffset(
25151 s: *mut BNStructureBuilder,
25152 offset: i64,
25153 idx: *mut usize,
25154 ) -> *mut BNStructureMember;
25155}
25156unsafe extern "C" {
25157 pub fn BNGetStructureBuilderMembers(
25158 s: *mut BNStructureBuilder,
25159 count: *mut usize,
25160 ) -> *mut BNStructureMember;
25161}
25162unsafe extern "C" {
25163 pub fn BNGetStructureBuilderWidth(s: *mut BNStructureBuilder) -> u64;
25164}
25165unsafe extern "C" {
25166 pub fn BNSetStructureBuilderWidth(s: *mut BNStructureBuilder, width: u64);
25167}
25168unsafe extern "C" {
25169 pub fn BNGetStructureBuilderPointerOffset(s: *mut BNStructureBuilder) -> i64;
25170}
25171unsafe extern "C" {
25172 pub fn BNSetStructureBuilderPointerOffset(s: *mut BNStructureBuilder, offset: i64);
25173}
25174unsafe extern "C" {
25175 pub fn BNGetStructureBuilderAlignment(s: *mut BNStructureBuilder) -> usize;
25176}
25177unsafe extern "C" {
25178 pub fn BNSetStructureBuilderAlignment(s: *mut BNStructureBuilder, align: usize);
25179}
25180unsafe extern "C" {
25181 pub fn BNIsStructureBuilderPacked(s: *mut BNStructureBuilder) -> bool;
25182}
25183unsafe extern "C" {
25184 pub fn BNSetStructureBuilderPacked(s: *mut BNStructureBuilder, packed: bool);
25185}
25186unsafe extern "C" {
25187 pub fn BNIsStructureBuilderUnion(s: *mut BNStructureBuilder) -> bool;
25188}
25189unsafe extern "C" {
25190 pub fn BNSetStructureBuilderType(s: *mut BNStructureBuilder, type_: BNStructureVariant);
25191}
25192unsafe extern "C" {
25193 pub fn BNStructureBuilderPropagatesDataVariableReferences(s: *mut BNStructureBuilder) -> bool;
25194}
25195unsafe extern "C" {
25196 pub fn BNSetStructureBuilderPropagatesDataVariableReferences(
25197 s: *mut BNStructureBuilder,
25198 value: bool,
25199 );
25200}
25201unsafe extern "C" {
25202 pub fn BNGetStructureBuilderType(s: *mut BNStructureBuilder) -> BNStructureVariant;
25203}
25204unsafe extern "C" {
25205 pub fn BNGetBaseStructuresForStructureBuilder(
25206 s: *mut BNStructureBuilder,
25207 count: *mut usize,
25208 ) -> *mut BNBaseStructure;
25209}
25210unsafe extern "C" {
25211 pub fn BNSetBaseStructuresForStructureBuilder(
25212 s: *mut BNStructureBuilder,
25213 bases: *mut BNBaseStructure,
25214 count: usize,
25215 );
25216}
25217unsafe extern "C" {
25218 pub fn BNAddStructureBuilderMember(
25219 s: *mut BNStructureBuilder,
25220 type_: *const BNTypeWithConfidence,
25221 name: *const ::std::os::raw::c_char,
25222 access: BNMemberAccess,
25223 scope: BNMemberScope,
25224 );
25225}
25226unsafe extern "C" {
25227 pub fn BNAddStructureBuilderMemberAtOffset(
25228 s: *mut BNStructureBuilder,
25229 type_: *const BNTypeWithConfidence,
25230 name: *const ::std::os::raw::c_char,
25231 offset: u64,
25232 overwriteExisting: bool,
25233 access: BNMemberAccess,
25234 scope: BNMemberScope,
25235 bitPosition: u8,
25236 bitWidth: u8,
25237 );
25238}
25239unsafe extern "C" {
25240 pub fn BNRemoveStructureBuilderMember(s: *mut BNStructureBuilder, idx: usize);
25241}
25242unsafe extern "C" {
25243 pub fn BNReplaceStructureBuilderMember(
25244 s: *mut BNStructureBuilder,
25245 idx: usize,
25246 type_: *const BNTypeWithConfidence,
25247 name: *const ::std::os::raw::c_char,
25248 overwriteExisting: bool,
25249 );
25250}
25251unsafe extern "C" {
25252 pub fn BNCreateEnumerationBuilder() -> *mut BNEnumerationBuilder;
25253}
25254unsafe extern "C" {
25255 pub fn BNCreateEnumerationBuilderFromEnumeration(
25256 e: *mut BNEnumeration,
25257 ) -> *mut BNEnumerationBuilder;
25258}
25259unsafe extern "C" {
25260 pub fn BNDuplicateEnumerationBuilder(e: *mut BNEnumerationBuilder)
25261 -> *mut BNEnumerationBuilder;
25262}
25263unsafe extern "C" {
25264 pub fn BNFinalizeEnumerationBuilder(e: *mut BNEnumerationBuilder) -> *mut BNEnumeration;
25265}
25266unsafe extern "C" {
25267 pub fn BNNewEnumerationReference(e: *mut BNEnumeration) -> *mut BNEnumeration;
25268}
25269unsafe extern "C" {
25270 pub fn BNFreeEnumeration(e: *mut BNEnumeration);
25271}
25272unsafe extern "C" {
25273 pub fn BNFreeEnumerationBuilder(e: *mut BNEnumerationBuilder);
25274}
25275unsafe extern "C" {
25276 pub fn BNSetEnumerationBuilder(type_: *mut BNTypeBuilder, e: *mut BNEnumerationBuilder);
25277}
25278unsafe extern "C" {
25279 pub fn BNGetEnumerationMembers(
25280 e: *mut BNEnumeration,
25281 count: *mut usize,
25282 ) -> *mut BNEnumerationMember;
25283}
25284unsafe extern "C" {
25285 pub fn BNGetEnumerationTokensForValue(
25286 e: *mut BNEnumeration,
25287 value: u64,
25288 width: u64,
25289 count: *mut usize,
25290 type_: *mut BNType,
25291 ) -> *mut BNInstructionTextToken;
25292}
25293unsafe extern "C" {
25294 pub fn BNFreeEnumerationMemberList(members: *mut BNEnumerationMember, count: usize);
25295}
25296unsafe extern "C" {
25297 pub fn BNGetEnumerationBuilderMembers(
25298 e: *mut BNEnumerationBuilder,
25299 count: *mut usize,
25300 ) -> *mut BNEnumerationMember;
25301}
25302unsafe extern "C" {
25303 pub fn BNAddEnumerationBuilderMember(
25304 e: *mut BNEnumerationBuilder,
25305 name: *const ::std::os::raw::c_char,
25306 );
25307}
25308unsafe extern "C" {
25309 pub fn BNAddEnumerationBuilderMemberWithValue(
25310 e: *mut BNEnumerationBuilder,
25311 name: *const ::std::os::raw::c_char,
25312 value: u64,
25313 );
25314}
25315unsafe extern "C" {
25316 pub fn BNRemoveEnumerationBuilderMember(e: *mut BNEnumerationBuilder, idx: usize);
25317}
25318unsafe extern "C" {
25319 pub fn BNReplaceEnumerationBuilderMember(
25320 e: *mut BNEnumerationBuilder,
25321 idx: usize,
25322 name: *const ::std::os::raw::c_char,
25323 value: u64,
25324 );
25325}
25326unsafe extern "C" {
25327 pub fn BNCreateStructureFromOffsetAccess(
25328 view: *mut BNBinaryView,
25329 name: *mut BNQualifiedName,
25330 newMember: *mut bool,
25331 ) -> *mut BNStructure;
25332}
25333unsafe extern "C" {
25334 pub fn BNCreateStructureMemberFromAccess(
25335 view: *mut BNBinaryView,
25336 name: *mut BNQualifiedName,
25337 offset: u64,
25338 ) -> BNTypeWithConfidence;
25339}
25340unsafe extern "C" {
25341 pub fn BNAddExpressionParserMagicValue(
25342 view: *mut BNBinaryView,
25343 name: *const ::std::os::raw::c_char,
25344 value: u64,
25345 );
25346}
25347unsafe extern "C" {
25348 pub fn BNRemoveExpressionParserMagicValue(
25349 view: *mut BNBinaryView,
25350 name: *const ::std::os::raw::c_char,
25351 );
25352}
25353unsafe extern "C" {
25354 pub fn BNAddExpressionParserMagicValues(
25355 view: *mut BNBinaryView,
25356 names: *mut *const ::std::os::raw::c_char,
25357 values: *mut u64,
25358 count: usize,
25359 );
25360}
25361unsafe extern "C" {
25362 pub fn BNRemoveExpressionParserMagicValues(
25363 view: *mut BNBinaryView,
25364 names: *mut *const ::std::os::raw::c_char,
25365 count: usize,
25366 );
25367}
25368unsafe extern "C" {
25369 pub fn BNGetExpressionParserMagicValue(
25370 view: *mut BNBinaryView,
25371 name: *const ::std::os::raw::c_char,
25372 value: *mut u64,
25373 ) -> bool;
25374}
25375unsafe extern "C" {
25376 pub fn BNGetFunctionParentComponents(
25377 view: *mut BNBinaryView,
25378 func: *mut BNFunction,
25379 count: *mut usize,
25380 ) -> *mut *mut BNComponent;
25381}
25382unsafe extern "C" {
25383 pub fn BNGetDataVariableParentComponents(
25384 view: *mut BNBinaryView,
25385 dataVariable: u64,
25386 count: *mut usize,
25387 ) -> *mut *mut BNComponent;
25388}
25389unsafe extern "C" {
25390 pub fn BNCheckForStringAnnotationType(
25391 view: *mut BNBinaryView,
25392 addr: u64,
25393 value: *mut *mut ::std::os::raw::c_char,
25394 strType: *mut BNStringType,
25395 allowShortStrings: bool,
25396 allowLargeStrings: bool,
25397 childWidth: usize,
25398 ) -> bool;
25399}
25400unsafe extern "C" {
25401 pub fn BNLoadFilename(
25402 filename: *const ::std::os::raw::c_char,
25403 updateAnalysis: bool,
25404 options: *const ::std::os::raw::c_char,
25405 progress: BNProgressFunction,
25406 progressContext: *mut ::std::os::raw::c_void,
25407 ) -> *mut BNBinaryView;
25408}
25409unsafe extern "C" {
25410 pub fn BNLoadProjectFile(
25411 projectFile: *mut BNProjectFile,
25412 updateAnalysis: bool,
25413 options: *const ::std::os::raw::c_char,
25414 progress: BNProgressFunction,
25415 progressContext: *mut ::std::os::raw::c_void,
25416 ) -> *mut BNBinaryView;
25417}
25418unsafe extern "C" {
25419 pub fn BNLoadBinaryView(
25420 view: *mut BNBinaryView,
25421 updateAnalysis: bool,
25422 options: *const ::std::os::raw::c_char,
25423 progress: BNProgressFunction,
25424 progressContext: *mut ::std::os::raw::c_void,
25425 ) -> *mut BNBinaryView;
25426}
25427unsafe extern "C" {
25428 pub fn BNParseTextFormat(filename: *const ::std::os::raw::c_char) -> *mut BNBinaryView;
25429}
25430unsafe extern "C" {
25431 pub fn BNBinaryViewAddExternalLibrary(
25432 view: *mut BNBinaryView,
25433 name: *const ::std::os::raw::c_char,
25434 backingFile: *mut BNProjectFile,
25435 isAuto: bool,
25436 ) -> *mut BNExternalLibrary;
25437}
25438unsafe extern "C" {
25439 pub fn BNBinaryViewRemoveExternalLibrary(
25440 view: *mut BNBinaryView,
25441 name: *const ::std::os::raw::c_char,
25442 );
25443}
25444unsafe extern "C" {
25445 pub fn BNBinaryViewGetExternalLibrary(
25446 view: *mut BNBinaryView,
25447 name: *const ::std::os::raw::c_char,
25448 ) -> *mut BNExternalLibrary;
25449}
25450unsafe extern "C" {
25451 pub fn BNBinaryViewGetExternalLibraries(
25452 view: *mut BNBinaryView,
25453 count: *mut usize,
25454 ) -> *mut *mut BNExternalLibrary;
25455}
25456unsafe extern "C" {
25457 pub fn BNBinaryViewAddExternalLocation(
25458 view: *mut BNBinaryView,
25459 sourceSymbol: *mut BNSymbol,
25460 library: *mut BNExternalLibrary,
25461 targetSymbol: *const ::std::os::raw::c_char,
25462 targetAddress: *mut u64,
25463 isAuto: bool,
25464 ) -> *mut BNExternalLocation;
25465}
25466unsafe extern "C" {
25467 pub fn BNBinaryViewRemoveExternalLocation(view: *mut BNBinaryView, sourceSymbol: *mut BNSymbol);
25468}
25469unsafe extern "C" {
25470 pub fn BNBinaryViewGetExternalLocation(
25471 view: *mut BNBinaryView,
25472 sourceSymbol: *mut BNSymbol,
25473 ) -> *mut BNExternalLocation;
25474}
25475unsafe extern "C" {
25476 pub fn BNBinaryViewGetExternalLocations(
25477 view: *mut BNBinaryView,
25478 count: *mut usize,
25479 ) -> *mut *mut BNExternalLocation;
25480}
25481unsafe extern "C" {
25482 #[doc = " Source code processing"]
25483 pub fn BNPreprocessSource(
25484 source: *const ::std::os::raw::c_char,
25485 fileName: *const ::std::os::raw::c_char,
25486 output: *mut *mut ::std::os::raw::c_char,
25487 errors: *mut *mut ::std::os::raw::c_char,
25488 includeDirs: *mut *const ::std::os::raw::c_char,
25489 includeDirCount: usize,
25490 ) -> bool;
25491}
25492unsafe extern "C" {
25493 pub fn BNParseTypesFromSource(
25494 platform: *mut BNPlatform,
25495 source: *const ::std::os::raw::c_char,
25496 fileName: *const ::std::os::raw::c_char,
25497 result: *mut BNTypeParserResult,
25498 errors: *mut *mut ::std::os::raw::c_char,
25499 includeDirs: *mut *const ::std::os::raw::c_char,
25500 includeDirCount: usize,
25501 autoTypeSource: *const ::std::os::raw::c_char,
25502 ) -> bool;
25503}
25504unsafe extern "C" {
25505 pub fn BNParseTypesFromSourceFile(
25506 platform: *mut BNPlatform,
25507 fileName: *const ::std::os::raw::c_char,
25508 result: *mut BNTypeParserResult,
25509 errors: *mut *mut ::std::os::raw::c_char,
25510 includeDirs: *mut *const ::std::os::raw::c_char,
25511 includeDirCount: usize,
25512 autoTypeSource: *const ::std::os::raw::c_char,
25513 ) -> bool;
25514}
25515unsafe extern "C" {
25516 pub fn BNRegisterTypeParser(
25517 name: *const ::std::os::raw::c_char,
25518 callbacks: *mut BNTypeParserCallbacks,
25519 ) -> *mut BNTypeParser;
25520}
25521unsafe extern "C" {
25522 pub fn BNGetTypeParserList(count: *mut usize) -> *mut *mut BNTypeParser;
25523}
25524unsafe extern "C" {
25525 pub fn BNFreeTypeParserList(parsers: *mut *mut BNTypeParser);
25526}
25527unsafe extern "C" {
25528 pub fn BNGetTypeParserByName(name: *const ::std::os::raw::c_char) -> *mut BNTypeParser;
25529}
25530unsafe extern "C" {
25531 pub fn BNGetDefaultTypeParser() -> *mut BNTypeParser;
25532}
25533unsafe extern "C" {
25534 pub fn BNGetTypeParserName(parser: *mut BNTypeParser) -> *mut ::std::os::raw::c_char;
25535}
25536unsafe extern "C" {
25537 pub fn BNGetTypeParserOptionText(
25538 parser: *mut BNTypeParser,
25539 option: BNTypeParserOption,
25540 value: *const ::std::os::raw::c_char,
25541 result: *mut *mut ::std::os::raw::c_char,
25542 ) -> bool;
25543}
25544unsafe extern "C" {
25545 pub fn BNTypeParserPreprocessSource(
25546 parser: *mut BNTypeParser,
25547 source: *const ::std::os::raw::c_char,
25548 fileName: *const ::std::os::raw::c_char,
25549 platform: *mut BNPlatform,
25550 existingTypes: *mut BNTypeContainer,
25551 options: *const *const ::std::os::raw::c_char,
25552 optionCount: usize,
25553 includeDirs: *const *const ::std::os::raw::c_char,
25554 includeDirCount: usize,
25555 output: *mut *mut ::std::os::raw::c_char,
25556 errors: *mut *mut BNTypeParserError,
25557 errorCount: *mut usize,
25558 ) -> bool;
25559}
25560unsafe extern "C" {
25561 pub fn BNTypeParserParseTypesFromSource(
25562 parser: *mut BNTypeParser,
25563 source: *const ::std::os::raw::c_char,
25564 fileName: *const ::std::os::raw::c_char,
25565 platform: *mut BNPlatform,
25566 existingTypes: *mut BNTypeContainer,
25567 options: *const *const ::std::os::raw::c_char,
25568 optionCount: usize,
25569 includeDirs: *const *const ::std::os::raw::c_char,
25570 includeDirCount: usize,
25571 autoTypeSource: *const ::std::os::raw::c_char,
25572 result: *mut BNTypeParserResult,
25573 errors: *mut *mut BNTypeParserError,
25574 errorCount: *mut usize,
25575 ) -> bool;
25576}
25577unsafe extern "C" {
25578 pub fn BNTypeParserParseTypeString(
25579 parser: *mut BNTypeParser,
25580 source: *const ::std::os::raw::c_char,
25581 platform: *mut BNPlatform,
25582 existingTypes: *mut BNTypeContainer,
25583 result: *mut BNQualifiedNameAndType,
25584 errors: *mut *mut BNTypeParserError,
25585 errorCount: *mut usize,
25586 ) -> bool;
25587}
25588unsafe extern "C" {
25589 pub fn BNParseTypeParserOptionsText(
25590 optionsText: *const ::std::os::raw::c_char,
25591 count: *mut usize,
25592 ) -> *mut *mut ::std::os::raw::c_char;
25593}
25594unsafe extern "C" {
25595 pub fn BNFormatTypeParserParseErrors(
25596 errors: *mut BNTypeParserError,
25597 count: usize,
25598 ) -> *mut ::std::os::raw::c_char;
25599}
25600unsafe extern "C" {
25601 pub fn BNRegisterTypePrinter(
25602 name: *const ::std::os::raw::c_char,
25603 callbacks: *mut BNTypePrinterCallbacks,
25604 ) -> *mut BNTypePrinter;
25605}
25606unsafe extern "C" {
25607 pub fn BNGetTypePrinterList(count: *mut usize) -> *mut *mut BNTypePrinter;
25608}
25609unsafe extern "C" {
25610 pub fn BNFreeTypePrinterList(printers: *mut *mut BNTypePrinter);
25611}
25612unsafe extern "C" {
25613 pub fn BNGetTypePrinterByName(name: *const ::std::os::raw::c_char) -> *mut BNTypePrinter;
25614}
25615unsafe extern "C" {
25616 pub fn BNGetTypePrinterName(printer: *mut BNTypePrinter) -> *mut ::std::os::raw::c_char;
25617}
25618unsafe extern "C" {
25619 pub fn BNGetTypePrinterTypeTokens(
25620 printer: *mut BNTypePrinter,
25621 type_: *mut BNType,
25622 platform: *mut BNPlatform,
25623 name: *mut BNQualifiedName,
25624 baseConfidence: u8,
25625 escaping: BNTokenEscapingType,
25626 result: *mut *mut BNInstructionTextToken,
25627 resultCount: *mut usize,
25628 ) -> bool;
25629}
25630unsafe extern "C" {
25631 pub fn BNGetTypePrinterTypeTokensBeforeName(
25632 printer: *mut BNTypePrinter,
25633 type_: *mut BNType,
25634 platform: *mut BNPlatform,
25635 baseConfidence: u8,
25636 parentType: *mut BNType,
25637 escaping: BNTokenEscapingType,
25638 result: *mut *mut BNInstructionTextToken,
25639 resultCount: *mut usize,
25640 ) -> bool;
25641}
25642unsafe extern "C" {
25643 pub fn BNGetTypePrinterTypeTokensAfterName(
25644 printer: *mut BNTypePrinter,
25645 type_: *mut BNType,
25646 platform: *mut BNPlatform,
25647 baseConfidence: u8,
25648 parentType: *mut BNType,
25649 escaping: BNTokenEscapingType,
25650 result: *mut *mut BNInstructionTextToken,
25651 resultCount: *mut usize,
25652 ) -> bool;
25653}
25654unsafe extern "C" {
25655 pub fn BNGetTypePrinterTypeString(
25656 printer: *mut BNTypePrinter,
25657 type_: *mut BNType,
25658 platform: *mut BNPlatform,
25659 name: *mut BNQualifiedName,
25660 escaping: BNTokenEscapingType,
25661 result: *mut *mut ::std::os::raw::c_char,
25662 ) -> bool;
25663}
25664unsafe extern "C" {
25665 pub fn BNGetTypePrinterTypeStringBeforeName(
25666 printer: *mut BNTypePrinter,
25667 type_: *mut BNType,
25668 platform: *mut BNPlatform,
25669 escaping: BNTokenEscapingType,
25670 result: *mut *mut ::std::os::raw::c_char,
25671 ) -> bool;
25672}
25673unsafe extern "C" {
25674 pub fn BNGetTypePrinterTypeStringAfterName(
25675 printer: *mut BNTypePrinter,
25676 type_: *mut BNType,
25677 platform: *mut BNPlatform,
25678 escaping: BNTokenEscapingType,
25679 result: *mut *mut ::std::os::raw::c_char,
25680 ) -> bool;
25681}
25682unsafe extern "C" {
25683 pub fn BNGetTypePrinterTypeLines(
25684 printer: *mut BNTypePrinter,
25685 type_: *mut BNType,
25686 types: *mut BNTypeContainer,
25687 name: *mut BNQualifiedName,
25688 paddingCols: ::std::os::raw::c_int,
25689 collapsed: bool,
25690 escaping: BNTokenEscapingType,
25691 result: *mut *mut BNTypeDefinitionLine,
25692 resultCount: *mut usize,
25693 ) -> bool;
25694}
25695unsafe extern "C" {
25696 pub fn BNTypePrinterPrintAllTypes(
25697 printer: *mut BNTypePrinter,
25698 names: *mut BNQualifiedName,
25699 types: *mut *mut BNType,
25700 typeCount: usize,
25701 data: *mut BNBinaryView,
25702 paddingCols: ::std::os::raw::c_int,
25703 escaping: BNTokenEscapingType,
25704 result: *mut *mut ::std::os::raw::c_char,
25705 ) -> bool;
25706}
25707unsafe extern "C" {
25708 pub fn BNTypePrinterDefaultPrintAllTypes(
25709 printer: *mut BNTypePrinter,
25710 names: *mut BNQualifiedName,
25711 types: *mut *mut BNType,
25712 typeCount: usize,
25713 data: *mut BNBinaryView,
25714 paddingCols: ::std::os::raw::c_int,
25715 escaping: BNTokenEscapingType,
25716 result: *mut *mut ::std::os::raw::c_char,
25717 ) -> bool;
25718}
25719unsafe extern "C" {
25720 pub fn BNFreeTypeParserResult(result: *mut BNTypeParserResult);
25721}
25722unsafe extern "C" {
25723 pub fn BNFreeTypeParserErrors(errors: *mut BNTypeParserError, count: usize);
25724}
25725unsafe extern "C" {
25726 #[doc = " Updates"]
25727 pub fn BNGetUpdateChannels(
25728 count: *mut usize,
25729 errors: *mut *mut ::std::os::raw::c_char,
25730 ) -> *mut BNUpdateChannel;
25731}
25732unsafe extern "C" {
25733 pub fn BNFreeUpdateChannelList(list: *mut BNUpdateChannel, count: usize);
25734}
25735unsafe extern "C" {
25736 pub fn BNGetUpdateChannelVersions(
25737 channel: *const ::std::os::raw::c_char,
25738 count: *mut usize,
25739 errors: *mut *mut ::std::os::raw::c_char,
25740 ) -> *mut BNUpdateVersion;
25741}
25742unsafe extern "C" {
25743 pub fn BNFreeUpdateChannelVersionList(list: *mut BNUpdateVersion, count: usize);
25744}
25745unsafe extern "C" {
25746 pub fn BNGetFullInfoUpdateChannels(
25747 count: *mut usize,
25748 errors: *mut *mut ::std::os::raw::c_char,
25749 ) -> *mut BNUpdateChannelFullInfo;
25750}
25751unsafe extern "C" {
25752 pub fn BNFreeFullInfoUpdateChannels(list: *mut BNUpdateChannelFullInfo, count: usize);
25753}
25754unsafe extern "C" {
25755 pub fn BNAreUpdatesAvailable(
25756 channel: *const ::std::os::raw::c_char,
25757 expireTime: *mut u64,
25758 serverTime: *mut u64,
25759 errors: *mut *mut ::std::os::raw::c_char,
25760 ) -> bool;
25761}
25762unsafe extern "C" {
25763 pub fn BNUpdateToVersion(
25764 channel: *const ::std::os::raw::c_char,
25765 version: *const ::std::os::raw::c_char,
25766 errors: *mut *mut ::std::os::raw::c_char,
25767 progress: BNProgressFunction,
25768 context: *mut ::std::os::raw::c_void,
25769 ) -> BNUpdateResult;
25770}
25771unsafe extern "C" {
25772 pub fn BNUpdateToLatestVersion(
25773 channel: *const ::std::os::raw::c_char,
25774 errors: *mut *mut ::std::os::raw::c_char,
25775 progress: BNProgressFunction,
25776 context: *mut ::std::os::raw::c_void,
25777 ) -> BNUpdateResult;
25778}
25779unsafe extern "C" {
25780 pub fn BNAreAutoUpdatesEnabled() -> bool;
25781}
25782unsafe extern "C" {
25783 pub fn BNSetAutoUpdatesEnabled(enabled: bool);
25784}
25785unsafe extern "C" {
25786 pub fn BNGetTimeSinceLastUpdateCheck() -> u64;
25787}
25788unsafe extern "C" {
25789 pub fn BNUpdatesChecked();
25790}
25791unsafe extern "C" {
25792 pub fn BNGetActiveUpdateChannel() -> *mut ::std::os::raw::c_char;
25793}
25794unsafe extern "C" {
25795 pub fn BNSetActiveUpdateChannel(channel: *const ::std::os::raw::c_char);
25796}
25797unsafe extern "C" {
25798 pub fn BNIsUpdateInstallationPending() -> bool;
25799}
25800unsafe extern "C" {
25801 pub fn BNInstallPendingUpdate(errors: *mut *mut ::std::os::raw::c_char);
25802}
25803unsafe extern "C" {
25804 #[doc = " Plugin commands"]
25805 pub fn BNRegisterPluginCommandGlobal(
25806 name: *const ::std::os::raw::c_char,
25807 description: *const ::std::os::raw::c_char,
25808 action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
25809 isValid: ::std::option::Option<
25810 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool,
25811 >,
25812 context: *mut ::std::os::raw::c_void,
25813 );
25814}
25815unsafe extern "C" {
25816 pub fn BNRegisterPluginCommand(
25817 name: *const ::std::os::raw::c_char,
25818 description: *const ::std::os::raw::c_char,
25819 action: ::std::option::Option<
25820 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
25821 >,
25822 isValid: ::std::option::Option<
25823 unsafe extern "C" fn(
25824 ctxt: *mut ::std::os::raw::c_void,
25825 view: *mut BNBinaryView,
25826 ) -> bool,
25827 >,
25828 context: *mut ::std::os::raw::c_void,
25829 );
25830}
25831unsafe extern "C" {
25832 pub fn BNRegisterPluginCommandForAddress(
25833 name: *const ::std::os::raw::c_char,
25834 description: *const ::std::os::raw::c_char,
25835 action: ::std::option::Option<
25836 unsafe extern "C" fn(
25837 ctxt: *mut ::std::os::raw::c_void,
25838 view: *mut BNBinaryView,
25839 addr: u64,
25840 ),
25841 >,
25842 isValid: ::std::option::Option<
25843 unsafe extern "C" fn(
25844 ctxt: *mut ::std::os::raw::c_void,
25845 view: *mut BNBinaryView,
25846 addr: u64,
25847 ) -> bool,
25848 >,
25849 context: *mut ::std::os::raw::c_void,
25850 );
25851}
25852unsafe extern "C" {
25853 pub fn BNRegisterPluginCommandForRange(
25854 name: *const ::std::os::raw::c_char,
25855 description: *const ::std::os::raw::c_char,
25856 action: ::std::option::Option<
25857 unsafe extern "C" fn(
25858 ctxt: *mut ::std::os::raw::c_void,
25859 view: *mut BNBinaryView,
25860 addr: u64,
25861 len: u64,
25862 ),
25863 >,
25864 isValid: ::std::option::Option<
25865 unsafe extern "C" fn(
25866 ctxt: *mut ::std::os::raw::c_void,
25867 view: *mut BNBinaryView,
25868 addr: u64,
25869 len: u64,
25870 ) -> bool,
25871 >,
25872 context: *mut ::std::os::raw::c_void,
25873 );
25874}
25875unsafe extern "C" {
25876 pub fn BNRegisterPluginCommandForFunction(
25877 name: *const ::std::os::raw::c_char,
25878 description: *const ::std::os::raw::c_char,
25879 action: ::std::option::Option<
25880 unsafe extern "C" fn(
25881 ctxt: *mut ::std::os::raw::c_void,
25882 view: *mut BNBinaryView,
25883 func: *mut BNFunction,
25884 ),
25885 >,
25886 isValid: ::std::option::Option<
25887 unsafe extern "C" fn(
25888 ctxt: *mut ::std::os::raw::c_void,
25889 view: *mut BNBinaryView,
25890 func: *mut BNFunction,
25891 ) -> bool,
25892 >,
25893 context: *mut ::std::os::raw::c_void,
25894 );
25895}
25896unsafe extern "C" {
25897 pub fn BNRegisterPluginCommandForLowLevelILFunction(
25898 name: *const ::std::os::raw::c_char,
25899 description: *const ::std::os::raw::c_char,
25900 action: ::std::option::Option<
25901 unsafe extern "C" fn(
25902 ctxt: *mut ::std::os::raw::c_void,
25903 view: *mut BNBinaryView,
25904 func: *mut BNLowLevelILFunction,
25905 ),
25906 >,
25907 isValid: ::std::option::Option<
25908 unsafe extern "C" fn(
25909 ctxt: *mut ::std::os::raw::c_void,
25910 view: *mut BNBinaryView,
25911 func: *mut BNLowLevelILFunction,
25912 ) -> bool,
25913 >,
25914 context: *mut ::std::os::raw::c_void,
25915 );
25916}
25917unsafe extern "C" {
25918 pub fn BNRegisterPluginCommandForLowLevelILInstruction(
25919 name: *const ::std::os::raw::c_char,
25920 description: *const ::std::os::raw::c_char,
25921 action: ::std::option::Option<
25922 unsafe extern "C" fn(
25923 ctxt: *mut ::std::os::raw::c_void,
25924 view: *mut BNBinaryView,
25925 func: *mut BNLowLevelILFunction,
25926 instr: usize,
25927 ),
25928 >,
25929 isValid: ::std::option::Option<
25930 unsafe extern "C" fn(
25931 ctxt: *mut ::std::os::raw::c_void,
25932 view: *mut BNBinaryView,
25933 func: *mut BNLowLevelILFunction,
25934 instr: usize,
25935 ) -> bool,
25936 >,
25937 context: *mut ::std::os::raw::c_void,
25938 );
25939}
25940unsafe extern "C" {
25941 pub fn BNRegisterPluginCommandForMediumLevelILFunction(
25942 name: *const ::std::os::raw::c_char,
25943 description: *const ::std::os::raw::c_char,
25944 action: ::std::option::Option<
25945 unsafe extern "C" fn(
25946 ctxt: *mut ::std::os::raw::c_void,
25947 view: *mut BNBinaryView,
25948 func: *mut BNMediumLevelILFunction,
25949 ),
25950 >,
25951 isValid: ::std::option::Option<
25952 unsafe extern "C" fn(
25953 ctxt: *mut ::std::os::raw::c_void,
25954 view: *mut BNBinaryView,
25955 func: *mut BNMediumLevelILFunction,
25956 ) -> bool,
25957 >,
25958 context: *mut ::std::os::raw::c_void,
25959 );
25960}
25961unsafe extern "C" {
25962 pub fn BNRegisterPluginCommandForMediumLevelILInstruction(
25963 name: *const ::std::os::raw::c_char,
25964 description: *const ::std::os::raw::c_char,
25965 action: ::std::option::Option<
25966 unsafe extern "C" fn(
25967 ctxt: *mut ::std::os::raw::c_void,
25968 view: *mut BNBinaryView,
25969 func: *mut BNMediumLevelILFunction,
25970 instr: usize,
25971 ),
25972 >,
25973 isValid: ::std::option::Option<
25974 unsafe extern "C" fn(
25975 ctxt: *mut ::std::os::raw::c_void,
25976 view: *mut BNBinaryView,
25977 func: *mut BNMediumLevelILFunction,
25978 instr: usize,
25979 ) -> bool,
25980 >,
25981 context: *mut ::std::os::raw::c_void,
25982 );
25983}
25984unsafe extern "C" {
25985 pub fn BNRegisterPluginCommandForHighLevelILFunction(
25986 name: *const ::std::os::raw::c_char,
25987 description: *const ::std::os::raw::c_char,
25988 action: ::std::option::Option<
25989 unsafe extern "C" fn(
25990 ctxt: *mut ::std::os::raw::c_void,
25991 view: *mut BNBinaryView,
25992 func: *mut BNHighLevelILFunction,
25993 ),
25994 >,
25995 isValid: ::std::option::Option<
25996 unsafe extern "C" fn(
25997 ctxt: *mut ::std::os::raw::c_void,
25998 view: *mut BNBinaryView,
25999 func: *mut BNHighLevelILFunction,
26000 ) -> bool,
26001 >,
26002 context: *mut ::std::os::raw::c_void,
26003 );
26004}
26005unsafe extern "C" {
26006 pub fn BNRegisterPluginCommandForHighLevelILInstruction(
26007 name: *const ::std::os::raw::c_char,
26008 description: *const ::std::os::raw::c_char,
26009 action: ::std::option::Option<
26010 unsafe extern "C" fn(
26011 ctxt: *mut ::std::os::raw::c_void,
26012 view: *mut BNBinaryView,
26013 func: *mut BNHighLevelILFunction,
26014 instr: usize,
26015 ),
26016 >,
26017 isValid: ::std::option::Option<
26018 unsafe extern "C" fn(
26019 ctxt: *mut ::std::os::raw::c_void,
26020 view: *mut BNBinaryView,
26021 func: *mut BNHighLevelILFunction,
26022 instr: usize,
26023 ) -> bool,
26024 >,
26025 context: *mut ::std::os::raw::c_void,
26026 );
26027}
26028unsafe extern "C" {
26029 pub fn BNRegisterPluginCommandForProject(
26030 name: *const ::std::os::raw::c_char,
26031 description: *const ::std::os::raw::c_char,
26032 action: ::std::option::Option<
26033 unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, project: *mut BNProject),
26034 >,
26035 isValid: ::std::option::Option<
26036 unsafe extern "C" fn(
26037 ctxt: *mut ::std::os::raw::c_void,
26038 project: *mut BNProject,
26039 ) -> bool,
26040 >,
26041 context: *mut ::std::os::raw::c_void,
26042 );
26043}
26044unsafe extern "C" {
26045 pub fn BNGetAllPluginCommands(count: *mut usize) -> *mut BNPluginCommand;
26046}
26047unsafe extern "C" {
26048 pub fn BNGetValidPluginCommandsGlobal(count: *mut usize) -> *mut BNPluginCommand;
26049}
26050unsafe extern "C" {
26051 pub fn BNGetValidPluginCommands(
26052 view: *mut BNBinaryView,
26053 count: *mut usize,
26054 ) -> *mut BNPluginCommand;
26055}
26056unsafe extern "C" {
26057 pub fn BNGetValidPluginCommandsForAddress(
26058 view: *mut BNBinaryView,
26059 addr: u64,
26060 count: *mut usize,
26061 ) -> *mut BNPluginCommand;
26062}
26063unsafe extern "C" {
26064 pub fn BNGetValidPluginCommandsForRange(
26065 view: *mut BNBinaryView,
26066 addr: u64,
26067 len: u64,
26068 count: *mut usize,
26069 ) -> *mut BNPluginCommand;
26070}
26071unsafe extern "C" {
26072 pub fn BNGetValidPluginCommandsForFunction(
26073 view: *mut BNBinaryView,
26074 func: *mut BNFunction,
26075 count: *mut usize,
26076 ) -> *mut BNPluginCommand;
26077}
26078unsafe extern "C" {
26079 pub fn BNGetValidPluginCommandsForLowLevelILFunction(
26080 view: *mut BNBinaryView,
26081 func: *mut BNLowLevelILFunction,
26082 count: *mut usize,
26083 ) -> *mut BNPluginCommand;
26084}
26085unsafe extern "C" {
26086 pub fn BNGetValidPluginCommandsForLowLevelILInstruction(
26087 view: *mut BNBinaryView,
26088 func: *mut BNLowLevelILFunction,
26089 instr: usize,
26090 count: *mut usize,
26091 ) -> *mut BNPluginCommand;
26092}
26093unsafe extern "C" {
26094 pub fn BNGetValidPluginCommandsForMediumLevelILFunction(
26095 view: *mut BNBinaryView,
26096 func: *mut BNMediumLevelILFunction,
26097 count: *mut usize,
26098 ) -> *mut BNPluginCommand;
26099}
26100unsafe extern "C" {
26101 pub fn BNGetValidPluginCommandsForMediumLevelILInstruction(
26102 view: *mut BNBinaryView,
26103 func: *mut BNMediumLevelILFunction,
26104 instr: usize,
26105 count: *mut usize,
26106 ) -> *mut BNPluginCommand;
26107}
26108unsafe extern "C" {
26109 pub fn BNGetValidPluginCommandsForHighLevelILFunction(
26110 view: *mut BNBinaryView,
26111 func: *mut BNHighLevelILFunction,
26112 count: *mut usize,
26113 ) -> *mut BNPluginCommand;
26114}
26115unsafe extern "C" {
26116 pub fn BNGetValidPluginCommandsForHighLevelILInstruction(
26117 view: *mut BNBinaryView,
26118 func: *mut BNHighLevelILFunction,
26119 instr: usize,
26120 count: *mut usize,
26121 ) -> *mut BNPluginCommand;
26122}
26123unsafe extern "C" {
26124 pub fn BNGetValidPluginCommandsForProject(
26125 project: *mut BNProject,
26126 count: *mut usize,
26127 ) -> *mut BNPluginCommand;
26128}
26129unsafe extern "C" {
26130 pub fn BNFreePluginCommandList(commands: *mut BNPluginCommand);
26131}
26132unsafe extern "C" {
26133 #[doc = " Calling conventions"]
26134 pub fn BNCreateCallingConvention(
26135 arch: *mut BNArchitecture,
26136 name: *const ::std::os::raw::c_char,
26137 cc: *mut BNCustomCallingConvention,
26138 ) -> *mut BNCallingConvention;
26139}
26140unsafe extern "C" {
26141 pub fn BNRegisterCallingConvention(arch: *mut BNArchitecture, cc: *mut BNCallingConvention);
26142}
26143unsafe extern "C" {
26144 pub fn BNNewCallingConventionReference(
26145 cc: *mut BNCallingConvention,
26146 ) -> *mut BNCallingConvention;
26147}
26148unsafe extern "C" {
26149 pub fn BNFreeCallingConvention(cc: *mut BNCallingConvention);
26150}
26151unsafe extern "C" {
26152 pub fn BNGetArchitectureCallingConventions(
26153 arch: *mut BNArchitecture,
26154 count: *mut usize,
26155 ) -> *mut *mut BNCallingConvention;
26156}
26157unsafe extern "C" {
26158 pub fn BNFreeCallingConventionList(list: *mut *mut BNCallingConvention, count: usize);
26159}
26160unsafe extern "C" {
26161 pub fn BNGetArchitectureCallingConventionByName(
26162 arch: *mut BNArchitecture,
26163 name: *const ::std::os::raw::c_char,
26164 ) -> *mut BNCallingConvention;
26165}
26166unsafe extern "C" {
26167 pub fn BNGetCallingConventionArchitecture(cc: *mut BNCallingConvention) -> *mut BNArchitecture;
26168}
26169unsafe extern "C" {
26170 pub fn BNGetCallingConventionName(cc: *mut BNCallingConvention) -> *mut ::std::os::raw::c_char;
26171}
26172unsafe extern "C" {
26173 pub fn BNGetCallerSavedRegisters(cc: *mut BNCallingConvention, count: *mut usize) -> *mut u32;
26174}
26175unsafe extern "C" {
26176 pub fn BNGetCalleeSavedRegisters(cc: *mut BNCallingConvention, count: *mut usize) -> *mut u32;
26177}
26178unsafe extern "C" {
26179 pub fn BNGetIntegerArgumentRegisters(
26180 cc: *mut BNCallingConvention,
26181 count: *mut usize,
26182 ) -> *mut u32;
26183}
26184unsafe extern "C" {
26185 pub fn BNGetFloatArgumentRegisters(cc: *mut BNCallingConvention, count: *mut usize)
26186 -> *mut u32;
26187}
26188unsafe extern "C" {
26189 pub fn BNGetRequiredArgumentRegisters(
26190 cc: *mut BNCallingConvention,
26191 count: *mut usize,
26192 ) -> *mut u32;
26193}
26194unsafe extern "C" {
26195 pub fn BNGetRequiredClobberedRegisters(
26196 cc: *mut BNCallingConvention,
26197 count: *mut usize,
26198 ) -> *mut u32;
26199}
26200unsafe extern "C" {
26201 pub fn BNAreArgumentRegistersSharedIndex(cc: *mut BNCallingConvention) -> bool;
26202}
26203unsafe extern "C" {
26204 pub fn BNAreArgumentRegistersUsedForVarArgs(cc: *mut BNCallingConvention) -> bool;
26205}
26206unsafe extern "C" {
26207 pub fn BNIsStackReservedForArgumentRegisters(cc: *mut BNCallingConvention) -> bool;
26208}
26209unsafe extern "C" {
26210 pub fn BNIsStackAdjustedOnReturn(cc: *mut BNCallingConvention) -> bool;
26211}
26212unsafe extern "C" {
26213 pub fn BNIsEligibleForHeuristics(cc: *mut BNCallingConvention) -> bool;
26214}
26215unsafe extern "C" {
26216 pub fn BNGetIntegerReturnValueRegister(cc: *mut BNCallingConvention) -> u32;
26217}
26218unsafe extern "C" {
26219 pub fn BNGetHighIntegerReturnValueRegister(cc: *mut BNCallingConvention) -> u32;
26220}
26221unsafe extern "C" {
26222 pub fn BNGetFloatReturnValueRegister(cc: *mut BNCallingConvention) -> u32;
26223}
26224unsafe extern "C" {
26225 pub fn BNGetGlobalPointerRegisters(cc: *mut BNCallingConvention, count: *mut usize)
26226 -> *mut u32;
26227}
26228unsafe extern "C" {
26229 pub fn BNGetImplicitlyDefinedRegisters(
26230 cc: *mut BNCallingConvention,
26231 count: *mut usize,
26232 ) -> *mut u32;
26233}
26234unsafe extern "C" {
26235 pub fn BNGetIncomingRegisterValue(
26236 cc: *mut BNCallingConvention,
26237 reg: u32,
26238 func: *mut BNFunction,
26239 ) -> BNRegisterValue;
26240}
26241unsafe extern "C" {
26242 pub fn BNGetIncomingFlagValue(
26243 cc: *mut BNCallingConvention,
26244 reg: u32,
26245 func: *mut BNFunction,
26246 ) -> BNRegisterValue;
26247}
26248unsafe extern "C" {
26249 pub fn BNGetCallLayout(
26250 cc: *mut BNCallingConvention,
26251 view: *mut BNBinaryView,
26252 returnValue: *const BNReturnValue,
26253 params: *const BNFunctionParameter,
26254 paramCount: usize,
26255 permittedRegs: *const u32,
26256 permittedRegCount: usize,
26257 ) -> BNCallLayout;
26258}
26259unsafe extern "C" {
26260 pub fn BNGetCallLayoutDefaultPermittedArgs(
26261 cc: *mut BNCallingConvention,
26262 view: *mut BNBinaryView,
26263 returnValue: *const BNReturnValue,
26264 params: *const BNFunctionParameter,
26265 paramCount: usize,
26266 ) -> BNCallLayout;
26267}
26268unsafe extern "C" {
26269 pub fn BNGetDefaultCallLayout(
26270 cc: *mut BNCallingConvention,
26271 view: *mut BNBinaryView,
26272 returnValue: *const BNReturnValue,
26273 params: *const BNFunctionParameter,
26274 paramCount: usize,
26275 permittedRegs: *const u32,
26276 permittedRegCount: usize,
26277 ) -> BNCallLayout;
26278}
26279unsafe extern "C" {
26280 pub fn BNGetDefaultCallLayoutDefaultPermittedArgs(
26281 cc: *mut BNCallingConvention,
26282 view: *mut BNBinaryView,
26283 returnValue: *const BNReturnValue,
26284 params: *const BNFunctionParameter,
26285 paramCount: usize,
26286 ) -> BNCallLayout;
26287}
26288unsafe extern "C" {
26289 pub fn BNFreeCallLayout(layout: *mut BNCallLayout);
26290}
26291unsafe extern "C" {
26292 pub fn BNGetReturnValueLocation(
26293 cc: *mut BNCallingConvention,
26294 view: *mut BNBinaryView,
26295 returnValue: *mut BNReturnValue,
26296 ) -> BNValueLocation;
26297}
26298unsafe extern "C" {
26299 pub fn BNGetDefaultReturnValueLocation(
26300 cc: *mut BNCallingConvention,
26301 view: *mut BNBinaryView,
26302 returnValue: *mut BNReturnValue,
26303 ) -> BNValueLocation;
26304}
26305unsafe extern "C" {
26306 pub fn BNGetParameterLocations(
26307 cc: *mut BNCallingConvention,
26308 view: *mut BNBinaryView,
26309 returnValue: *mut BNValueLocation,
26310 params: *mut BNFunctionParameter,
26311 paramCount: usize,
26312 permittedRegs: *const u32,
26313 permittedRegCount: usize,
26314 outCount: *mut usize,
26315 ) -> *mut BNValueLocation;
26316}
26317unsafe extern "C" {
26318 pub fn BNGetParameterLocationsDefaultPermittedArgs(
26319 cc: *mut BNCallingConvention,
26320 view: *mut BNBinaryView,
26321 returnValue: *mut BNValueLocation,
26322 params: *mut BNFunctionParameter,
26323 paramCount: usize,
26324 outCount: *mut usize,
26325 ) -> *mut BNValueLocation;
26326}
26327unsafe extern "C" {
26328 pub fn BNGetDefaultParameterLocations(
26329 cc: *mut BNCallingConvention,
26330 view: *mut BNBinaryView,
26331 returnValue: *mut BNValueLocation,
26332 params: *mut BNFunctionParameter,
26333 paramCount: usize,
26334 permittedRegs: *const u32,
26335 permittedRegCount: usize,
26336 outCount: *mut usize,
26337 ) -> *mut BNValueLocation;
26338}
26339unsafe extern "C" {
26340 pub fn BNGetDefaultParameterLocationsDefaultPermittedArgs(
26341 cc: *mut BNCallingConvention,
26342 view: *mut BNBinaryView,
26343 returnValue: *mut BNValueLocation,
26344 params: *mut BNFunctionParameter,
26345 paramCount: usize,
26346 outCount: *mut usize,
26347 ) -> *mut BNValueLocation;
26348}
26349unsafe extern "C" {
26350 pub fn BNFreeValueLocationList(locations: *mut BNValueLocation, count: usize);
26351}
26352unsafe extern "C" {
26353 pub fn BNGetParameterOrderingForVariables(
26354 cc: *mut BNCallingConvention,
26355 view: *mut BNBinaryView,
26356 paramVars: *const BNVariable,
26357 paramTypes: *mut *const BNType,
26358 paramCount: usize,
26359 count: *mut usize,
26360 ) -> *mut BNVariable;
26361}
26362unsafe extern "C" {
26363 pub fn BNGetDefaultParameterOrderingForVariables(
26364 cc: *mut BNCallingConvention,
26365 paramVars: *const BNVariable,
26366 paramTypes: *mut *const BNType,
26367 paramCount: usize,
26368 count: *mut usize,
26369 ) -> *mut BNVariable;
26370}
26371unsafe extern "C" {
26372 pub fn BNGetStackAdjustmentForLocations(
26373 cc: *mut BNCallingConvention,
26374 view: *mut BNBinaryView,
26375 returnValue: *mut BNValueLocation,
26376 paramLocations: *const BNValueLocation,
26377 paramTypes: *mut *const BNType,
26378 paramCount: usize,
26379 ) -> i64;
26380}
26381unsafe extern "C" {
26382 pub fn BNGetDefaultStackAdjustmentForLocations(
26383 cc: *mut BNCallingConvention,
26384 returnValue: *mut BNValueLocation,
26385 paramLocations: *const BNValueLocation,
26386 paramTypes: *mut *const BNType,
26387 paramCount: usize,
26388 ) -> i64;
26389}
26390unsafe extern "C" {
26391 pub fn BNGetCallingConventionRegisterStackAdjustments(
26392 cc: *mut BNCallingConvention,
26393 view: *mut BNBinaryView,
26394 returnValue: *mut BNValueLocation,
26395 params: *mut BNValueLocation,
26396 paramCount: usize,
26397 outRegs: *mut *mut u32,
26398 outAdjust: *mut *mut i32,
26399 ) -> usize;
26400}
26401unsafe extern "C" {
26402 pub fn BNGetCallingConventionDefaultRegisterStackAdjustments(
26403 cc: *mut BNCallingConvention,
26404 returnValue: *mut BNValueLocation,
26405 params: *mut BNValueLocation,
26406 paramCount: usize,
26407 outRegs: *mut *mut u32,
26408 outAdjust: *mut *mut i32,
26409 ) -> usize;
26410}
26411unsafe extern "C" {
26412 pub fn BNFreeCallingConventionRegisterStackAdjustments(regs: *mut u32, adjust: *mut i32);
26413}
26414unsafe extern "C" {
26415 pub fn BNGetIncomingVariableForParameterVariable(
26416 cc: *mut BNCallingConvention,
26417 var: *const BNVariable,
26418 func: *mut BNFunction,
26419 ) -> BNVariable;
26420}
26421unsafe extern "C" {
26422 pub fn BNGetParameterVariableForIncomingVariable(
26423 cc: *mut BNCallingConvention,
26424 var: *const BNVariable,
26425 func: *mut BNFunction,
26426 ) -> BNVariable;
26427}
26428unsafe extern "C" {
26429 pub fn BNGetDefaultIncomingVariableForParameterVariable(
26430 cc: *mut BNCallingConvention,
26431 var: *const BNVariable,
26432 ) -> BNVariable;
26433}
26434unsafe extern "C" {
26435 pub fn BNGetDefaultParameterVariableForIncomingVariable(
26436 cc: *mut BNCallingConvention,
26437 var: *const BNVariable,
26438 ) -> BNVariable;
26439}
26440unsafe extern "C" {
26441 pub fn BNIsReturnTypeRegisterCompatible(
26442 cc: *mut BNCallingConvention,
26443 view: *mut BNBinaryView,
26444 type_: *mut BNType,
26445 ) -> bool;
26446}
26447unsafe extern "C" {
26448 pub fn BNDefaultIsReturnTypeRegisterCompatible(
26449 cc: *mut BNCallingConvention,
26450 type_: *mut BNType,
26451 ) -> bool;
26452}
26453unsafe extern "C" {
26454 pub fn BNGetIndirectReturnValueLocation(cc: *mut BNCallingConvention) -> BNVariable;
26455}
26456unsafe extern "C" {
26457 pub fn BNGetDefaultIndirectReturnValueLocation(cc: *mut BNCallingConvention) -> BNVariable;
26458}
26459unsafe extern "C" {
26460 pub fn BNGetReturnedIndirectReturnValuePointer(
26461 cc: *mut BNCallingConvention,
26462 outVar: *mut BNVariable,
26463 ) -> bool;
26464}
26465unsafe extern "C" {
26466 pub fn BNIsArgumentTypeRegisterCompatible(
26467 cc: *mut BNCallingConvention,
26468 view: *mut BNBinaryView,
26469 type_: *mut BNType,
26470 ) -> bool;
26471}
26472unsafe extern "C" {
26473 pub fn BNDefaultIsArgumentTypeRegisterCompatible(
26474 cc: *mut BNCallingConvention,
26475 type_: *mut BNType,
26476 ) -> bool;
26477}
26478unsafe extern "C" {
26479 pub fn BNIsNonRegisterArgumentIndirect(
26480 cc: *mut BNCallingConvention,
26481 view: *mut BNBinaryView,
26482 type_: *mut BNType,
26483 ) -> bool;
26484}
26485unsafe extern "C" {
26486 pub fn BNAreStackArgumentsNaturallyAligned(cc: *mut BNCallingConvention) -> bool;
26487}
26488unsafe extern "C" {
26489 pub fn BNAreStackArgumentsPushedLeftToRight(cc: *mut BNCallingConvention) -> bool;
26490}
26491unsafe extern "C" {
26492 pub fn BNGetArchitectureDefaultCallingConvention(
26493 arch: *mut BNArchitecture,
26494 ) -> *mut BNCallingConvention;
26495}
26496unsafe extern "C" {
26497 pub fn BNGetArchitectureCdeclCallingConvention(
26498 arch: *mut BNArchitecture,
26499 ) -> *mut BNCallingConvention;
26500}
26501unsafe extern "C" {
26502 pub fn BNGetArchitectureStdcallCallingConvention(
26503 arch: *mut BNArchitecture,
26504 ) -> *mut BNCallingConvention;
26505}
26506unsafe extern "C" {
26507 pub fn BNGetArchitectureFastcallCallingConvention(
26508 arch: *mut BNArchitecture,
26509 ) -> *mut BNCallingConvention;
26510}
26511unsafe extern "C" {
26512 pub fn BNSetArchitectureDefaultCallingConvention(
26513 arch: *mut BNArchitecture,
26514 cc: *mut BNCallingConvention,
26515 );
26516}
26517unsafe extern "C" {
26518 pub fn BNSetArchitectureCdeclCallingConvention(
26519 arch: *mut BNArchitecture,
26520 cc: *mut BNCallingConvention,
26521 );
26522}
26523unsafe extern "C" {
26524 pub fn BNSetArchitectureStdcallCallingConvention(
26525 arch: *mut BNArchitecture,
26526 cc: *mut BNCallingConvention,
26527 );
26528}
26529unsafe extern "C" {
26530 pub fn BNSetArchitectureFastcallCallingConvention(
26531 arch: *mut BNArchitecture,
26532 cc: *mut BNCallingConvention,
26533 );
26534}
26535unsafe extern "C" {
26536 #[doc = " Platforms"]
26537 pub fn BNCreatePlatform(
26538 arch: *mut BNArchitecture,
26539 name: *const ::std::os::raw::c_char,
26540 ) -> *mut BNPlatform;
26541}
26542unsafe extern "C" {
26543 pub fn BNCreatePlatformWithTypes(
26544 arch: *mut BNArchitecture,
26545 name: *const ::std::os::raw::c_char,
26546 typeFile: *const ::std::os::raw::c_char,
26547 includeDirs: *mut *const ::std::os::raw::c_char,
26548 includeDirCount: usize,
26549 ) -> *mut BNPlatform;
26550}
26551unsafe extern "C" {
26552 pub fn BNCreateCustomPlatform(
26553 arch: *mut BNArchitecture,
26554 name: *const ::std::os::raw::c_char,
26555 impl_: *mut BNCustomPlatform,
26556 ) -> *mut BNPlatform;
26557}
26558unsafe extern "C" {
26559 pub fn BNCreateCustomPlatformWithTypes(
26560 arch: *mut BNArchitecture,
26561 name: *const ::std::os::raw::c_char,
26562 impl_: *mut BNCustomPlatform,
26563 typeFile: *const ::std::os::raw::c_char,
26564 includeDirs: *mut *const ::std::os::raw::c_char,
26565 includeDirCount: usize,
26566 ) -> *mut BNPlatform;
26567}
26568unsafe extern "C" {
26569 pub fn BNRegisterPlatform(os: *const ::std::os::raw::c_char, platform: *mut BNPlatform);
26570}
26571unsafe extern "C" {
26572 pub fn BNNewPlatformReference(platform: *mut BNPlatform) -> *mut BNPlatform;
26573}
26574unsafe extern "C" {
26575 pub fn BNFreePlatform(platform: *mut BNPlatform);
26576}
26577unsafe extern "C" {
26578 pub fn BNGetPlatformName(platform: *mut BNPlatform) -> *mut ::std::os::raw::c_char;
26579}
26580unsafe extern "C" {
26581 pub fn BNGetPlatformArchitecture(platform: *mut BNPlatform) -> *mut BNArchitecture;
26582}
26583unsafe extern "C" {
26584 pub fn BNGetPlatformByName(name: *const ::std::os::raw::c_char) -> *mut BNPlatform;
26585}
26586unsafe extern "C" {
26587 pub fn BNGetPlatformList(count: *mut usize) -> *mut *mut BNPlatform;
26588}
26589unsafe extern "C" {
26590 pub fn BNGetPlatformListByArchitecture(
26591 arch: *mut BNArchitecture,
26592 count: *mut usize,
26593 ) -> *mut *mut BNPlatform;
26594}
26595unsafe extern "C" {
26596 pub fn BNGetPlatformListByOS(
26597 os: *const ::std::os::raw::c_char,
26598 count: *mut usize,
26599 ) -> *mut *mut BNPlatform;
26600}
26601unsafe extern "C" {
26602 pub fn BNGetPlatformListByOSAndArchitecture(
26603 os: *const ::std::os::raw::c_char,
26604 arch: *mut BNArchitecture,
26605 count: *mut usize,
26606 ) -> *mut *mut BNPlatform;
26607}
26608unsafe extern "C" {
26609 pub fn BNFreePlatformList(platform: *mut *mut BNPlatform, count: usize);
26610}
26611unsafe extern "C" {
26612 pub fn BNGetPlatformOSList(count: *mut usize) -> *mut *mut ::std::os::raw::c_char;
26613}
26614unsafe extern "C" {
26615 pub fn BNFreePlatformOSList(list: *mut *mut ::std::os::raw::c_char, count: usize);
26616}
26617unsafe extern "C" {
26618 pub fn BNGetPlatformDefaultCallingConvention(
26619 platform: *mut BNPlatform,
26620 ) -> *mut BNCallingConvention;
26621}
26622unsafe extern "C" {
26623 pub fn BNGetPlatformCdeclCallingConvention(
26624 platform: *mut BNPlatform,
26625 ) -> *mut BNCallingConvention;
26626}
26627unsafe extern "C" {
26628 pub fn BNGetPlatformStdcallCallingConvention(
26629 platform: *mut BNPlatform,
26630 ) -> *mut BNCallingConvention;
26631}
26632unsafe extern "C" {
26633 pub fn BNGetPlatformFastcallCallingConvention(
26634 platform: *mut BNPlatform,
26635 ) -> *mut BNCallingConvention;
26636}
26637unsafe extern "C" {
26638 pub fn BNGetPlatformCallingConventions(
26639 platform: *mut BNPlatform,
26640 count: *mut usize,
26641 ) -> *mut *mut BNCallingConvention;
26642}
26643unsafe extern "C" {
26644 pub fn BNGetPlatformSystemCallConvention(platform: *mut BNPlatform)
26645 -> *mut BNCallingConvention;
26646}
26647unsafe extern "C" {
26648 pub fn BNRegisterPlatformCallingConvention(
26649 platform: *mut BNPlatform,
26650 cc: *mut BNCallingConvention,
26651 );
26652}
26653unsafe extern "C" {
26654 pub fn BNRegisterPlatformDefaultCallingConvention(
26655 platform: *mut BNPlatform,
26656 cc: *mut BNCallingConvention,
26657 );
26658}
26659unsafe extern "C" {
26660 pub fn BNRegisterPlatformCdeclCallingConvention(
26661 platform: *mut BNPlatform,
26662 cc: *mut BNCallingConvention,
26663 );
26664}
26665unsafe extern "C" {
26666 pub fn BNRegisterPlatformStdcallCallingConvention(
26667 platform: *mut BNPlatform,
26668 cc: *mut BNCallingConvention,
26669 );
26670}
26671unsafe extern "C" {
26672 pub fn BNRegisterPlatformFastcallCallingConvention(
26673 platform: *mut BNPlatform,
26674 cc: *mut BNCallingConvention,
26675 );
26676}
26677unsafe extern "C" {
26678 pub fn BNSetPlatformSystemCallConvention(
26679 platform: *mut BNPlatform,
26680 cc: *mut BNCallingConvention,
26681 );
26682}
26683unsafe extern "C" {
26684 pub fn BNGetPlatformGlobalRegisters(platform: *mut BNPlatform, count: *mut usize) -> *mut u32;
26685}
26686unsafe extern "C" {
26687 pub fn BNGetPlatformGlobalRegisterType(platform: *mut BNPlatform, reg: u32) -> *mut BNType;
26688}
26689unsafe extern "C" {
26690 pub fn BNGetPlatformAddressSize(platform: *mut BNPlatform) -> usize;
26691}
26692unsafe extern "C" {
26693 pub fn BNPlatformAdjustTypeParserInput(
26694 platform: *mut BNPlatform,
26695 parser: *mut BNTypeParser,
26696 argumentsIn: *const *const ::std::os::raw::c_char,
26697 argumentsLenIn: usize,
26698 sourceFileNamesIn: *const *const ::std::os::raw::c_char,
26699 sourceFileValuesIn: *const *const ::std::os::raw::c_char,
26700 sourceFilesLenIn: usize,
26701 argumentsOut: *mut *mut *mut ::std::os::raw::c_char,
26702 argumentsLenOut: *mut usize,
26703 sourceFileNamesOut: *mut *mut *mut ::std::os::raw::c_char,
26704 sourceFileValuesOut: *mut *mut *mut ::std::os::raw::c_char,
26705 sourceFilesLenOut: *mut usize,
26706 );
26707}
26708unsafe extern "C" {
26709 pub fn BNGetArchitectureStandalonePlatform(arch: *mut BNArchitecture) -> *mut BNPlatform;
26710}
26711unsafe extern "C" {
26712 pub fn BNGetRelatedPlatform(
26713 platform: *mut BNPlatform,
26714 arch: *mut BNArchitecture,
26715 ) -> *mut BNPlatform;
26716}
26717unsafe extern "C" {
26718 pub fn BNAddRelatedPlatform(
26719 platform: *mut BNPlatform,
26720 arch: *mut BNArchitecture,
26721 related: *mut BNPlatform,
26722 );
26723}
26724unsafe extern "C" {
26725 pub fn BNGetRelatedPlatforms(
26726 platform: *mut BNPlatform,
26727 count: *mut usize,
26728 ) -> *mut *mut BNPlatform;
26729}
26730unsafe extern "C" {
26731 pub fn BNGetAssociatedPlatformByAddress(
26732 platform: *mut BNPlatform,
26733 addr: *mut u64,
26734 ) -> *mut BNPlatform;
26735}
26736unsafe extern "C" {
26737 pub fn BNGetPlatformTypeContainer(platform: *mut BNPlatform) -> *mut BNTypeContainer;
26738}
26739unsafe extern "C" {
26740 pub fn BNGetPlatformTypes(
26741 platform: *mut BNPlatform,
26742 count: *mut usize,
26743 ) -> *mut BNQualifiedNameAndType;
26744}
26745unsafe extern "C" {
26746 pub fn BNGetPlatformVariables(
26747 platform: *mut BNPlatform,
26748 count: *mut usize,
26749 ) -> *mut BNQualifiedNameAndType;
26750}
26751unsafe extern "C" {
26752 pub fn BNGetPlatformFunctions(
26753 platform: *mut BNPlatform,
26754 count: *mut usize,
26755 ) -> *mut BNQualifiedNameAndType;
26756}
26757unsafe extern "C" {
26758 pub fn BNGetPlatformSystemCalls(
26759 platform: *mut BNPlatform,
26760 count: *mut usize,
26761 ) -> *mut BNSystemCallInfo;
26762}
26763unsafe extern "C" {
26764 pub fn BNFreeSystemCallList(syscalls: *mut BNSystemCallInfo, count: usize);
26765}
26766unsafe extern "C" {
26767 pub fn BNGetPlatformTypeByName(
26768 platform: *mut BNPlatform,
26769 name: *mut BNQualifiedName,
26770 ) -> *mut BNType;
26771}
26772unsafe extern "C" {
26773 pub fn BNGetPlatformVariableByName(
26774 platform: *mut BNPlatform,
26775 name: *mut BNQualifiedName,
26776 ) -> *mut BNType;
26777}
26778unsafe extern "C" {
26779 pub fn BNGetPlatformFunctionByName(
26780 platform: *mut BNPlatform,
26781 name: *mut BNQualifiedName,
26782 exactMatch: bool,
26783 ) -> *mut BNType;
26784}
26785unsafe extern "C" {
26786 pub fn BNGetPlatformSystemCallName(
26787 platform: *mut BNPlatform,
26788 number: u32,
26789 ) -> *mut ::std::os::raw::c_char;
26790}
26791unsafe extern "C" {
26792 pub fn BNGetPlatformSystemCallType(platform: *mut BNPlatform, number: u32) -> *mut BNType;
26793}
26794unsafe extern "C" {
26795 pub fn BNGetPlatformTypeLibraries(
26796 platform: *mut BNPlatform,
26797 count: *mut usize,
26798 ) -> *mut *mut BNTypeLibrary;
26799}
26800unsafe extern "C" {
26801 pub fn BNGetPlatformTypeLibrariesByName(
26802 platform: *mut BNPlatform,
26803 depName: *const ::std::os::raw::c_char,
26804 count: *mut usize,
26805 ) -> *mut *mut BNTypeLibrary;
26806}
26807unsafe extern "C" {
26808 #[doc = " Download providers"]
26809 pub fn BNRegisterDownloadProvider(
26810 name: *const ::std::os::raw::c_char,
26811 callbacks: *mut BNDownloadProviderCallbacks,
26812 ) -> *mut BNDownloadProvider;
26813}
26814unsafe extern "C" {
26815 pub fn BNGetDownloadProviderList(count: *mut usize) -> *mut *mut BNDownloadProvider;
26816}
26817unsafe extern "C" {
26818 pub fn BNFreeDownloadProviderList(providers: *mut *mut BNDownloadProvider);
26819}
26820unsafe extern "C" {
26821 pub fn BNGetDownloadProviderByName(
26822 name: *const ::std::os::raw::c_char,
26823 ) -> *mut BNDownloadProvider;
26824}
26825unsafe extern "C" {
26826 pub fn BNGetDownloadProviderName(
26827 provider: *mut BNDownloadProvider,
26828 ) -> *mut ::std::os::raw::c_char;
26829}
26830unsafe extern "C" {
26831 pub fn BNCreateDownloadProviderInstance(
26832 provider: *mut BNDownloadProvider,
26833 ) -> *mut BNDownloadInstance;
26834}
26835unsafe extern "C" {
26836 pub fn BNInitDownloadInstance(
26837 provider: *mut BNDownloadProvider,
26838 callbacks: *mut BNDownloadInstanceCallbacks,
26839 ) -> *mut BNDownloadInstance;
26840}
26841unsafe extern "C" {
26842 pub fn BNNewDownloadInstanceReference(
26843 instance: *mut BNDownloadInstance,
26844 ) -> *mut BNDownloadInstance;
26845}
26846unsafe extern "C" {
26847 pub fn BNFreeDownloadInstance(instance: *mut BNDownloadInstance);
26848}
26849unsafe extern "C" {
26850 pub fn BNFreeDownloadInstanceResponse(response: *mut BNDownloadInstanceResponse);
26851}
26852unsafe extern "C" {
26853 pub fn BNPerformDownloadRequest(
26854 instance: *mut BNDownloadInstance,
26855 url: *const ::std::os::raw::c_char,
26856 callbacks: *mut BNDownloadInstanceOutputCallbacks,
26857 ) -> ::std::os::raw::c_int;
26858}
26859unsafe extern "C" {
26860 pub fn BNPerformCustomRequest(
26861 instance: *mut BNDownloadInstance,
26862 method: *const ::std::os::raw::c_char,
26863 url: *const ::std::os::raw::c_char,
26864 headerCount: u64,
26865 headerKeys: *const *const ::std::os::raw::c_char,
26866 headerValues: *const *const ::std::os::raw::c_char,
26867 response: *mut *mut BNDownloadInstanceResponse,
26868 callbacks: *mut BNDownloadInstanceInputOutputCallbacks,
26869 ) -> ::std::os::raw::c_int;
26870}
26871unsafe extern "C" {
26872 pub fn BNReadDataForDownloadInstance(
26873 instance: *mut BNDownloadInstance,
26874 data: *mut u8,
26875 len: u64,
26876 ) -> i64;
26877}
26878unsafe extern "C" {
26879 pub fn BNWriteDataForDownloadInstance(
26880 instance: *mut BNDownloadInstance,
26881 data: *mut u8,
26882 len: u64,
26883 ) -> u64;
26884}
26885unsafe extern "C" {
26886 pub fn BNNotifyProgressForDownloadInstance(
26887 instance: *mut BNDownloadInstance,
26888 progress: u64,
26889 total: u64,
26890 ) -> bool;
26891}
26892unsafe extern "C" {
26893 pub fn BNGetErrorForDownloadInstance(
26894 instance: *mut BNDownloadInstance,
26895 ) -> *mut ::std::os::raw::c_char;
26896}
26897unsafe extern "C" {
26898 pub fn BNSetErrorForDownloadInstance(
26899 instance: *mut BNDownloadInstance,
26900 error: *const ::std::os::raw::c_char,
26901 );
26902}
26903unsafe extern "C" {
26904 #[doc = " Websocket providers"]
26905 pub fn BNRegisterWebsocketProvider(
26906 name: *const ::std::os::raw::c_char,
26907 callbacks: *mut BNWebsocketProviderCallbacks,
26908 ) -> *mut BNWebsocketProvider;
26909}
26910unsafe extern "C" {
26911 pub fn BNGetWebsocketProviderList(count: *mut usize) -> *mut *mut BNWebsocketProvider;
26912}
26913unsafe extern "C" {
26914 pub fn BNFreeWebsocketProviderList(providers: *mut *mut BNWebsocketProvider);
26915}
26916unsafe extern "C" {
26917 pub fn BNGetWebsocketProviderByName(
26918 name: *const ::std::os::raw::c_char,
26919 ) -> *mut BNWebsocketProvider;
26920}
26921unsafe extern "C" {
26922 pub fn BNGetWebsocketProviderName(
26923 provider: *mut BNWebsocketProvider,
26924 ) -> *mut ::std::os::raw::c_char;
26925}
26926unsafe extern "C" {
26927 pub fn BNCreateWebsocketProviderClient(
26928 provider: *mut BNWebsocketProvider,
26929 ) -> *mut BNWebsocketClient;
26930}
26931unsafe extern "C" {
26932 pub fn BNInitWebsocketClient(
26933 provider: *mut BNWebsocketProvider,
26934 callbacks: *mut BNWebsocketClientCallbacks,
26935 ) -> *mut BNWebsocketClient;
26936}
26937unsafe extern "C" {
26938 pub fn BNNewWebsocketClientReference(client: *mut BNWebsocketClient) -> *mut BNWebsocketClient;
26939}
26940unsafe extern "C" {
26941 pub fn BNFreeWebsocketClient(client: *mut BNWebsocketClient);
26942}
26943unsafe extern "C" {
26944 pub fn BNConnectWebsocketClient(
26945 client: *mut BNWebsocketClient,
26946 url: *const ::std::os::raw::c_char,
26947 headerCount: u64,
26948 headerKeys: *const *const ::std::os::raw::c_char,
26949 headerValues: *const *const ::std::os::raw::c_char,
26950 callbacks: *mut BNWebsocketClientOutputCallbacks,
26951 ) -> bool;
26952}
26953unsafe extern "C" {
26954 pub fn BNNotifyWebsocketClientConnect(client: *mut BNWebsocketClient) -> bool;
26955}
26956unsafe extern "C" {
26957 pub fn BNNotifyWebsocketClientDisconnect(client: *mut BNWebsocketClient);
26958}
26959unsafe extern "C" {
26960 pub fn BNNotifyWebsocketClientError(
26961 client: *mut BNWebsocketClient,
26962 msg: *const ::std::os::raw::c_char,
26963 );
26964}
26965unsafe extern "C" {
26966 pub fn BNNotifyWebsocketClientReadData(
26967 client: *mut BNWebsocketClient,
26968 data: *mut u8,
26969 len: u64,
26970 ) -> bool;
26971}
26972unsafe extern "C" {
26973 pub fn BNWriteWebsocketClientData(
26974 client: *mut BNWebsocketClient,
26975 data: *const u8,
26976 len: u64,
26977 ) -> u64;
26978}
26979unsafe extern "C" {
26980 pub fn BNDisconnectWebsocketClient(client: *mut BNWebsocketClient) -> bool;
26981}
26982unsafe extern "C" {
26983 #[doc = " Scripting providers"]
26984 pub fn BNRegisterScriptingProvider(
26985 name: *const ::std::os::raw::c_char,
26986 apiName: *const ::std::os::raw::c_char,
26987 callbacks: *mut BNScriptingProviderCallbacks,
26988 ) -> *mut BNScriptingProvider;
26989}
26990unsafe extern "C" {
26991 pub fn BNGetScriptingProviderList(count: *mut usize) -> *mut *mut BNScriptingProvider;
26992}
26993unsafe extern "C" {
26994 pub fn BNFreeScriptingProviderList(providers: *mut *mut BNScriptingProvider);
26995}
26996unsafe extern "C" {
26997 pub fn BNGetScriptingProviderByName(
26998 name: *const ::std::os::raw::c_char,
26999 ) -> *mut BNScriptingProvider;
27000}
27001unsafe extern "C" {
27002 pub fn BNGetScriptingProviderByAPIName(
27003 name: *const ::std::os::raw::c_char,
27004 ) -> *mut BNScriptingProvider;
27005}
27006unsafe extern "C" {
27007 pub fn BNGetScriptingProviderName(
27008 provider: *mut BNScriptingProvider,
27009 ) -> *mut ::std::os::raw::c_char;
27010}
27011unsafe extern "C" {
27012 pub fn BNGetScriptingProviderAPIName(
27013 provider: *mut BNScriptingProvider,
27014 ) -> *mut ::std::os::raw::c_char;
27015}
27016unsafe extern "C" {
27017 pub fn BNCreateScriptingProviderInstance(
27018 provider: *mut BNScriptingProvider,
27019 ) -> *mut BNScriptingInstance;
27020}
27021unsafe extern "C" {
27022 pub fn BNLoadScriptingProviderModule(
27023 provider: *mut BNScriptingProvider,
27024 repository: *const ::std::os::raw::c_char,
27025 module: *const ::std::os::raw::c_char,
27026 force: bool,
27027 ) -> bool;
27028}
27029unsafe extern "C" {
27030 pub fn BNInstallScriptingProviderModules(
27031 provider: *mut BNScriptingProvider,
27032 modules: *const ::std::os::raw::c_char,
27033 ) -> bool;
27034}
27035unsafe extern "C" {
27036 pub fn BNIsScriptingProviderModuleInstalled(
27037 provider: *mut BNScriptingProvider,
27038 modules: *const ::std::os::raw::c_char,
27039 ) -> bool;
27040}
27041unsafe extern "C" {
27042 pub fn BNSetScriptingProviderModuleInstalledCallback(
27043 provider: *mut BNScriptingProvider,
27044 callbacks: *mut BNScriptingProviderModuleInstalledCallbacks,
27045 );
27046}
27047unsafe extern "C" {
27048 pub fn BNSetScriptingProviderInstallModulesWithExclusionsCallback(
27049 provider: *mut BNScriptingProvider,
27050 callbacks: *mut BNScriptingProviderInstallModulesWithExclusionsCallbacks,
27051 );
27052}
27053unsafe extern "C" {
27054 pub fn BNSetScriptingProviderDependencyConflictCallback(
27055 provider: *mut BNScriptingProvider,
27056 callbacks: *mut BNScriptingProviderDependencyConflictCallbacks,
27057 );
27058}
27059unsafe extern "C" {
27060 pub fn BNSetPluginDependencyStartupCallback(callbacks: *mut BNPluginDependencyStartupCallbacks);
27061}
27062unsafe extern "C" {
27063 pub fn BNSetPluginDependencyResolutionCallback(
27064 callbacks: *mut BNPluginDependencyResolutionCallbacks,
27065 );
27066}
27067unsafe extern "C" {
27068 pub fn BNInitScriptingInstance(
27069 provider: *mut BNScriptingProvider,
27070 callbacks: *mut BNScriptingInstanceCallbacks,
27071 ) -> *mut BNScriptingInstance;
27072}
27073unsafe extern "C" {
27074 pub fn BNNewScriptingInstanceReference(
27075 instance: *mut BNScriptingInstance,
27076 ) -> *mut BNScriptingInstance;
27077}
27078unsafe extern "C" {
27079 pub fn BNFreeScriptingInstance(instance: *mut BNScriptingInstance);
27080}
27081unsafe extern "C" {
27082 pub fn BNNotifyOutputForScriptingInstance(
27083 instance: *mut BNScriptingInstance,
27084 text: *const ::std::os::raw::c_char,
27085 );
27086}
27087unsafe extern "C" {
27088 pub fn BNNotifyWarningForScriptingInstance(
27089 instance: *mut BNScriptingInstance,
27090 text: *const ::std::os::raw::c_char,
27091 );
27092}
27093unsafe extern "C" {
27094 pub fn BNNotifyErrorForScriptingInstance(
27095 instance: *mut BNScriptingInstance,
27096 text: *const ::std::os::raw::c_char,
27097 );
27098}
27099unsafe extern "C" {
27100 pub fn BNNotifyInputReadyStateForScriptingInstance(
27101 instance: *mut BNScriptingInstance,
27102 state: BNScriptingProviderInputReadyState,
27103 );
27104}
27105unsafe extern "C" {
27106 pub fn BNRegisterScriptingInstanceOutputListener(
27107 instance: *mut BNScriptingInstance,
27108 callbacks: *mut BNScriptingOutputListener,
27109 );
27110}
27111unsafe extern "C" {
27112 pub fn BNUnregisterScriptingInstanceOutputListener(
27113 instance: *mut BNScriptingInstance,
27114 callbacks: *mut BNScriptingOutputListener,
27115 );
27116}
27117unsafe extern "C" {
27118 pub fn BNGetScriptingInstanceDelimiters(
27119 instance: *mut BNScriptingInstance,
27120 ) -> *mut ::std::os::raw::c_char;
27121}
27122unsafe extern "C" {
27123 pub fn BNSetScriptingInstanceDelimiters(
27124 instance: *mut BNScriptingInstance,
27125 delimiters: *const ::std::os::raw::c_char,
27126 );
27127}
27128unsafe extern "C" {
27129 pub fn BNGetScriptingInstanceInputReadyState(
27130 instance: *mut BNScriptingInstance,
27131 ) -> BNScriptingProviderInputReadyState;
27132}
27133unsafe extern "C" {
27134 pub fn BNExecuteScriptInput(
27135 instance: *mut BNScriptingInstance,
27136 input: *const ::std::os::raw::c_char,
27137 ) -> BNScriptingProviderExecuteResult;
27138}
27139unsafe extern "C" {
27140 pub fn BNExecuteScriptInputFromFilename(
27141 instance: *mut BNScriptingInstance,
27142 filename: *const ::std::os::raw::c_char,
27143 ) -> BNScriptingProviderExecuteResult;
27144}
27145unsafe extern "C" {
27146 pub fn BNCancelScriptInput(instance: *mut BNScriptingInstance);
27147}
27148unsafe extern "C" {
27149 pub fn BNScriptingInstanceReleaseBinaryView(
27150 instance: *mut BNScriptingInstance,
27151 view: *mut BNBinaryView,
27152 );
27153}
27154unsafe extern "C" {
27155 pub fn BNSetScriptingInstanceCurrentBinaryView(
27156 instance: *mut BNScriptingInstance,
27157 view: *mut BNBinaryView,
27158 );
27159}
27160unsafe extern "C" {
27161 pub fn BNSetScriptingInstanceCurrentFunction(
27162 instance: *mut BNScriptingInstance,
27163 func: *mut BNFunction,
27164 );
27165}
27166unsafe extern "C" {
27167 pub fn BNSetScriptingInstanceCurrentBasicBlock(
27168 instance: *mut BNScriptingInstance,
27169 block: *mut BNBasicBlock,
27170 );
27171}
27172unsafe extern "C" {
27173 pub fn BNSetScriptingInstanceCurrentAddress(instance: *mut BNScriptingInstance, addr: u64);
27174}
27175unsafe extern "C" {
27176 pub fn BNSetScriptingInstanceCurrentSelection(
27177 instance: *mut BNScriptingInstance,
27178 begin: u64,
27179 end: u64,
27180 );
27181}
27182unsafe extern "C" {
27183 pub fn BNScriptingInstanceCompleteInput(
27184 instance: *mut BNScriptingInstance,
27185 text: *const ::std::os::raw::c_char,
27186 state: u64,
27187 ) -> *mut ::std::os::raw::c_char;
27188}
27189unsafe extern "C" {
27190 pub fn BNScriptingInstanceCanCompleteArguments(
27191 instance: *mut BNScriptingInstance,
27192 text: *const ::std::os::raw::c_char,
27193 ) -> bool;
27194}
27195unsafe extern "C" {
27196 pub fn BNScriptingInstanceCompleteArguments(
27197 instance: *mut BNScriptingInstance,
27198 text: *const ::std::os::raw::c_char,
27199 argumentStart: *mut u64,
27200 ) -> *mut ::std::os::raw::c_char;
27201}
27202unsafe extern "C" {
27203 pub fn BNStopScriptingInstance(instance: *mut BNScriptingInstance);
27204}
27205unsafe extern "C" {
27206 pub fn BNFuzzyMatchSingle(
27207 target: *const ::std::os::raw::c_char,
27208 query: *const ::std::os::raw::c_char,
27209 ) -> usize;
27210}
27211unsafe extern "C" {
27212 #[doc = " Main thread actions"]
27213 pub fn BNRegisterMainThread(callbacks: *mut BNMainThreadCallbacks);
27214}
27215unsafe extern "C" {
27216 pub fn BNNewMainThreadActionReference(
27217 action: *mut BNMainThreadAction,
27218 ) -> *mut BNMainThreadAction;
27219}
27220unsafe extern "C" {
27221 pub fn BNFreeMainThreadAction(action: *mut BNMainThreadAction);
27222}
27223unsafe extern "C" {
27224 pub fn BNExecuteMainThreadAction(action: *mut BNMainThreadAction);
27225}
27226unsafe extern "C" {
27227 pub fn BNIsMainThreadActionDone(action: *mut BNMainThreadAction) -> bool;
27228}
27229unsafe extern "C" {
27230 pub fn BNWaitForMainThreadAction(action: *mut BNMainThreadAction);
27231}
27232unsafe extern "C" {
27233 pub fn BNExecuteOnMainThread(
27234 ctxt: *mut ::std::os::raw::c_void,
27235 func: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
27236 ) -> *mut BNMainThreadAction;
27237}
27238unsafe extern "C" {
27239 pub fn BNExecuteOnMainThreadAndWait(
27240 ctxt: *mut ::std::os::raw::c_void,
27241 func: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
27242 );
27243}
27244unsafe extern "C" {
27245 pub fn BNIsMainThread() -> bool;
27246}
27247unsafe extern "C" {
27248 #[doc = " Worker thread queue management"]
27249 pub fn BNWorkerEnqueue(
27250 ctxt: *mut ::std::os::raw::c_void,
27251 action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
27252 );
27253}
27254unsafe extern "C" {
27255 pub fn BNWorkerEnqueueNamed(
27256 ctxt: *mut ::std::os::raw::c_void,
27257 action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
27258 name: *const ::std::os::raw::c_char,
27259 );
27260}
27261unsafe extern "C" {
27262 pub fn BNWorkerPriorityEnqueue(
27263 ctxt: *mut ::std::os::raw::c_void,
27264 action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
27265 );
27266}
27267unsafe extern "C" {
27268 pub fn BNWorkerPriorityEnqueueNamed(
27269 ctxt: *mut ::std::os::raw::c_void,
27270 action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
27271 name: *const ::std::os::raw::c_char,
27272 );
27273}
27274unsafe extern "C" {
27275 pub fn BNWorkerInteractiveEnqueue(
27276 ctxt: *mut ::std::os::raw::c_void,
27277 action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
27278 );
27279}
27280unsafe extern "C" {
27281 pub fn BNWorkerInteractiveEnqueueNamed(
27282 ctxt: *mut ::std::os::raw::c_void,
27283 action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
27284 name: *const ::std::os::raw::c_char,
27285 );
27286}
27287unsafe extern "C" {
27288 pub fn BNGetWorkerThreadCount() -> usize;
27289}
27290unsafe extern "C" {
27291 pub fn BNSetWorkerThreadCount(count: usize);
27292}
27293unsafe extern "C" {
27294 pub fn BNSetThreadName(name: *const ::std::os::raw::c_char);
27295}
27296unsafe extern "C" {
27297 #[doc = " Background task progress reporting"]
27298 pub fn BNBeginBackgroundTask(
27299 initialText: *const ::std::os::raw::c_char,
27300 canCancel: bool,
27301 ) -> *mut BNBackgroundTask;
27302}
27303unsafe extern "C" {
27304 pub fn BNFinishBackgroundTask(task: *mut BNBackgroundTask);
27305}
27306unsafe extern "C" {
27307 pub fn BNSetBackgroundTaskProgressText(
27308 task: *mut BNBackgroundTask,
27309 text: *const ::std::os::raw::c_char,
27310 );
27311}
27312unsafe extern "C" {
27313 pub fn BNIsBackgroundTaskCancelled(task: *mut BNBackgroundTask) -> bool;
27314}
27315unsafe extern "C" {
27316 pub fn BNGetRunningBackgroundTasks(count: *mut usize) -> *mut *mut BNBackgroundTask;
27317}
27318unsafe extern "C" {
27319 pub fn BNNewBackgroundTaskReference(task: *mut BNBackgroundTask) -> *mut BNBackgroundTask;
27320}
27321unsafe extern "C" {
27322 pub fn BNFreeBackgroundTask(task: *mut BNBackgroundTask);
27323}
27324unsafe extern "C" {
27325 pub fn BNFreeBackgroundTaskList(tasks: *mut *mut BNBackgroundTask, count: usize);
27326}
27327unsafe extern "C" {
27328 pub fn BNGetBackgroundTaskProgressText(
27329 task: *mut BNBackgroundTask,
27330 ) -> *mut ::std::os::raw::c_char;
27331}
27332unsafe extern "C" {
27333 pub fn BNGetBackgroundTaskRuntimeSeconds(task: *mut BNBackgroundTask) -> u64;
27334}
27335unsafe extern "C" {
27336 pub fn BNCanCancelBackgroundTask(task: *mut BNBackgroundTask) -> bool;
27337}
27338unsafe extern "C" {
27339 pub fn BNCancelBackgroundTask(task: *mut BNBackgroundTask);
27340}
27341unsafe extern "C" {
27342 pub fn BNIsBackgroundTaskFinished(task: *mut BNBackgroundTask) -> bool;
27343}
27344unsafe extern "C" {
27345 #[doc = " Interaction APIs"]
27346 pub fn BNRegisterInteractionHandler(callbacks: *mut BNInteractionHandlerCallbacks);
27347}
27348unsafe extern "C" {
27349 pub fn BNMarkdownToHTML(contents: *const ::std::os::raw::c_char)
27350 -> *mut ::std::os::raw::c_char;
27351}
27352unsafe extern "C" {
27353 pub fn BNShowPlainTextReport(
27354 view: *mut BNBinaryView,
27355 title: *const ::std::os::raw::c_char,
27356 contents: *const ::std::os::raw::c_char,
27357 );
27358}
27359unsafe extern "C" {
27360 pub fn BNShowMarkdownReport(
27361 view: *mut BNBinaryView,
27362 title: *const ::std::os::raw::c_char,
27363 contents: *const ::std::os::raw::c_char,
27364 plaintext: *const ::std::os::raw::c_char,
27365 );
27366}
27367unsafe extern "C" {
27368 pub fn BNShowHTMLReport(
27369 view: *mut BNBinaryView,
27370 title: *const ::std::os::raw::c_char,
27371 contents: *const ::std::os::raw::c_char,
27372 plaintext: *const ::std::os::raw::c_char,
27373 );
27374}
27375unsafe extern "C" {
27376 pub fn BNShowGraphReport(
27377 view: *mut BNBinaryView,
27378 title: *const ::std::os::raw::c_char,
27379 graph: *mut BNFlowGraph,
27380 );
27381}
27382unsafe extern "C" {
27383 pub fn BNShowReportCollection(
27384 title: *const ::std::os::raw::c_char,
27385 reports: *mut BNReportCollection,
27386 );
27387}
27388unsafe extern "C" {
27389 pub fn BNGetTextLineInput(
27390 result: *mut *mut ::std::os::raw::c_char,
27391 prompt: *const ::std::os::raw::c_char,
27392 title: *const ::std::os::raw::c_char,
27393 ) -> bool;
27394}
27395unsafe extern "C" {
27396 pub fn BNGetIntegerInput(
27397 result: *mut i64,
27398 prompt: *const ::std::os::raw::c_char,
27399 title: *const ::std::os::raw::c_char,
27400 ) -> bool;
27401}
27402unsafe extern "C" {
27403 pub fn BNGetAddressInput(
27404 result: *mut u64,
27405 prompt: *const ::std::os::raw::c_char,
27406 title: *const ::std::os::raw::c_char,
27407 view: *mut BNBinaryView,
27408 currentAddr: u64,
27409 ) -> bool;
27410}
27411unsafe extern "C" {
27412 pub fn BNGetChoiceInput(
27413 result: *mut usize,
27414 prompt: *const ::std::os::raw::c_char,
27415 title: *const ::std::os::raw::c_char,
27416 choices: *mut *const ::std::os::raw::c_char,
27417 count: usize,
27418 ) -> bool;
27419}
27420unsafe extern "C" {
27421 pub fn BNGetLargeChoiceInput(
27422 result: *mut usize,
27423 prompt: *const ::std::os::raw::c_char,
27424 title: *const ::std::os::raw::c_char,
27425 choices: *mut *const ::std::os::raw::c_char,
27426 count: usize,
27427 ) -> bool;
27428}
27429unsafe extern "C" {
27430 pub fn BNGetOpenFileNameInput(
27431 result: *mut *mut ::std::os::raw::c_char,
27432 prompt: *const ::std::os::raw::c_char,
27433 ext: *const ::std::os::raw::c_char,
27434 ) -> bool;
27435}
27436unsafe extern "C" {
27437 pub fn BNGetSaveFileNameInput(
27438 result: *mut *mut ::std::os::raw::c_char,
27439 prompt: *const ::std::os::raw::c_char,
27440 ext: *const ::std::os::raw::c_char,
27441 defaultName: *const ::std::os::raw::c_char,
27442 ) -> bool;
27443}
27444unsafe extern "C" {
27445 pub fn BNGetDirectoryNameInput(
27446 result: *mut *mut ::std::os::raw::c_char,
27447 prompt: *const ::std::os::raw::c_char,
27448 defaultName: *const ::std::os::raw::c_char,
27449 ) -> bool;
27450}
27451unsafe extern "C" {
27452 pub fn BNGetCheckboxInput(
27453 result: *mut i64,
27454 prompt: *const ::std::os::raw::c_char,
27455 title: *const ::std::os::raw::c_char,
27456 defaultChoice: *const i64,
27457 ) -> bool;
27458}
27459unsafe extern "C" {
27460 pub fn BNGetFormInput(
27461 fields: *mut BNFormInputField,
27462 count: usize,
27463 title: *const ::std::os::raw::c_char,
27464 ) -> bool;
27465}
27466unsafe extern "C" {
27467 pub fn BNFreeFormInputResults(fields: *mut BNFormInputField, count: usize);
27468}
27469unsafe extern "C" {
27470 pub fn BNShowMessageBox(
27471 title: *const ::std::os::raw::c_char,
27472 text: *const ::std::os::raw::c_char,
27473 buttons: BNMessageBoxButtonSet,
27474 icon: BNMessageBoxIcon,
27475 ) -> BNMessageBoxButtonResult;
27476}
27477unsafe extern "C" {
27478 pub fn BNOpenUrl(url: *const ::std::os::raw::c_char) -> bool;
27479}
27480unsafe extern "C" {
27481 pub fn BNRunProgressDialog(
27482 title: *const ::std::os::raw::c_char,
27483 canCancel: bool,
27484 task: ::std::option::Option<
27485 unsafe extern "C" fn(
27486 taskCtxt: *mut ::std::os::raw::c_void,
27487 progress: BNProgressFunction,
27488 progressCtxt: *mut ::std::os::raw::c_void,
27489 ),
27490 >,
27491 taskCtxt: *mut ::std::os::raw::c_void,
27492 ) -> bool;
27493}
27494unsafe extern "C" {
27495 pub fn BNCreateReportCollection() -> *mut BNReportCollection;
27496}
27497unsafe extern "C" {
27498 pub fn BNNewReportCollectionReference(
27499 reports: *mut BNReportCollection,
27500 ) -> *mut BNReportCollection;
27501}
27502unsafe extern "C" {
27503 pub fn BNFreeReportCollection(reports: *mut BNReportCollection);
27504}
27505unsafe extern "C" {
27506 pub fn BNGetReportCollectionCount(reports: *mut BNReportCollection) -> usize;
27507}
27508unsafe extern "C" {
27509 pub fn BNGetReportType(reports: *mut BNReportCollection, i: usize) -> BNReportType;
27510}
27511unsafe extern "C" {
27512 pub fn BNGetReportView(reports: *mut BNReportCollection, i: usize) -> *mut BNBinaryView;
27513}
27514unsafe extern "C" {
27515 pub fn BNGetReportTitle(
27516 reports: *mut BNReportCollection,
27517 i: usize,
27518 ) -> *mut ::std::os::raw::c_char;
27519}
27520unsafe extern "C" {
27521 pub fn BNGetReportContents(
27522 reports: *mut BNReportCollection,
27523 i: usize,
27524 ) -> *mut ::std::os::raw::c_char;
27525}
27526unsafe extern "C" {
27527 pub fn BNGetReportPlainText(
27528 reports: *mut BNReportCollection,
27529 i: usize,
27530 ) -> *mut ::std::os::raw::c_char;
27531}
27532unsafe extern "C" {
27533 pub fn BNGetReportFlowGraph(reports: *mut BNReportCollection, i: usize) -> *mut BNFlowGraph;
27534}
27535unsafe extern "C" {
27536 pub fn BNAddPlainTextReportToCollection(
27537 reports: *mut BNReportCollection,
27538 view: *mut BNBinaryView,
27539 title: *const ::std::os::raw::c_char,
27540 contents: *const ::std::os::raw::c_char,
27541 );
27542}
27543unsafe extern "C" {
27544 pub fn BNAddMarkdownReportToCollection(
27545 reports: *mut BNReportCollection,
27546 view: *mut BNBinaryView,
27547 title: *const ::std::os::raw::c_char,
27548 contents: *const ::std::os::raw::c_char,
27549 plaintext: *const ::std::os::raw::c_char,
27550 );
27551}
27552unsafe extern "C" {
27553 pub fn BNAddHTMLReportToCollection(
27554 reports: *mut BNReportCollection,
27555 view: *mut BNBinaryView,
27556 title: *const ::std::os::raw::c_char,
27557 contents: *const ::std::os::raw::c_char,
27558 plaintext: *const ::std::os::raw::c_char,
27559 );
27560}
27561unsafe extern "C" {
27562 pub fn BNAddGraphReportToCollection(
27563 reports: *mut BNReportCollection,
27564 view: *mut BNBinaryView,
27565 title: *const ::std::os::raw::c_char,
27566 graph: *mut BNFlowGraph,
27567 );
27568}
27569unsafe extern "C" {
27570 pub fn BNUpdateReportFlowGraph(
27571 reports: *mut BNReportCollection,
27572 i: usize,
27573 graph: *mut BNFlowGraph,
27574 );
27575}
27576unsafe extern "C" {
27577 #[doc = " Demangler"]
27578 pub fn BNGetDefaultDemanglerConfig() -> BNDemanglerConfig;
27579}
27580unsafe extern "C" {
27581 pub fn BNGetDemanglerConfigForPlatform(
27582 platform: *mut BNPlatform,
27583 simplifyTemplates: bool,
27584 ) -> BNDemanglerConfig;
27585}
27586unsafe extern "C" {
27587 pub fn BNGetDemanglerConfigForBinaryView(view: *mut BNBinaryView) -> BNDemanglerConfig;
27588}
27589unsafe extern "C" {
27590 pub fn BNDemangle(
27591 name: *const ::std::os::raw::c_char,
27592 config: *const BNDemanglerConfig,
27593 result: *mut BNDemanglerResult,
27594 ) -> bool;
27595}
27596unsafe extern "C" {
27597 pub fn BNDemangleWithDemangler(
27598 demangler: *const BNDemangler,
27599 name: *const ::std::os::raw::c_char,
27600 config: *const BNDemanglerConfig,
27601 result: *mut BNDemanglerResult,
27602 ) -> bool;
27603}
27604unsafe extern "C" {
27605 pub fn BNFreeDemanglerResult(result: *mut BNDemanglerResult);
27606}
27607unsafe extern "C" {
27608 pub fn BNSimplifyDemangledTemplateName(
27609 name: *const BNQualifiedName,
27610 result: *mut BNQualifiedName,
27611 ) -> bool;
27612}
27613unsafe extern "C" {
27614 pub fn BNRegisterDemangler(
27615 name: *const ::std::os::raw::c_char,
27616 callbacks: *const BNDemanglerCallbacks,
27617 ) -> *mut BNDemangler;
27618}
27619unsafe extern "C" {
27620 pub fn BNGetDemanglerList(count: *mut usize) -> *mut *mut BNDemangler;
27621}
27622unsafe extern "C" {
27623 pub fn BNFreeDemanglerList(demanglers: *mut *mut BNDemangler);
27624}
27625unsafe extern "C" {
27626 pub fn BNGetDemanglerByName(name: *const ::std::os::raw::c_char) -> *mut BNDemangler;
27627}
27628unsafe extern "C" {
27629 pub fn BNGetMSVCDemangler() -> *mut BNDemangler;
27630}
27631unsafe extern "C" {
27632 pub fn BNGetGNU3Demangler() -> *mut BNDemangler;
27633}
27634unsafe extern "C" {
27635 pub fn BNGetLLVMDemangler() -> *mut BNDemangler;
27636}
27637unsafe extern "C" {
27638 pub fn BNGetDemanglerName(demangler: *const BNDemangler) -> *mut ::std::os::raw::c_char;
27639}
27640unsafe extern "C" {
27641 pub fn BNPromoteDemangler(demangler: *const BNDemangler) -> bool;
27642}
27643unsafe extern "C" {
27644 pub fn BNIsDemanglerMangledName(
27645 demangler: *const BNDemangler,
27646 name: *const ::std::os::raw::c_char,
27647 ) -> bool;
27648}
27649unsafe extern "C" {
27650 #[doc = " Plugin repository APIs"]
27651 pub fn BNPluginGetApis(p: *mut BNPlugin, count: *mut usize)
27652 -> *mut *mut ::std::os::raw::c_char;
27653}
27654unsafe extern "C" {
27655 pub fn BNPluginGetAuthor(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
27656}
27657unsafe extern "C" {
27658 pub fn BNPluginGetDescription(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
27659}
27660unsafe extern "C" {
27661 pub fn BNPluginGetLicenseText(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
27662}
27663unsafe extern "C" {
27664 pub fn BNPluginGetMinimumVersionInfo(p: *mut BNPlugin) -> BNVersionInfo;
27665}
27666unsafe extern "C" {
27667 pub fn BNPluginGetMaximumVersionInfo(p: *mut BNPlugin) -> BNVersionInfo;
27668}
27669unsafe extern "C" {
27670 pub fn BNParseVersionString(v: *const ::std::os::raw::c_char) -> BNVersionInfo;
27671}
27672unsafe extern "C" {
27673 pub fn BNVersionLessThan(smaller: BNVersionInfo, larger: BNVersionInfo) -> bool;
27674}
27675unsafe extern "C" {
27676 pub fn BNPluginVersionIDLessThan(
27677 p: *mut BNPlugin,
27678 smaller: *const ::std::os::raw::c_char,
27679 larger: *const ::std::os::raw::c_char,
27680 ) -> bool;
27681}
27682unsafe extern "C" {
27683 pub fn BNPluginGetName(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
27684}
27685unsafe extern "C" {
27686 pub fn BNPluginGetProjectUrl(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
27687}
27688unsafe extern "C" {
27689 pub fn BNPluginGetPackageUrl(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
27690}
27691unsafe extern "C" {
27692 pub fn BNPluginGetAuthorUrl(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
27693}
27694unsafe extern "C" {
27695 pub fn BNPluginGetVersions(p: *mut BNPlugin, count: *mut usize) -> *mut BNPluginVersion;
27696}
27697unsafe extern "C" {
27698 pub fn BNFreePluginVersions(r: *mut BNPluginVersion, count: usize);
27699}
27700unsafe extern "C" {
27701 pub fn BNPluginGetCurrentVersionID(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
27702}
27703unsafe extern "C" {
27704 pub fn BNPluginGetLatestVersionID(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
27705}
27706unsafe extern "C" {
27707 pub fn BNPluginGetCurrentVersion(p: *mut BNPlugin) -> BNPluginVersion;
27708}
27709unsafe extern "C" {
27710 pub fn BNPluginFreeVersion(v: BNPluginVersion);
27711}
27712unsafe extern "C" {
27713 pub fn BNPluginGetCommit(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
27714}
27715unsafe extern "C" {
27716 pub fn BNPluginGetViewOnly(p: *mut BNPlugin) -> bool;
27717}
27718unsafe extern "C" {
27719 pub fn BNPluginGetIsPaid(p: *mut BNPlugin) -> bool;
27720}
27721unsafe extern "C" {
27722 pub fn BNFreePluginTypes(r: *mut BNPluginType);
27723}
27724unsafe extern "C" {
27725 pub fn BNNewPluginReference(r: *mut BNPlugin) -> *mut BNPlugin;
27726}
27727unsafe extern "C" {
27728 pub fn BNFreePlugin(plugin: *mut BNPlugin);
27729}
27730unsafe extern "C" {
27731 pub fn BNPluginGetPath(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
27732}
27733unsafe extern "C" {
27734 pub fn BNPluginGetSubdir(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
27735}
27736unsafe extern "C" {
27737 pub fn BNPluginGetDependencies(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
27738}
27739unsafe extern "C" {
27740 pub fn BNPluginGetDependenciesForVersion(
27741 p: *mut BNPlugin,
27742 versionID: *const ::std::os::raw::c_char,
27743 ) -> *const ::std::os::raw::c_char;
27744}
27745unsafe extern "C" {
27746 pub fn BNPluginGetDependencyConflicts(
27747 p: *mut BNPlugin,
27748 count: *mut usize,
27749 ) -> *mut BNPluginDependencyConflict;
27750}
27751unsafe extern "C" {
27752 pub fn BNPluginGetDependencyConflictsForVersion(
27753 p: *mut BNPlugin,
27754 versionID: *const ::std::os::raw::c_char,
27755 count: *mut usize,
27756 ) -> *mut BNPluginDependencyConflict;
27757}
27758unsafe extern "C" {
27759 pub fn BNFreePluginDependencyConflicts(
27760 conflicts: *mut BNPluginDependencyConflict,
27761 count: usize,
27762 );
27763}
27764unsafe extern "C" {
27765 pub fn BNPluginGetLongdescription(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
27766}
27767unsafe extern "C" {
27768 pub fn BNPluginGetLastUpdate(p: *mut BNPlugin) -> u64;
27769}
27770unsafe extern "C" {
27771 pub fn BNPluginIsInstalled(p: *mut BNPlugin) -> bool;
27772}
27773unsafe extern "C" {
27774 pub fn BNPluginIsListed(p: *mut BNPlugin) -> bool;
27775}
27776unsafe extern "C" {
27777 pub fn BNPluginIsDeprecated(p: *mut BNPlugin) -> bool;
27778}
27779unsafe extern "C" {
27780 pub fn BNPluginIsEnabled(p: *mut BNPlugin) -> bool;
27781}
27782unsafe extern "C" {
27783 pub fn BNPluginGetPluginStatus(p: *mut BNPlugin) -> BNPluginStatus;
27784}
27785unsafe extern "C" {
27786 pub fn BNPluginGetPluginTypes(p: *mut BNPlugin, count: *mut usize) -> *mut BNPluginType;
27787}
27788unsafe extern "C" {
27789 pub fn BNPluginEnable(p: *mut BNPlugin, force: bool) -> bool;
27790}
27791unsafe extern "C" {
27792 pub fn BNPluginDisable(p: *mut BNPlugin) -> bool;
27793}
27794unsafe extern "C" {
27795 pub fn BNPluginInstall(p: *mut BNPlugin, versionID: *const ::std::os::raw::c_char) -> bool;
27796}
27797unsafe extern "C" {
27798 pub fn BNPluginInstallDependencies(p: *mut BNPlugin) -> bool;
27799}
27800unsafe extern "C" {
27801 pub fn BNPluginInstallDependenciesForVersion(
27802 p: *mut BNPlugin,
27803 versionID: *const ::std::os::raw::c_char,
27804 ) -> bool;
27805}
27806unsafe extern "C" {
27807 pub fn BNPluginInstallDependenciesWithExclusions(
27808 p: *mut BNPlugin,
27809 excludedPackageNames: *const *const ::std::os::raw::c_char,
27810 excludedPackageNameCount: usize,
27811 ) -> bool;
27812}
27813unsafe extern "C" {
27814 pub fn BNPluginInstallDependenciesWithExclusionsForVersion(
27815 p: *mut BNPlugin,
27816 versionID: *const ::std::os::raw::c_char,
27817 excludedPackageNames: *const *const ::std::os::raw::c_char,
27818 excludedPackageNameCount: usize,
27819 ) -> bool;
27820}
27821unsafe extern "C" {
27822 pub fn BNPluginUninstall(p: *mut BNPlugin) -> bool;
27823}
27824unsafe extern "C" {
27825 pub fn BNPluginCancelUninstall(p: *mut BNPlugin) -> bool;
27826}
27827unsafe extern "C" {
27828 pub fn BNPluginUpdate(p: *mut BNPlugin, versionID: *const ::std::os::raw::c_char) -> bool;
27829}
27830unsafe extern "C" {
27831 pub fn BNPluginGetPlatforms(
27832 p: *mut BNPlugin,
27833 count: *mut usize,
27834 ) -> *mut *mut ::std::os::raw::c_char;
27835}
27836unsafe extern "C" {
27837 pub fn BNFreePluginPlatforms(platforms: *mut *mut ::std::os::raw::c_char, count: usize);
27838}
27839unsafe extern "C" {
27840 pub fn BNPluginGetRepository(p: *mut BNPlugin) -> *const ::std::os::raw::c_char;
27841}
27842unsafe extern "C" {
27843 pub fn BNPluginIsBeingDeleted(p: *mut BNPlugin) -> bool;
27844}
27845unsafe extern "C" {
27846 pub fn BNPluginIsBeingUpdated(p: *mut BNPlugin) -> bool;
27847}
27848unsafe extern "C" {
27849 pub fn BNPluginIsRunning(p: *mut BNPlugin) -> bool;
27850}
27851unsafe extern "C" {
27852 pub fn BNPluginIsUpdatePending(p: *mut BNPlugin) -> bool;
27853}
27854unsafe extern "C" {
27855 pub fn BNPluginIsDisablePending(p: *mut BNPlugin) -> bool;
27856}
27857unsafe extern "C" {
27858 pub fn BNPluginIsDeletePending(p: *mut BNPlugin) -> bool;
27859}
27860unsafe extern "C" {
27861 pub fn BNPluginIsUpdateAvailable(p: *mut BNPlugin) -> bool;
27862}
27863unsafe extern "C" {
27864 pub fn BNPluginAreDependenciesBeingInstalled(p: *mut BNPlugin) -> bool;
27865}
27866unsafe extern "C" {
27867 pub fn BNPluginGetProjectData(p: *mut BNPlugin) -> *mut ::std::os::raw::c_char;
27868}
27869unsafe extern "C" {
27870 pub fn BNPluginGetCurrentVersionCreationDate(p: *mut BNPlugin) -> *mut ::std::os::raw::c_char;
27871}
27872unsafe extern "C" {
27873 pub fn BNNewRepositoryReference(r: *mut BNRepository) -> *mut BNRepository;
27874}
27875unsafe extern "C" {
27876 pub fn BNFreeRepository(r: *mut BNRepository);
27877}
27878unsafe extern "C" {
27879 pub fn BNRepositoryGetUrl(r: *mut BNRepository) -> *mut ::std::os::raw::c_char;
27880}
27881unsafe extern "C" {
27882 pub fn BNRepositoryGetRepoPath(r: *mut BNRepository) -> *mut ::std::os::raw::c_char;
27883}
27884unsafe extern "C" {
27885 pub fn BNRepositoryGetPlugins(r: *mut BNRepository, count: *mut usize) -> *mut *mut BNPlugin;
27886}
27887unsafe extern "C" {
27888 pub fn BNFreeRepositoryPluginList(r: *mut *mut BNPlugin);
27889}
27890unsafe extern "C" {
27891 pub fn BNRepositoryFreePluginDirectoryList(
27892 list: *mut *mut ::std::os::raw::c_char,
27893 count: usize,
27894 );
27895}
27896unsafe extern "C" {
27897 pub fn BNRepositoryGetPluginByPath(
27898 r: *mut BNRepository,
27899 pluginPath: *const ::std::os::raw::c_char,
27900 ) -> *mut BNPlugin;
27901}
27902unsafe extern "C" {
27903 pub fn BNRepositoryGetPluginsPath(r: *mut BNRepository) -> *const ::std::os::raw::c_char;
27904}
27905unsafe extern "C" {
27906 pub fn BNRepositoryManagerCheckForUpdates() -> bool;
27907}
27908unsafe extern "C" {
27909 pub fn BNRepositoryManagerGetRepositories(count: *mut usize) -> *mut *mut BNRepository;
27910}
27911unsafe extern "C" {
27912 pub fn BNFreeRepositoryManagerRepositoriesList(r: *mut *mut BNRepository);
27913}
27914unsafe extern "C" {
27915 pub fn BNRepositoryManagerAddRepository(
27916 url: *const ::std::os::raw::c_char,
27917 repoPath: *const ::std::os::raw::c_char,
27918 ) -> bool;
27919}
27920unsafe extern "C" {
27921 pub fn BNRepositoryGetRepositoryByPath(
27922 repoPath: *const ::std::os::raw::c_char,
27923 ) -> *mut BNRepository;
27924}
27925unsafe extern "C" {
27926 pub fn BNRepositoryManagerGetDefaultRepository() -> *mut BNRepository;
27927}
27928unsafe extern "C" {
27929 #[doc = " Components"]
27930 pub fn BNNewComponentReference(component: *mut BNComponent) -> *mut BNComponent;
27931}
27932unsafe extern "C" {
27933 pub fn BNFreeComponent(component: *mut BNComponent);
27934}
27935unsafe extern "C" {
27936 pub fn BNComponentGetContainedFunctions(
27937 component: *mut BNComponent,
27938 count: *mut usize,
27939 ) -> *mut *mut BNFunction;
27940}
27941unsafe extern "C" {
27942 pub fn BNComponentGetContainedComponents(
27943 component: *mut BNComponent,
27944 count: *mut usize,
27945 ) -> *mut *mut BNComponent;
27946}
27947unsafe extern "C" {
27948 pub fn BNComponentGetContainedDataVariables(
27949 component: *mut BNComponent,
27950 count: *mut usize,
27951 ) -> *mut BNDataVariable;
27952}
27953unsafe extern "C" {
27954 pub fn BNComponentGetReferencedDataVariables(
27955 component: *mut BNComponent,
27956 count: *mut usize,
27957 ) -> *mut BNDataVariable;
27958}
27959unsafe extern "C" {
27960 pub fn BNComponentGetReferencedDataVariablesRecursive(
27961 component: *mut BNComponent,
27962 count: *mut usize,
27963 ) -> *mut BNDataVariable;
27964}
27965unsafe extern "C" {
27966 pub fn BNComponentGetReferencedTypes(
27967 component: *mut BNComponent,
27968 count: *mut usize,
27969 ) -> *mut *mut BNType;
27970}
27971unsafe extern "C" {
27972 pub fn BNComponentGetReferencedTypesRecursive(
27973 component: *mut BNComponent,
27974 count: *mut usize,
27975 ) -> *mut *mut BNType;
27976}
27977unsafe extern "C" {
27978 pub fn BNFreeComponents(components: *mut *mut BNComponent, count: usize);
27979}
27980unsafe extern "C" {
27981 pub fn BNComponentFreeReferencedTypes(types: *mut *mut BNType, count: usize);
27982}
27983unsafe extern "C" {
27984 pub fn BNComponentGetParent(component: *mut BNComponent) -> *mut BNComponent;
27985}
27986unsafe extern "C" {
27987 pub fn BNComponentContainsFunction(
27988 component: *mut BNComponent,
27989 function: *mut BNFunction,
27990 ) -> bool;
27991}
27992unsafe extern "C" {
27993 pub fn BNComponentContainsComponent(
27994 parent: *mut BNComponent,
27995 component: *mut BNComponent,
27996 ) -> bool;
27997}
27998unsafe extern "C" {
27999 pub fn BNComponentContainsDataVariable(component: *mut BNComponent, address: u64) -> bool;
28000}
28001unsafe extern "C" {
28002 pub fn BNComponentAddFunctionReference(
28003 component: *mut BNComponent,
28004 function: *mut BNFunction,
28005 ) -> bool;
28006}
28007unsafe extern "C" {
28008 pub fn BNComponentAddComponent(parent: *mut BNComponent, component: *mut BNComponent) -> bool;
28009}
28010unsafe extern "C" {
28011 pub fn BNComponentAddDataVariable(component: *mut BNComponent, address: u64) -> bool;
28012}
28013unsafe extern "C" {
28014 pub fn BNComponentRemoveComponent(component: *mut BNComponent) -> bool;
28015}
28016unsafe extern "C" {
28017 pub fn BNComponentRemoveFunctionReference(
28018 component: *mut BNComponent,
28019 function: *mut BNFunction,
28020 ) -> bool;
28021}
28022unsafe extern "C" {
28023 pub fn BNComponentRemoveAllFunctions(component: *mut BNComponent);
28024}
28025unsafe extern "C" {
28026 pub fn BNComponentRemoveDataVariable(component: *mut BNComponent, address: u64) -> bool;
28027}
28028unsafe extern "C" {
28029 pub fn BNComponentAddAllMembersFromComponent(
28030 component: *mut BNComponent,
28031 fromComponent: *mut BNComponent,
28032 );
28033}
28034unsafe extern "C" {
28035 pub fn BNComponentGetGuid(component: *mut BNComponent) -> *mut ::std::os::raw::c_char;
28036}
28037unsafe extern "C" {
28038 pub fn BNComponentsEqual(a: *mut BNComponent, b: *mut BNComponent) -> bool;
28039}
28040unsafe extern "C" {
28041 pub fn BNComponentsNotEqual(a: *mut BNComponent, b: *mut BNComponent) -> bool;
28042}
28043unsafe extern "C" {
28044 pub fn BNComponentGetDisplayName(component: *mut BNComponent) -> *mut ::std::os::raw::c_char;
28045}
28046unsafe extern "C" {
28047 pub fn BNComponentGetOriginalName(component: *mut BNComponent) -> *mut ::std::os::raw::c_char;
28048}
28049unsafe extern "C" {
28050 pub fn BNComponentSetName(component: *mut BNComponent, name: *const ::std::os::raw::c_char);
28051}
28052unsafe extern "C" {
28053 pub fn BNComponentGetView(component: *mut BNComponent) -> *mut BNBinaryView;
28054}
28055unsafe extern "C" {
28056 #[doc = " LLVM Services APIs"]
28057 pub fn BNLlvmServicesInit();
28058}
28059unsafe extern "C" {
28060 pub fn BNLlvmServicesAssemble(
28061 src: *const ::std::os::raw::c_char,
28062 dialect: ::std::os::raw::c_int,
28063 triplet: *const ::std::os::raw::c_char,
28064 codeModel: ::std::os::raw::c_int,
28065 relocMode: ::std::os::raw::c_int,
28066 outBytes: *mut *mut ::std::os::raw::c_char,
28067 outBytesLen: *mut ::std::os::raw::c_int,
28068 err: *mut *mut ::std::os::raw::c_char,
28069 errLen: *mut ::std::os::raw::c_int,
28070 ) -> ::std::os::raw::c_int;
28071}
28072unsafe extern "C" {
28073 pub fn BNLlvmServicesAssembleFree(
28074 outBytes: *mut ::std::os::raw::c_char,
28075 err: *mut ::std::os::raw::c_char,
28076 );
28077}
28078unsafe extern "C" {
28079 pub fn BNLlvmServicesDisasmInstruction(
28080 triplet: *const ::std::os::raw::c_char,
28081 src: *mut u8,
28082 srcLen: ::std::os::raw::c_int,
28083 addr: u64,
28084 result: *mut ::std::os::raw::c_char,
28085 resultMaxSize: usize,
28086 ) -> ::std::os::raw::c_int;
28087}
28088unsafe extern "C" {
28089 #[doc = " Filesystem functionality"]
28090 pub fn BNDeleteFile(path: *const ::std::os::raw::c_char) -> bool;
28091}
28092unsafe extern "C" {
28093 pub fn BNDeleteDirectory(path: *const ::std::os::raw::c_char) -> bool;
28094}
28095unsafe extern "C" {
28096 pub fn BNCreateDirectory(
28097 path: *const ::std::os::raw::c_char,
28098 createSubdirectories: bool,
28099 ) -> bool;
28100}
28101unsafe extern "C" {
28102 pub fn BNPathExists(path: *const ::std::os::raw::c_char) -> bool;
28103}
28104unsafe extern "C" {
28105 pub fn BNIsPathDirectory(path: *const ::std::os::raw::c_char) -> bool;
28106}
28107unsafe extern "C" {
28108 pub fn BNIsPathRegularFile(path: *const ::std::os::raw::c_char) -> bool;
28109}
28110unsafe extern "C" {
28111 pub fn BNFileSize(path: *const ::std::os::raw::c_char, size: *mut u64) -> bool;
28112}
28113unsafe extern "C" {
28114 pub fn BNRenameFile(
28115 source: *const ::std::os::raw::c_char,
28116 dest: *const ::std::os::raw::c_char,
28117 ) -> bool;
28118}
28119unsafe extern "C" {
28120 pub fn BNCopyFile(
28121 source: *const ::std::os::raw::c_char,
28122 dest: *const ::std::os::raw::c_char,
28123 ) -> bool;
28124}
28125unsafe extern "C" {
28126 pub fn BNGetFilePathsInDirectory(
28127 path: *const ::std::os::raw::c_char,
28128 count: *mut usize,
28129 ) -> *mut *mut ::std::os::raw::c_char;
28130}
28131unsafe extern "C" {
28132 pub fn BNGetSystemCacheDirectory() -> *mut ::std::os::raw::c_char;
28133}
28134unsafe extern "C" {
28135 #[doc = " Settings APIs"]
28136 pub fn BNCreateSettings(schemaId: *const ::std::os::raw::c_char) -> *mut BNSettings;
28137}
28138unsafe extern "C" {
28139 pub fn BNNewSettingsReference(settings: *mut BNSettings) -> *mut BNSettings;
28140}
28141unsafe extern "C" {
28142 pub fn BNFreeSettings(settings: *mut BNSettings);
28143}
28144unsafe extern "C" {
28145 pub fn BNLoadSettingsFile(
28146 settings: *mut BNSettings,
28147 fileName: *const ::std::os::raw::c_char,
28148 scope: BNSettingsScope,
28149 view: *mut BNBinaryView,
28150 ) -> bool;
28151}
28152unsafe extern "C" {
28153 pub fn BNSettingsSetResourceId(
28154 settings: *mut BNSettings,
28155 resourceId: *const ::std::os::raw::c_char,
28156 );
28157}
28158unsafe extern "C" {
28159 pub fn BNSettingsRegisterGroup(
28160 settings: *mut BNSettings,
28161 group: *const ::std::os::raw::c_char,
28162 title: *const ::std::os::raw::c_char,
28163 ) -> bool;
28164}
28165unsafe extern "C" {
28166 pub fn BNSettingsRegisterSetting(
28167 settings: *mut BNSettings,
28168 key: *const ::std::os::raw::c_char,
28169 properties: *const ::std::os::raw::c_char,
28170 ) -> bool;
28171}
28172unsafe extern "C" {
28173 pub fn BNSettingsContains(
28174 settings: *mut BNSettings,
28175 key: *const ::std::os::raw::c_char,
28176 ) -> bool;
28177}
28178unsafe extern "C" {
28179 pub fn BNSettingsIsEmpty(
28180 settings: *mut BNSettings,
28181 view: *mut BNBinaryView,
28182 func: *mut BNFunction,
28183 scope: BNSettingsScope,
28184 ) -> bool;
28185}
28186unsafe extern "C" {
28187 pub fn BNSettingsKeysList(
28188 settings: *mut BNSettings,
28189 inoutSize: *mut usize,
28190 ) -> *mut *const ::std::os::raw::c_char;
28191}
28192unsafe extern "C" {
28193 pub fn BNSettingsQueryPropertyString(
28194 settings: *mut BNSettings,
28195 key: *const ::std::os::raw::c_char,
28196 property: *const ::std::os::raw::c_char,
28197 ) -> *mut ::std::os::raw::c_char;
28198}
28199unsafe extern "C" {
28200 pub fn BNSettingsQueryPropertyStringList(
28201 settings: *mut BNSettings,
28202 key: *const ::std::os::raw::c_char,
28203 property: *const ::std::os::raw::c_char,
28204 inoutSize: *mut usize,
28205 ) -> *mut *const ::std::os::raw::c_char;
28206}
28207unsafe extern "C" {
28208 pub fn BNSettingsUpdateProperty(
28209 settings: *mut BNSettings,
28210 key: *const ::std::os::raw::c_char,
28211 property: *const ::std::os::raw::c_char,
28212 ) -> bool;
28213}
28214unsafe extern "C" {
28215 pub fn BNSettingsUpdateBoolProperty(
28216 settings: *mut BNSettings,
28217 key: *const ::std::os::raw::c_char,
28218 property: *const ::std::os::raw::c_char,
28219 value: bool,
28220 ) -> bool;
28221}
28222unsafe extern "C" {
28223 pub fn BNSettingsUpdateDoubleProperty(
28224 settings: *mut BNSettings,
28225 key: *const ::std::os::raw::c_char,
28226 property: *const ::std::os::raw::c_char,
28227 value: f64,
28228 ) -> bool;
28229}
28230unsafe extern "C" {
28231 pub fn BNSettingsUpdateInt64Property(
28232 settings: *mut BNSettings,
28233 key: *const ::std::os::raw::c_char,
28234 property: *const ::std::os::raw::c_char,
28235 value: i64,
28236 ) -> bool;
28237}
28238unsafe extern "C" {
28239 pub fn BNSettingsUpdateUInt64Property(
28240 settings: *mut BNSettings,
28241 key: *const ::std::os::raw::c_char,
28242 property: *const ::std::os::raw::c_char,
28243 value: u64,
28244 ) -> bool;
28245}
28246unsafe extern "C" {
28247 pub fn BNSettingsUpdateStringProperty(
28248 settings: *mut BNSettings,
28249 key: *const ::std::os::raw::c_char,
28250 property: *const ::std::os::raw::c_char,
28251 value: *const ::std::os::raw::c_char,
28252 ) -> bool;
28253}
28254unsafe extern "C" {
28255 pub fn BNSettingsUpdateStringListProperty(
28256 settings: *mut BNSettings,
28257 key: *const ::std::os::raw::c_char,
28258 property: *const ::std::os::raw::c_char,
28259 value: *mut *const ::std::os::raw::c_char,
28260 size: usize,
28261 ) -> bool;
28262}
28263unsafe extern "C" {
28264 pub fn BNSettingsDeserializeSchema(
28265 settings: *mut BNSettings,
28266 schema: *const ::std::os::raw::c_char,
28267 scope: BNSettingsScope,
28268 merge: bool,
28269 ) -> bool;
28270}
28271unsafe extern "C" {
28272 pub fn BNSettingsSerializeSchema(settings: *mut BNSettings) -> *mut ::std::os::raw::c_char;
28273}
28274unsafe extern "C" {
28275 pub fn BNDeserializeSettings(
28276 settings: *mut BNSettings,
28277 contents: *const ::std::os::raw::c_char,
28278 view: *mut BNBinaryView,
28279 func: *mut BNFunction,
28280 scope: BNSettingsScope,
28281 ) -> bool;
28282}
28283unsafe extern "C" {
28284 pub fn BNSerializeSettings(
28285 settings: *mut BNSettings,
28286 view: *mut BNBinaryView,
28287 func: *mut BNFunction,
28288 scope: BNSettingsScope,
28289 ) -> *mut ::std::os::raw::c_char;
28290}
28291unsafe extern "C" {
28292 pub fn BNSettingsReset(
28293 settings: *mut BNSettings,
28294 key: *const ::std::os::raw::c_char,
28295 view: *mut BNBinaryView,
28296 func: *mut BNFunction,
28297 scope: BNSettingsScope,
28298 ) -> bool;
28299}
28300unsafe extern "C" {
28301 pub fn BNSettingsResetAll(
28302 settings: *mut BNSettings,
28303 view: *mut BNBinaryView,
28304 func: *mut BNFunction,
28305 scope: BNSettingsScope,
28306 schemaOnly: bool,
28307 ) -> bool;
28308}
28309unsafe extern "C" {
28310 pub fn BNSettingsGetBool(
28311 settings: *mut BNSettings,
28312 key: *const ::std::os::raw::c_char,
28313 view: *mut BNBinaryView,
28314 func: *mut BNFunction,
28315 scope: *mut BNSettingsScope,
28316 ) -> bool;
28317}
28318unsafe extern "C" {
28319 pub fn BNSettingsGetDouble(
28320 settings: *mut BNSettings,
28321 key: *const ::std::os::raw::c_char,
28322 view: *mut BNBinaryView,
28323 func: *mut BNFunction,
28324 scope: *mut BNSettingsScope,
28325 ) -> f64;
28326}
28327unsafe extern "C" {
28328 pub fn BNSettingsGetInt64(
28329 settings: *mut BNSettings,
28330 key: *const ::std::os::raw::c_char,
28331 view: *mut BNBinaryView,
28332 func: *mut BNFunction,
28333 scope: *mut BNSettingsScope,
28334 ) -> i64;
28335}
28336unsafe extern "C" {
28337 pub fn BNSettingsGetUInt64(
28338 settings: *mut BNSettings,
28339 key: *const ::std::os::raw::c_char,
28340 view: *mut BNBinaryView,
28341 func: *mut BNFunction,
28342 scope: *mut BNSettingsScope,
28343 ) -> u64;
28344}
28345unsafe extern "C" {
28346 pub fn BNSettingsGetString(
28347 settings: *mut BNSettings,
28348 key: *const ::std::os::raw::c_char,
28349 view: *mut BNBinaryView,
28350 func: *mut BNFunction,
28351 scope: *mut BNSettingsScope,
28352 ) -> *mut ::std::os::raw::c_char;
28353}
28354unsafe extern "C" {
28355 pub fn BNSettingsGetStringList(
28356 settings: *mut BNSettings,
28357 key: *const ::std::os::raw::c_char,
28358 view: *mut BNBinaryView,
28359 func: *mut BNFunction,
28360 scope: *mut BNSettingsScope,
28361 inoutSize: *mut usize,
28362 ) -> *mut *const ::std::os::raw::c_char;
28363}
28364unsafe extern "C" {
28365 pub fn BNSettingsGetJson(
28366 settings: *mut BNSettings,
28367 key: *const ::std::os::raw::c_char,
28368 view: *mut BNBinaryView,
28369 func: *mut BNFunction,
28370 scope: *mut BNSettingsScope,
28371 ) -> *mut ::std::os::raw::c_char;
28372}
28373unsafe extern "C" {
28374 pub fn BNSettingsSetBool(
28375 settings: *mut BNSettings,
28376 view: *mut BNBinaryView,
28377 func: *mut BNFunction,
28378 scope: BNSettingsScope,
28379 key: *const ::std::os::raw::c_char,
28380 value: bool,
28381 ) -> bool;
28382}
28383unsafe extern "C" {
28384 pub fn BNSettingsSetDouble(
28385 settings: *mut BNSettings,
28386 view: *mut BNBinaryView,
28387 func: *mut BNFunction,
28388 scope: BNSettingsScope,
28389 key: *const ::std::os::raw::c_char,
28390 value: f64,
28391 ) -> bool;
28392}
28393unsafe extern "C" {
28394 pub fn BNSettingsSetInt64(
28395 settings: *mut BNSettings,
28396 view: *mut BNBinaryView,
28397 func: *mut BNFunction,
28398 scope: BNSettingsScope,
28399 key: *const ::std::os::raw::c_char,
28400 value: i64,
28401 ) -> bool;
28402}
28403unsafe extern "C" {
28404 pub fn BNSettingsSetUInt64(
28405 settings: *mut BNSettings,
28406 view: *mut BNBinaryView,
28407 func: *mut BNFunction,
28408 scope: BNSettingsScope,
28409 key: *const ::std::os::raw::c_char,
28410 value: u64,
28411 ) -> bool;
28412}
28413unsafe extern "C" {
28414 pub fn BNSettingsSetString(
28415 settings: *mut BNSettings,
28416 view: *mut BNBinaryView,
28417 func: *mut BNFunction,
28418 scope: BNSettingsScope,
28419 key: *const ::std::os::raw::c_char,
28420 value: *const ::std::os::raw::c_char,
28421 ) -> bool;
28422}
28423unsafe extern "C" {
28424 pub fn BNSettingsSetStringList(
28425 settings: *mut BNSettings,
28426 view: *mut BNBinaryView,
28427 func: *mut BNFunction,
28428 scope: BNSettingsScope,
28429 key: *const ::std::os::raw::c_char,
28430 value: *mut *const ::std::os::raw::c_char,
28431 size: usize,
28432 ) -> bool;
28433}
28434unsafe extern "C" {
28435 pub fn BNSettingsSetJson(
28436 settings: *mut BNSettings,
28437 view: *mut BNBinaryView,
28438 func: *mut BNFunction,
28439 scope: BNSettingsScope,
28440 key: *const ::std::os::raw::c_char,
28441 value: *const ::std::os::raw::c_char,
28442 ) -> bool;
28443}
28444unsafe extern "C" {
28445 #[doc = " Create Metadata of various types"]
28446 pub fn BNNewMetadataReference(data: *mut BNMetadata) -> *mut BNMetadata;
28447}
28448unsafe extern "C" {
28449 pub fn BNCreateMetadataBooleanData(data: bool) -> *mut BNMetadata;
28450}
28451unsafe extern "C" {
28452 pub fn BNCreateMetadataStringData(data: *const ::std::os::raw::c_char) -> *mut BNMetadata;
28453}
28454unsafe extern "C" {
28455 pub fn BNCreateMetadataUnsignedIntegerData(data: u64) -> *mut BNMetadata;
28456}
28457unsafe extern "C" {
28458 pub fn BNCreateMetadataSignedIntegerData(data: i64) -> *mut BNMetadata;
28459}
28460unsafe extern "C" {
28461 pub fn BNCreateMetadataDoubleData(data: f64) -> *mut BNMetadata;
28462}
28463unsafe extern "C" {
28464 pub fn BNCreateMetadataOfType(type_: BNMetadataType) -> *mut BNMetadata;
28465}
28466unsafe extern "C" {
28467 pub fn BNCreateMetadataRawData(data: *const u8, size: usize) -> *mut BNMetadata;
28468}
28469unsafe extern "C" {
28470 pub fn BNCreateMetadataArray(data: *mut *mut BNMetadata, size: usize) -> *mut BNMetadata;
28471}
28472unsafe extern "C" {
28473 pub fn BNCreateMetadataValueStore(
28474 keys: *mut *const ::std::os::raw::c_char,
28475 values: *mut *mut BNMetadata,
28476 size: usize,
28477 ) -> *mut BNMetadata;
28478}
28479unsafe extern "C" {
28480 pub fn BNCreateMetadataBooleanListData(data: *mut bool, size: usize) -> *mut BNMetadata;
28481}
28482unsafe extern "C" {
28483 pub fn BNCreateMetadataUnsignedIntegerListData(data: *mut u64, size: usize) -> *mut BNMetadata;
28484}
28485unsafe extern "C" {
28486 pub fn BNCreateMetadataSignedIntegerListData(data: *mut i64, size: usize) -> *mut BNMetadata;
28487}
28488unsafe extern "C" {
28489 pub fn BNCreateMetadataDoubleListData(data: *mut f64, size: usize) -> *mut BNMetadata;
28490}
28491unsafe extern "C" {
28492 pub fn BNCreateMetadataStringListData(
28493 data: *mut *const ::std::os::raw::c_char,
28494 size: usize,
28495 ) -> *mut BNMetadata;
28496}
28497unsafe extern "C" {
28498 pub fn BNMetadataIsEqual(lhs: *mut BNMetadata, rhs: *mut BNMetadata) -> bool;
28499}
28500unsafe extern "C" {
28501 pub fn BNMetadataSetValueForKey(
28502 data: *mut BNMetadata,
28503 key: *const ::std::os::raw::c_char,
28504 md: *mut BNMetadata,
28505 ) -> bool;
28506}
28507unsafe extern "C" {
28508 pub fn BNMetadataGetForKey(
28509 data: *mut BNMetadata,
28510 key: *const ::std::os::raw::c_char,
28511 ) -> *mut BNMetadata;
28512}
28513unsafe extern "C" {
28514 pub fn BNMetadataArrayAppend(data: *mut BNMetadata, md: *mut BNMetadata) -> bool;
28515}
28516unsafe extern "C" {
28517 pub fn BNMetadataRemoveKey(data: *mut BNMetadata, key: *const ::std::os::raw::c_char);
28518}
28519unsafe extern "C" {
28520 pub fn BNMetadataSize(data: *mut BNMetadata) -> usize;
28521}
28522unsafe extern "C" {
28523 pub fn BNMetadataGetForIndex(data: *mut BNMetadata, index: usize) -> *mut BNMetadata;
28524}
28525unsafe extern "C" {
28526 pub fn BNMetadataRemoveIndex(data: *mut BNMetadata, index: usize);
28527}
28528unsafe extern "C" {
28529 pub fn BNFreeMetadataArray(data: *mut *mut BNMetadata);
28530}
28531unsafe extern "C" {
28532 pub fn BNFreeMetadataValueStore(data: *mut BNMetadataValueStore);
28533}
28534unsafe extern "C" {
28535 pub fn BNFreeMetadata(data: *mut BNMetadata);
28536}
28537unsafe extern "C" {
28538 pub fn BNFreeMetadataRaw(data: *mut u8);
28539}
28540unsafe extern "C" {
28541 pub fn BNFreeMetadataBooleanList(arg1: *mut bool, arg2: usize);
28542}
28543unsafe extern "C" {
28544 pub fn BNFreeMetadataUnsignedIntegerList(arg1: *mut u64, arg2: usize);
28545}
28546unsafe extern "C" {
28547 pub fn BNFreeMetadataSignedIntegerList(arg1: *mut i64, arg2: usize);
28548}
28549unsafe extern "C" {
28550 pub fn BNFreeMetadataDoubleList(arg1: *mut f64, arg2: usize);
28551}
28552unsafe extern "C" {
28553 pub fn BNFreeMetadataStringList(arg1: *mut *mut ::std::os::raw::c_char, arg2: usize);
28554}
28555unsafe extern "C" {
28556 #[doc = " Retrieve Structured Data"]
28557 pub fn BNMetadataGetBoolean(data: *mut BNMetadata) -> bool;
28558}
28559unsafe extern "C" {
28560 pub fn BNMetadataGetString(data: *mut BNMetadata) -> *mut ::std::os::raw::c_char;
28561}
28562unsafe extern "C" {
28563 pub fn BNMetadataGetUnsignedInteger(data: *mut BNMetadata) -> u64;
28564}
28565unsafe extern "C" {
28566 pub fn BNMetadataGetSignedInteger(data: *mut BNMetadata) -> i64;
28567}
28568unsafe extern "C" {
28569 pub fn BNMetadataGetDouble(data: *mut BNMetadata) -> f64;
28570}
28571unsafe extern "C" {
28572 pub fn BNMetadataGetBooleanList(data: *mut BNMetadata, arg1: *mut usize) -> *mut bool;
28573}
28574unsafe extern "C" {
28575 pub fn BNMetadataGetStringList(
28576 data: *mut BNMetadata,
28577 arg1: *mut usize,
28578 ) -> *mut *mut ::std::os::raw::c_char;
28579}
28580unsafe extern "C" {
28581 pub fn BNMetadataGetUnsignedIntegerList(data: *mut BNMetadata, arg1: *mut usize) -> *mut u64;
28582}
28583unsafe extern "C" {
28584 pub fn BNMetadataGetSignedIntegerList(data: *mut BNMetadata, arg1: *mut usize) -> *mut i64;
28585}
28586unsafe extern "C" {
28587 pub fn BNMetadataGetDoubleList(data: *mut BNMetadata, arg1: *mut usize) -> *mut f64;
28588}
28589unsafe extern "C" {
28590 pub fn BNMetadataGetRaw(data: *mut BNMetadata, size: *mut usize) -> *mut u8;
28591}
28592unsafe extern "C" {
28593 pub fn BNMetadataGetArray(data: *mut BNMetadata, size: *mut usize) -> *mut *mut BNMetadata;
28594}
28595unsafe extern "C" {
28596 pub fn BNMetadataGetValueStore(data: *mut BNMetadata) -> *mut BNMetadataValueStore;
28597}
28598unsafe extern "C" {
28599 pub fn BNMetadataGetJsonString(data: *mut BNMetadata) -> *mut ::std::os::raw::c_char;
28600}
28601unsafe extern "C" {
28602 #[doc = " Query type of Metadata"]
28603 pub fn BNMetadataGetType(data: *mut BNMetadata) -> BNMetadataType;
28604}
28605unsafe extern "C" {
28606 pub fn BNMetadataIsBoolean(data: *mut BNMetadata) -> bool;
28607}
28608unsafe extern "C" {
28609 pub fn BNMetadataIsString(data: *mut BNMetadata) -> bool;
28610}
28611unsafe extern "C" {
28612 pub fn BNMetadataIsUnsignedInteger(data: *mut BNMetadata) -> bool;
28613}
28614unsafe extern "C" {
28615 pub fn BNMetadataIsSignedInteger(data: *mut BNMetadata) -> bool;
28616}
28617unsafe extern "C" {
28618 pub fn BNMetadataIsDouble(data: *mut BNMetadata) -> bool;
28619}
28620unsafe extern "C" {
28621 pub fn BNMetadataIsBooleanList(data: *mut BNMetadata) -> bool;
28622}
28623unsafe extern "C" {
28624 pub fn BNMetadataIsStringList(data: *mut BNMetadata) -> bool;
28625}
28626unsafe extern "C" {
28627 pub fn BNMetadataIsUnsignedIntegerList(data: *mut BNMetadata) -> bool;
28628}
28629unsafe extern "C" {
28630 pub fn BNMetadataIsSignedIntegerList(data: *mut BNMetadata) -> bool;
28631}
28632unsafe extern "C" {
28633 pub fn BNMetadataIsDoubleList(data: *mut BNMetadata) -> bool;
28634}
28635unsafe extern "C" {
28636 pub fn BNMetadataIsRaw(data: *mut BNMetadata) -> bool;
28637}
28638unsafe extern "C" {
28639 pub fn BNMetadataIsArray(data: *mut BNMetadata) -> bool;
28640}
28641unsafe extern "C" {
28642 pub fn BNMetadataIsKeyValueStore(data: *mut BNMetadata) -> bool;
28643}
28644unsafe extern "C" {
28645 #[doc = " Store/Query structured data to/from a BinaryView"]
28646 pub fn BNBinaryViewStoreMetadata(
28647 view: *mut BNBinaryView,
28648 key: *const ::std::os::raw::c_char,
28649 value: *mut BNMetadata,
28650 flags: BNMetadataStoreFlag,
28651 );
28652}
28653unsafe extern "C" {
28654 pub fn BNBinaryViewQueryMetadata(
28655 view: *mut BNBinaryView,
28656 key: *const ::std::os::raw::c_char,
28657 ) -> *mut BNMetadata;
28658}
28659unsafe extern "C" {
28660 pub fn BNBinaryViewRemoveMetadata(view: *mut BNBinaryView, key: *const ::std::os::raw::c_char);
28661}
28662unsafe extern "C" {
28663 pub fn BNBinaryViewGetMetadata(view: *mut BNBinaryView) -> *mut BNMetadata;
28664}
28665unsafe extern "C" {
28666 pub fn BNBinaryViewGetAutoMetadata(view: *mut BNBinaryView) -> *mut BNMetadata;
28667}
28668unsafe extern "C" {
28669 pub fn BNBinaryViewGetLoadSettingsTypeNames(
28670 view: *mut BNBinaryView,
28671 count: *mut usize,
28672 ) -> *mut *mut ::std::os::raw::c_char;
28673}
28674unsafe extern "C" {
28675 pub fn BNBinaryViewGetLoadSettings(
28676 view: *mut BNBinaryView,
28677 typeName: *const ::std::os::raw::c_char,
28678 ) -> *mut BNSettings;
28679}
28680unsafe extern "C" {
28681 pub fn BNBinaryViewSetLoadSettings(
28682 view: *mut BNBinaryView,
28683 typeName: *const ::std::os::raw::c_char,
28684 settings: *mut BNSettings,
28685 );
28686}
28687unsafe extern "C" {
28688 pub fn BNBinaryViewFinalizeNewSegments(view: *mut BNBinaryView) -> bool;
28689}
28690unsafe extern "C" {
28691 #[doc = " Relocation object methods"]
28692 pub fn BNNewRelocationReference(reloc: *mut BNRelocation) -> *mut BNRelocation;
28693}
28694unsafe extern "C" {
28695 pub fn BNFreeRelocation(reloc: *mut BNRelocation);
28696}
28697unsafe extern "C" {
28698 pub fn BNRelocationGetInfo(reloc: *mut BNRelocation) -> BNRelocationInfo;
28699}
28700unsafe extern "C" {
28701 pub fn BNRelocationGetArchitecture(reloc: *mut BNRelocation) -> *mut BNArchitecture;
28702}
28703unsafe extern "C" {
28704 pub fn BNRelocationGetTarget(reloc: *mut BNRelocation) -> u64;
28705}
28706unsafe extern "C" {
28707 pub fn BNRelocationGetReloc(reloc: *mut BNRelocation) -> u64;
28708}
28709unsafe extern "C" {
28710 pub fn BNRelocationGetSymbol(reloc: *mut BNRelocation) -> *mut BNSymbol;
28711}
28712unsafe extern "C" {
28713 #[doc = " Segment object methods"]
28714 pub fn BNCreateSegment(
28715 start: u64,
28716 length: u64,
28717 dataOffset: u64,
28718 dataLength: u64,
28719 flags: u32,
28720 autoDefined: bool,
28721 ) -> *mut BNSegment;
28722}
28723unsafe extern "C" {
28724 pub fn BNNewSegmentReference(seg: *mut BNSegment) -> *mut BNSegment;
28725}
28726unsafe extern "C" {
28727 pub fn BNFreeSegment(seg: *mut BNSegment);
28728}
28729unsafe extern "C" {
28730 pub fn BNSegmentGetStart(segment: *mut BNSegment) -> u64;
28731}
28732unsafe extern "C" {
28733 pub fn BNSegmentGetLength(segment: *mut BNSegment) -> u64;
28734}
28735unsafe extern "C" {
28736 pub fn BNSegmentGetEnd(segment: *mut BNSegment) -> u64;
28737}
28738unsafe extern "C" {
28739 pub fn BNSegmentGetDataEnd(segment: *mut BNSegment) -> u64;
28740}
28741unsafe extern "C" {
28742 pub fn BNSegmentGetDataOffset(segment: *mut BNSegment) -> u64;
28743}
28744unsafe extern "C" {
28745 pub fn BNSegmentGetDataLength(segment: *mut BNSegment) -> u64;
28746}
28747unsafe extern "C" {
28748 pub fn BNSegmentGetFlags(segment: *mut BNSegment) -> u32;
28749}
28750unsafe extern "C" {
28751 pub fn BNSegmentIsAutoDefined(segment: *mut BNSegment) -> bool;
28752}
28753unsafe extern "C" {
28754 #[doc = " Section object methods"]
28755 pub fn BNNewSectionReference(section: *mut BNSection) -> *mut BNSection;
28756}
28757unsafe extern "C" {
28758 pub fn BNFreeSection(section: *mut BNSection);
28759}
28760unsafe extern "C" {
28761 pub fn BNSectionGetName(section: *mut BNSection) -> *mut ::std::os::raw::c_char;
28762}
28763unsafe extern "C" {
28764 pub fn BNSectionGetType(section: *mut BNSection) -> *mut ::std::os::raw::c_char;
28765}
28766unsafe extern "C" {
28767 pub fn BNSectionGetStart(section: *mut BNSection) -> u64;
28768}
28769unsafe extern "C" {
28770 pub fn BNSectionGetLength(section: *mut BNSection) -> u64;
28771}
28772unsafe extern "C" {
28773 pub fn BNSectionGetEnd(section: *mut BNSection) -> u64;
28774}
28775unsafe extern "C" {
28776 pub fn BNSectionGetLinkedSection(section: *mut BNSection) -> *mut ::std::os::raw::c_char;
28777}
28778unsafe extern "C" {
28779 pub fn BNSectionGetInfoSection(section: *mut BNSection) -> *mut ::std::os::raw::c_char;
28780}
28781unsafe extern "C" {
28782 pub fn BNSectionGetInfoData(section: *mut BNSection) -> u64;
28783}
28784unsafe extern "C" {
28785 pub fn BNSectionGetAlign(section: *mut BNSection) -> u64;
28786}
28787unsafe extern "C" {
28788 pub fn BNSectionGetEntrySize(section: *mut BNSection) -> u64;
28789}
28790unsafe extern "C" {
28791 pub fn BNSectionGetSemantics(section: *mut BNSection) -> BNSectionSemantics;
28792}
28793unsafe extern "C" {
28794 pub fn BNSectionIsAutoDefined(section: *mut BNSection) -> bool;
28795}
28796unsafe extern "C" {
28797 #[doc = " Custom Data Render methods"]
28798 pub fn BNCreateDataRenderer(renderer: *mut BNCustomDataRenderer) -> *mut BNDataRenderer;
28799}
28800unsafe extern "C" {
28801 pub fn BNNewDataRendererReference(renderer: *mut BNDataRenderer) -> *mut BNDataRenderer;
28802}
28803unsafe extern "C" {
28804 pub fn BNIsValidForData(
28805 ctxt: *mut ::std::os::raw::c_void,
28806 view: *mut BNBinaryView,
28807 addr: u64,
28808 type_: *mut BNType,
28809 typeCtx: *mut BNTypeContext,
28810 ctxCount: usize,
28811 ) -> bool;
28812}
28813unsafe extern "C" {
28814 pub fn BNGetLinesForData(
28815 ctxt: *mut ::std::os::raw::c_void,
28816 view: *mut BNBinaryView,
28817 addr: u64,
28818 type_: *mut BNType,
28819 prefix: *const BNInstructionTextToken,
28820 prefixCount: usize,
28821 width: usize,
28822 count: *mut usize,
28823 typeCtx: *mut BNTypeContext,
28824 ctxCount: usize,
28825 language: *const ::std::os::raw::c_char,
28826 ) -> *mut BNDisassemblyTextLine;
28827}
28828unsafe extern "C" {
28829 pub fn BNRenderLinesForData(
28830 data: *mut BNBinaryView,
28831 addr: u64,
28832 type_: *mut BNType,
28833 prefix: *const BNInstructionTextToken,
28834 prefixCount: usize,
28835 width: usize,
28836 count: *mut usize,
28837 typeCtx: *mut BNTypeContext,
28838 ctxCount: usize,
28839 language: *const ::std::os::raw::c_char,
28840 ) -> *mut BNDisassemblyTextLine;
28841}
28842unsafe extern "C" {
28843 pub fn BNFreeDataRenderer(renderer: *mut BNDataRenderer);
28844}
28845unsafe extern "C" {
28846 pub fn BNGetDataRendererContainer() -> *mut BNDataRendererContainer;
28847}
28848unsafe extern "C" {
28849 pub fn BNRegisterGenericDataRenderer(
28850 container: *mut BNDataRendererContainer,
28851 renderer: *mut BNDataRenderer,
28852 );
28853}
28854unsafe extern "C" {
28855 pub fn BNRegisterTypeSpecificDataRenderer(
28856 container: *mut BNDataRendererContainer,
28857 renderer: *mut BNDataRenderer,
28858 );
28859}
28860unsafe extern "C" {
28861 pub fn BNParseExpression(
28862 view: *mut BNBinaryView,
28863 expression: *const ::std::os::raw::c_char,
28864 offset: *mut u64,
28865 here: u64,
28866 errorString: *mut *mut ::std::os::raw::c_char,
28867 ) -> bool;
28868}
28869unsafe extern "C" {
28870 pub fn BNFreeParseError(errorString: *mut ::std::os::raw::c_char);
28871}
28872unsafe extern "C" {
28873 pub fn BNGetCurrentStackTraceString() -> *mut ::std::os::raw::c_char;
28874}
28875unsafe extern "C" {
28876 pub fn BNRegisterObjectRefDebugTrace(
28877 typeName: *const ::std::os::raw::c_char,
28878 ) -> *mut ::std::os::raw::c_void;
28879}
28880unsafe extern "C" {
28881 pub fn BNUnregisterObjectRefDebugTrace(
28882 typeName: *const ::std::os::raw::c_char,
28883 trace: *mut ::std::os::raw::c_void,
28884 );
28885}
28886unsafe extern "C" {
28887 pub fn BNGetMemoryUsageInfo(count: *mut usize) -> *mut BNMemoryUsageInfo;
28888}
28889unsafe extern "C" {
28890 pub fn BNFreeMemoryUsageInfo(info: *mut BNMemoryUsageInfo, count: usize);
28891}
28892unsafe extern "C" {
28893 pub fn BNGetStatHistograms(count: *mut usize) -> *mut BNStatHistogram;
28894}
28895unsafe extern "C" {
28896 pub fn BNFreeStatHistograms(stats: *mut BNStatHistogram, count: usize);
28897}
28898unsafe extern "C" {
28899 pub fn BNGetAddressRenderedWidth(addr: u64) -> u32;
28900}
28901unsafe extern "C" {
28902 pub fn BNRegisterDebugInfoParser(
28903 name: *const ::std::os::raw::c_char,
28904 isValid: ::std::option::Option<
28905 unsafe extern "C" fn(
28906 arg1: *mut ::std::os::raw::c_void,
28907 arg2: *mut BNBinaryView,
28908 ) -> bool,
28909 >,
28910 parseInfo: ::std::option::Option<
28911 unsafe extern "C" fn(
28912 arg1: *mut ::std::os::raw::c_void,
28913 arg2: *mut BNDebugInfo,
28914 arg3: *mut BNBinaryView,
28915 arg4: *mut BNBinaryView,
28916 arg5: BNProgressFunction,
28917 arg6: *mut ::std::os::raw::c_void,
28918 ) -> bool,
28919 >,
28920 context: *mut ::std::os::raw::c_void,
28921 ) -> *mut BNDebugInfoParser;
28922}
28923unsafe extern "C" {
28924 pub fn BNUnregisterDebugInfoParser(rawName: *const ::std::os::raw::c_char);
28925}
28926unsafe extern "C" {
28927 pub fn BNGetDebugInfoParserByName(
28928 name: *const ::std::os::raw::c_char,
28929 ) -> *mut BNDebugInfoParser;
28930}
28931unsafe extern "C" {
28932 pub fn BNGetDebugInfoParsers(count: *mut usize) -> *mut *mut BNDebugInfoParser;
28933}
28934unsafe extern "C" {
28935 pub fn BNGetDebugInfoParsersForView(
28936 view: *mut BNBinaryView,
28937 count: *mut usize,
28938 ) -> *mut *mut BNDebugInfoParser;
28939}
28940unsafe extern "C" {
28941 pub fn BNGetDebugInfoParserName(parser: *mut BNDebugInfoParser) -> *mut ::std::os::raw::c_char;
28942}
28943unsafe extern "C" {
28944 pub fn BNIsDebugInfoParserValidForView(
28945 parser: *mut BNDebugInfoParser,
28946 view: *mut BNBinaryView,
28947 ) -> bool;
28948}
28949unsafe extern "C" {
28950 pub fn BNParseDebugInfo(
28951 parser: *mut BNDebugInfoParser,
28952 view: *mut BNBinaryView,
28953 debugFile: *mut BNBinaryView,
28954 existingDebugInfo: *mut BNDebugInfo,
28955 progress: BNProgressFunction,
28956 progressCtxt: *mut ::std::os::raw::c_void,
28957 ) -> *mut BNDebugInfo;
28958}
28959unsafe extern "C" {
28960 pub fn BNNewDebugInfoParserReference(parser: *mut BNDebugInfoParser) -> *mut BNDebugInfoParser;
28961}
28962unsafe extern "C" {
28963 pub fn BNFreeDebugInfoParserReference(parser: *mut BNDebugInfoParser);
28964}
28965unsafe extern "C" {
28966 pub fn BNFreeDebugInfoParserList(parsers: *mut *mut BNDebugInfoParser, count: usize);
28967}
28968unsafe extern "C" {
28969 pub fn BNNewDebugInfoReference(debugInfo: *mut BNDebugInfo) -> *mut BNDebugInfo;
28970}
28971unsafe extern "C" {
28972 pub fn BNFreeDebugInfoReference(debugInfo: *mut BNDebugInfo);
28973}
28974unsafe extern "C" {
28975 pub fn BNGetDebugParserNames(
28976 debugInfo: *mut BNDebugInfo,
28977 count: *mut usize,
28978 ) -> *mut *mut ::std::os::raw::c_char;
28979}
28980unsafe extern "C" {
28981 pub fn BNGetDebugInfoTypeContainer(
28982 debugInfo: *mut BNDebugInfo,
28983 parserName: *const ::std::os::raw::c_char,
28984 ) -> *mut BNTypeContainer;
28985}
28986unsafe extern "C" {
28987 pub fn BNRemoveDebugParserInfo(
28988 debugInfo: *mut BNDebugInfo,
28989 parserName: *const ::std::os::raw::c_char,
28990 ) -> bool;
28991}
28992unsafe extern "C" {
28993 pub fn BNRemoveDebugParserTypes(
28994 debugInfo: *mut BNDebugInfo,
28995 parserName: *const ::std::os::raw::c_char,
28996 ) -> bool;
28997}
28998unsafe extern "C" {
28999 pub fn BNRemoveDebugParserFunctions(
29000 debugInfo: *mut BNDebugInfo,
29001 parserName: *const ::std::os::raw::c_char,
29002 ) -> bool;
29003}
29004unsafe extern "C" {
29005 pub fn BNRemoveDebugParserDataVariables(
29006 debugInfo: *mut BNDebugInfo,
29007 parserName: *const ::std::os::raw::c_char,
29008 ) -> bool;
29009}
29010unsafe extern "C" {
29011 pub fn BNAddDebugType(
29012 debugInfo: *mut BNDebugInfo,
29013 name: *const ::std::os::raw::c_char,
29014 type_: *const BNType,
29015 components: *mut *const ::std::os::raw::c_char,
29016 components_count: usize,
29017 ) -> bool;
29018}
29019unsafe extern "C" {
29020 pub fn BNGetDebugTypes(
29021 debugInfo: *mut BNDebugInfo,
29022 name: *const ::std::os::raw::c_char,
29023 count: *mut usize,
29024 ) -> *mut BNNameAndType;
29025}
29026unsafe extern "C" {
29027 pub fn BNGetDebugTypeByName(
29028 debugInfo: *mut BNDebugInfo,
29029 parserName: *const ::std::os::raw::c_char,
29030 typeName: *const ::std::os::raw::c_char,
29031 ) -> *mut BNType;
29032}
29033unsafe extern "C" {
29034 pub fn BNGetDebugTypesByName(
29035 debugInfo: *mut BNDebugInfo,
29036 typeName: *const ::std::os::raw::c_char,
29037 count: *mut usize,
29038 ) -> *mut BNNameAndType;
29039}
29040unsafe extern "C" {
29041 pub fn BNRemoveDebugTypeByName(
29042 debugInfo: *mut BNDebugInfo,
29043 parserName: *const ::std::os::raw::c_char,
29044 typeName: *const ::std::os::raw::c_char,
29045 ) -> bool;
29046}
29047unsafe extern "C" {
29048 pub fn BNFreeDebugTypes(types: *mut BNNameAndType, count: usize);
29049}
29050unsafe extern "C" {
29051 pub fn BNAddDebugFunction(debugInfo: *mut BNDebugInfo, func: *mut BNDebugFunctionInfo) -> bool;
29052}
29053unsafe extern "C" {
29054 pub fn BNGetDebugFunctions(
29055 debugInfo: *mut BNDebugInfo,
29056 name: *const ::std::os::raw::c_char,
29057 count: *mut usize,
29058 ) -> *mut BNDebugFunctionInfo;
29059}
29060unsafe extern "C" {
29061 pub fn BNRemoveDebugFunctionByIndex(
29062 debugInfo: *mut BNDebugInfo,
29063 parserName: *const ::std::os::raw::c_char,
29064 index: usize,
29065 ) -> bool;
29066}
29067unsafe extern "C" {
29068 pub fn BNFreeDebugFunctions(functions: *mut BNDebugFunctionInfo, count: usize);
29069}
29070unsafe extern "C" {
29071 pub fn BNAddDebugDataVariable(
29072 debugInfo: *mut BNDebugInfo,
29073 address: u64,
29074 type_: *const BNType,
29075 name: *const ::std::os::raw::c_char,
29076 components: *mut *const ::std::os::raw::c_char,
29077 components_count: usize,
29078 ) -> bool;
29079}
29080unsafe extern "C" {
29081 pub fn BNAddDebugDataVariableInfo(
29082 debugInfo: *mut BNDebugInfo,
29083 var: *const BNDataVariableAndName,
29084 ) -> bool;
29085}
29086unsafe extern "C" {
29087 pub fn BNGetDebugDataVariables(
29088 debugInfo: *mut BNDebugInfo,
29089 name: *const ::std::os::raw::c_char,
29090 count: *mut usize,
29091 ) -> *mut BNDataVariableAndName;
29092}
29093unsafe extern "C" {
29094 pub fn BNGetDebugDataVariableByName(
29095 debugInfo: *mut BNDebugInfo,
29096 parserName: *const ::std::os::raw::c_char,
29097 variableName: *const ::std::os::raw::c_char,
29098 var: *mut BNDataVariableAndName,
29099 ) -> bool;
29100}
29101unsafe extern "C" {
29102 pub fn BNGetDebugDataVariableByAddress(
29103 debugInfo: *mut BNDebugInfo,
29104 parserName: *const ::std::os::raw::c_char,
29105 address: u64,
29106 var: *mut BNDataVariableAndName,
29107 ) -> bool;
29108}
29109unsafe extern "C" {
29110 pub fn BNGetDebugDataVariablesByName(
29111 debugInfo: *mut BNDebugInfo,
29112 variableName: *const ::std::os::raw::c_char,
29113 count: *mut usize,
29114 ) -> *mut BNDataVariableAndName;
29115}
29116unsafe extern "C" {
29117 pub fn BNGetDebugDataVariablesByAddress(
29118 debugInfo: *mut BNDebugInfo,
29119 address: u64,
29120 count: *mut usize,
29121 ) -> *mut BNDataVariableAndNameAndDebugParser;
29122}
29123unsafe extern "C" {
29124 pub fn BNRemoveDebugDataVariableByAddress(
29125 debugInfo: *mut BNDebugInfo,
29126 parserName: *const ::std::os::raw::c_char,
29127 address: u64,
29128 ) -> bool;
29129}
29130unsafe extern "C" {
29131 #[doc = " Secrets providers"]
29132 pub fn BNRegisterSecretsProvider(
29133 name: *const ::std::os::raw::c_char,
29134 callbacks: *mut BNSecretsProviderCallbacks,
29135 ) -> *mut BNSecretsProvider;
29136}
29137unsafe extern "C" {
29138 pub fn BNGetSecretsProviderList(count: *mut usize) -> *mut *mut BNSecretsProvider;
29139}
29140unsafe extern "C" {
29141 pub fn BNFreeSecretsProviderList(providers: *mut *mut BNSecretsProvider);
29142}
29143unsafe extern "C" {
29144 pub fn BNGetSecretsProviderByName(
29145 name: *const ::std::os::raw::c_char,
29146 ) -> *mut BNSecretsProvider;
29147}
29148unsafe extern "C" {
29149 pub fn BNGetSecretsProviderName(
29150 provider: *mut BNSecretsProvider,
29151 ) -> *mut ::std::os::raw::c_char;
29152}
29153unsafe extern "C" {
29154 pub fn BNSecretsProviderHasData(
29155 provider: *mut BNSecretsProvider,
29156 key: *const ::std::os::raw::c_char,
29157 ) -> bool;
29158}
29159unsafe extern "C" {
29160 pub fn BNGetSecretsProviderData(
29161 provider: *mut BNSecretsProvider,
29162 key: *const ::std::os::raw::c_char,
29163 ) -> *mut ::std::os::raw::c_char;
29164}
29165unsafe extern "C" {
29166 pub fn BNStoreSecretsProviderData(
29167 provider: *mut BNSecretsProvider,
29168 key: *const ::std::os::raw::c_char,
29169 data: *const ::std::os::raw::c_char,
29170 ) -> bool;
29171}
29172unsafe extern "C" {
29173 pub fn BNDeleteSecretsProviderData(
29174 provider: *mut BNSecretsProvider,
29175 key: *const ::std::os::raw::c_char,
29176 ) -> bool;
29177}
29178unsafe extern "C" {
29179 pub fn BNCreateSymbolQueue() -> *mut BNSymbolQueue;
29180}
29181unsafe extern "C" {
29182 pub fn BNDestroySymbolQueue(queue: *mut BNSymbolQueue);
29183}
29184unsafe extern "C" {
29185 pub fn BNAppendSymbolQueue(
29186 queue: *mut BNSymbolQueue,
29187 resolve: ::std::option::Option<
29188 unsafe extern "C" fn(
29189 ctxt: *mut ::std::os::raw::c_void,
29190 symbol: *mut *mut BNSymbol,
29191 type_: *mut BNTypeWithConfidence,
29192 ),
29193 >,
29194 resolveContext: *mut ::std::os::raw::c_void,
29195 add: ::std::option::Option<
29196 unsafe extern "C" fn(
29197 ctxt: *mut ::std::os::raw::c_void,
29198 symbol: *mut BNSymbol,
29199 type_: *mut BNTypeWithConfidence,
29200 ),
29201 >,
29202 addContext: *mut ::std::os::raw::c_void,
29203 );
29204}
29205unsafe extern "C" {
29206 pub fn BNProcessSymbolQueue(queue: *mut BNSymbolQueue);
29207}
29208unsafe extern "C" {
29209 pub fn BNCoreEnumToString(
29210 enumName: *const ::std::os::raw::c_char,
29211 value: usize,
29212 result: *mut *mut ::std::os::raw::c_char,
29213 ) -> bool;
29214}
29215unsafe extern "C" {
29216 pub fn BNCoreEnumFromString(
29217 enumName: *const ::std::os::raw::c_char,
29218 value: *const ::std::os::raw::c_char,
29219 result: *mut usize,
29220 ) -> bool;
29221}
29222unsafe extern "C" {
29223 #[doc = " Type Archives"]
29224 pub fn BNNewTypeArchiveReference(archive: *mut BNTypeArchive) -> *mut BNTypeArchive;
29225}
29226unsafe extern "C" {
29227 pub fn BNFreeTypeArchiveReference(archive: *mut BNTypeArchive);
29228}
29229unsafe extern "C" {
29230 pub fn BNFreeTypeArchiveList(archives: *mut *mut BNTypeArchive, count: usize);
29231}
29232unsafe extern "C" {
29233 pub fn BNOpenTypeArchive(path: *const ::std::os::raw::c_char) -> *mut BNTypeArchive;
29234}
29235unsafe extern "C" {
29236 pub fn BNCreateTypeArchive(
29237 path: *const ::std::os::raw::c_char,
29238 platform: *mut BNPlatform,
29239 ) -> *mut BNTypeArchive;
29240}
29241unsafe extern "C" {
29242 pub fn BNCreateTypeArchiveWithId(
29243 path: *const ::std::os::raw::c_char,
29244 platform: *mut BNPlatform,
29245 id: *const ::std::os::raw::c_char,
29246 ) -> *mut BNTypeArchive;
29247}
29248unsafe extern "C" {
29249 pub fn BNLookupTypeArchiveById(id: *const ::std::os::raw::c_char) -> *mut BNTypeArchive;
29250}
29251unsafe extern "C" {
29252 pub fn BNCloseTypeArchive(archive: *mut BNTypeArchive);
29253}
29254unsafe extern "C" {
29255 pub fn BNIsTypeArchive(path: *const ::std::os::raw::c_char) -> bool;
29256}
29257unsafe extern "C" {
29258 pub fn BNGetTypeArchiveId(archive: *mut BNTypeArchive) -> *mut ::std::os::raw::c_char;
29259}
29260unsafe extern "C" {
29261 pub fn BNGetTypeArchivePath(archive: *mut BNTypeArchive) -> *mut ::std::os::raw::c_char;
29262}
29263unsafe extern "C" {
29264 pub fn BNGetTypeArchivePlatform(archive: *mut BNTypeArchive) -> *mut BNPlatform;
29265}
29266unsafe extern "C" {
29267 pub fn BNGetTypeArchiveCurrentSnapshotId(
29268 archive: *mut BNTypeArchive,
29269 ) -> *mut ::std::os::raw::c_char;
29270}
29271unsafe extern "C" {
29272 pub fn BNSetTypeArchiveCurrentSnapshot(
29273 archive: *mut BNTypeArchive,
29274 id: *const ::std::os::raw::c_char,
29275 );
29276}
29277unsafe extern "C" {
29278 pub fn BNGetTypeArchiveAllSnapshotIds(
29279 archive: *mut BNTypeArchive,
29280 count: *mut usize,
29281 ) -> *mut *mut ::std::os::raw::c_char;
29282}
29283unsafe extern "C" {
29284 pub fn BNGetTypeArchiveSnapshotParentIds(
29285 archive: *mut BNTypeArchive,
29286 id: *const ::std::os::raw::c_char,
29287 count: *mut usize,
29288 ) -> *mut *mut ::std::os::raw::c_char;
29289}
29290unsafe extern "C" {
29291 pub fn BNGetTypeArchiveSnapshotChildIds(
29292 archive: *mut BNTypeArchive,
29293 id: *const ::std::os::raw::c_char,
29294 count: *mut usize,
29295 ) -> *mut *mut ::std::os::raw::c_char;
29296}
29297unsafe extern "C" {
29298 pub fn BNGetTypeArchiveTypeContainer(archive: *mut BNTypeArchive) -> *mut BNTypeContainer;
29299}
29300unsafe extern "C" {
29301 pub fn BNAddTypeArchiveTypes(
29302 archive: *mut BNTypeArchive,
29303 types: *const BNQualifiedNameAndType,
29304 count: usize,
29305 ) -> bool;
29306}
29307unsafe extern "C" {
29308 pub fn BNRenameTypeArchiveType(
29309 archive: *mut BNTypeArchive,
29310 id: *const ::std::os::raw::c_char,
29311 newName: *const BNQualifiedName,
29312 ) -> bool;
29313}
29314unsafe extern "C" {
29315 pub fn BNDeleteTypeArchiveType(
29316 archive: *mut BNTypeArchive,
29317 id: *const ::std::os::raw::c_char,
29318 ) -> bool;
29319}
29320unsafe extern "C" {
29321 pub fn BNGetTypeArchiveTypeById(
29322 archive: *mut BNTypeArchive,
29323 id: *const ::std::os::raw::c_char,
29324 snapshot: *const ::std::os::raw::c_char,
29325 ) -> *mut BNType;
29326}
29327unsafe extern "C" {
29328 pub fn BNGetTypeArchiveTypeByName(
29329 archive: *mut BNTypeArchive,
29330 name: *const BNQualifiedName,
29331 snapshot: *const ::std::os::raw::c_char,
29332 ) -> *mut BNType;
29333}
29334unsafe extern "C" {
29335 pub fn BNGetTypeArchiveTypeId(
29336 archive: *mut BNTypeArchive,
29337 name: *const BNQualifiedName,
29338 snapshot: *const ::std::os::raw::c_char,
29339 ) -> *mut ::std::os::raw::c_char;
29340}
29341unsafe extern "C" {
29342 pub fn BNGetTypeArchiveTypeName(
29343 archive: *mut BNTypeArchive,
29344 id: *const ::std::os::raw::c_char,
29345 snapshot: *const ::std::os::raw::c_char,
29346 ) -> BNQualifiedName;
29347}
29348unsafe extern "C" {
29349 pub fn BNGetTypeArchiveTypes(
29350 archive: *mut BNTypeArchive,
29351 snapshot: *const ::std::os::raw::c_char,
29352 count: *mut usize,
29353 ) -> *mut BNQualifiedNameTypeAndId;
29354}
29355unsafe extern "C" {
29356 pub fn BNGetTypeArchiveTypeIds(
29357 archive: *mut BNTypeArchive,
29358 snapshot: *const ::std::os::raw::c_char,
29359 count: *mut usize,
29360 ) -> *mut *mut ::std::os::raw::c_char;
29361}
29362unsafe extern "C" {
29363 pub fn BNGetTypeArchiveTypeNames(
29364 archive: *mut BNTypeArchive,
29365 snapshot: *const ::std::os::raw::c_char,
29366 count: *mut usize,
29367 ) -> *mut BNQualifiedName;
29368}
29369unsafe extern "C" {
29370 pub fn BNGetTypeArchiveTypeNamesAndIds(
29371 archive: *mut BNTypeArchive,
29372 snapshot: *const ::std::os::raw::c_char,
29373 names: *mut *mut BNQualifiedName,
29374 ids: *mut *mut *mut ::std::os::raw::c_char,
29375 count: *mut usize,
29376 ) -> bool;
29377}
29378unsafe extern "C" {
29379 pub fn BNGetTypeArchiveOutgoingDirectTypeReferences(
29380 archive: *mut BNTypeArchive,
29381 id: *const ::std::os::raw::c_char,
29382 snapshot: *const ::std::os::raw::c_char,
29383 count: *mut usize,
29384 ) -> *mut *mut ::std::os::raw::c_char;
29385}
29386unsafe extern "C" {
29387 pub fn BNGetTypeArchiveOutgoingRecursiveTypeReferences(
29388 archive: *mut BNTypeArchive,
29389 id: *const ::std::os::raw::c_char,
29390 snapshot: *const ::std::os::raw::c_char,
29391 count: *mut usize,
29392 ) -> *mut *mut ::std::os::raw::c_char;
29393}
29394unsafe extern "C" {
29395 pub fn BNGetTypeArchiveIncomingDirectTypeReferences(
29396 archive: *mut BNTypeArchive,
29397 id: *const ::std::os::raw::c_char,
29398 snapshot: *const ::std::os::raw::c_char,
29399 count: *mut usize,
29400 ) -> *mut *mut ::std::os::raw::c_char;
29401}
29402unsafe extern "C" {
29403 pub fn BNGetTypeArchiveIncomingRecursiveTypeReferences(
29404 archive: *mut BNTypeArchive,
29405 id: *const ::std::os::raw::c_char,
29406 snapshot: *const ::std::os::raw::c_char,
29407 count: *mut usize,
29408 ) -> *mut *mut ::std::os::raw::c_char;
29409}
29410unsafe extern "C" {
29411 pub fn BNTypeArchiveNewSnapshotTransaction(
29412 archive: *mut BNTypeArchive,
29413 func: ::std::option::Option<
29414 unsafe extern "C" fn(
29415 context: *mut ::std::os::raw::c_void,
29416 id: *const ::std::os::raw::c_char,
29417 ) -> bool,
29418 >,
29419 context: *mut ::std::os::raw::c_void,
29420 parents: *const *const ::std::os::raw::c_char,
29421 parentCount: usize,
29422 ) -> *mut ::std::os::raw::c_char;
29423}
29424unsafe extern "C" {
29425 pub fn BNRegisterTypeArchiveNotification(
29426 archive: *mut BNTypeArchive,
29427 notification: *mut BNTypeArchiveNotification,
29428 );
29429}
29430unsafe extern "C" {
29431 pub fn BNUnregisterTypeArchiveNotification(
29432 archive: *mut BNTypeArchive,
29433 notification: *mut BNTypeArchiveNotification,
29434 );
29435}
29436unsafe extern "C" {
29437 pub fn BNTypeArchiveStoreMetadata(
29438 archive: *mut BNTypeArchive,
29439 key: *const ::std::os::raw::c_char,
29440 value: *mut BNMetadata,
29441 ) -> bool;
29442}
29443unsafe extern "C" {
29444 pub fn BNTypeArchiveQueryMetadata(
29445 archive: *mut BNTypeArchive,
29446 key: *const ::std::os::raw::c_char,
29447 ) -> *mut BNMetadata;
29448}
29449unsafe extern "C" {
29450 pub fn BNTypeArchiveRemoveMetadata(
29451 archive: *mut BNTypeArchive,
29452 key: *const ::std::os::raw::c_char,
29453 ) -> bool;
29454}
29455unsafe extern "C" {
29456 pub fn BNTypeArchiveSerializeSnapshot(
29457 archive: *mut BNTypeArchive,
29458 snapshot: *const ::std::os::raw::c_char,
29459 ) -> *mut BNDataBuffer;
29460}
29461unsafe extern "C" {
29462 pub fn BNTypeArchiveDeserializeSnapshot(
29463 archive: *mut BNTypeArchive,
29464 buffer: *mut BNDataBuffer,
29465 ) -> *mut ::std::os::raw::c_char;
29466}
29467unsafe extern "C" {
29468 pub fn BNTypeArchiveMergeSnapshots(
29469 archive: *mut BNTypeArchive,
29470 baseSnapshot: *const ::std::os::raw::c_char,
29471 firstSnapshot: *const ::std::os::raw::c_char,
29472 secondSnapshot: *const ::std::os::raw::c_char,
29473 mergeConflictKeysIn: *const *const ::std::os::raw::c_char,
29474 mergeConflictValuesIn: *const *const ::std::os::raw::c_char,
29475 mergeConflictCountIn: usize,
29476 mergeConflictsOut: *mut *mut *mut ::std::os::raw::c_char,
29477 mergeConflictCountOut: *mut usize,
29478 result: *mut *mut ::std::os::raw::c_char,
29479 progress: BNProgressFunction,
29480 context: *mut ::std::os::raw::c_void,
29481 ) -> bool;
29482}
29483unsafe extern "C" {
29484 pub fn BNBinaryViewAttachTypeArchive(
29485 view: *mut BNBinaryView,
29486 id: *const ::std::os::raw::c_char,
29487 path: *const ::std::os::raw::c_char,
29488 ) -> *mut BNTypeArchive;
29489}
29490unsafe extern "C" {
29491 pub fn BNBinaryViewDetachTypeArchive(
29492 view: *mut BNBinaryView,
29493 id: *const ::std::os::raw::c_char,
29494 ) -> bool;
29495}
29496unsafe extern "C" {
29497 pub fn BNBinaryViewGetTypeArchive(
29498 view: *mut BNBinaryView,
29499 id: *const ::std::os::raw::c_char,
29500 ) -> *mut BNTypeArchive;
29501}
29502unsafe extern "C" {
29503 pub fn BNBinaryViewGetTypeArchives(
29504 view: *mut BNBinaryView,
29505 ids: *mut *mut *mut ::std::os::raw::c_char,
29506 paths: *mut *mut *mut ::std::os::raw::c_char,
29507 ) -> usize;
29508}
29509unsafe extern "C" {
29510 pub fn BNBinaryViewGetTypeArchivePath(
29511 view: *mut BNBinaryView,
29512 id: *const ::std::os::raw::c_char,
29513 ) -> *mut ::std::os::raw::c_char;
29514}
29515unsafe extern "C" {
29516 pub fn BNBinaryViewGetTypeArchiveTypeNameList(
29517 view: *mut BNBinaryView,
29518 names: *mut *mut BNQualifiedName,
29519 ) -> usize;
29520}
29521unsafe extern "C" {
29522 pub fn BNBinaryViewGetTypeArchiveTypeNames(
29523 view: *mut BNBinaryView,
29524 name: *mut BNQualifiedName,
29525 archiveIds: *mut *mut *mut ::std::os::raw::c_char,
29526 archiveTypeIds: *mut *mut *mut ::std::os::raw::c_char,
29527 ) -> usize;
29528}
29529unsafe extern "C" {
29530 pub fn BNBinaryViewGetAssociatedTypeArchiveTypes(
29531 view: *mut BNBinaryView,
29532 typeIds: *mut *mut *mut ::std::os::raw::c_char,
29533 archiveIds: *mut *mut *mut ::std::os::raw::c_char,
29534 archiveTypeIds: *mut *mut *mut ::std::os::raw::c_char,
29535 ) -> usize;
29536}
29537unsafe extern "C" {
29538 pub fn BNBinaryViewGetAssociatedTypesFromArchive(
29539 view: *mut BNBinaryView,
29540 archiveId: *const ::std::os::raw::c_char,
29541 typeIds: *mut *mut *mut ::std::os::raw::c_char,
29542 archiveTypeIds: *mut *mut *mut ::std::os::raw::c_char,
29543 ) -> usize;
29544}
29545unsafe extern "C" {
29546 pub fn BNBinaryViewGetAssociatedTypeArchiveTypeTarget(
29547 view: *mut BNBinaryView,
29548 typeId: *const ::std::os::raw::c_char,
29549 archiveId: *mut *mut ::std::os::raw::c_char,
29550 archiveTypeId: *mut *mut ::std::os::raw::c_char,
29551 ) -> bool;
29552}
29553unsafe extern "C" {
29554 pub fn BNBinaryViewGetAssociatedTypeArchiveTypeSource(
29555 view: *mut BNBinaryView,
29556 archiveId: *const ::std::os::raw::c_char,
29557 archiveTypeId: *const ::std::os::raw::c_char,
29558 typeId: *mut *mut ::std::os::raw::c_char,
29559 ) -> bool;
29560}
29561unsafe extern "C" {
29562 pub fn BNBinaryViewGetTypeArchiveSyncStatus(
29563 view: *mut BNBinaryView,
29564 typeId: *const ::std::os::raw::c_char,
29565 ) -> BNSyncStatus;
29566}
29567unsafe extern "C" {
29568 pub fn BNBinaryViewDisassociateTypeArchiveType(
29569 view: *mut BNBinaryView,
29570 typeId: *const ::std::os::raw::c_char,
29571 ) -> bool;
29572}
29573unsafe extern "C" {
29574 pub fn BNBinaryViewPullTypeArchiveTypes(
29575 view: *mut BNBinaryView,
29576 archiveId: *const ::std::os::raw::c_char,
29577 archiveTypeIds: *const *const ::std::os::raw::c_char,
29578 archiveTypeIdCount: usize,
29579 updatedArchiveTypeIds: *mut *mut *mut ::std::os::raw::c_char,
29580 updatedAnalysisTypeIds: *mut *mut *mut ::std::os::raw::c_char,
29581 updatedTypeCount: *mut usize,
29582 ) -> bool;
29583}
29584unsafe extern "C" {
29585 pub fn BNBinaryViewPushTypeArchiveTypes(
29586 view: *mut BNBinaryView,
29587 archiveId: *const ::std::os::raw::c_char,
29588 typeIds: *const *const ::std::os::raw::c_char,
29589 typeIdCount: usize,
29590 updatedAnalysisTypeIds: *mut *mut *mut ::std::os::raw::c_char,
29591 updatedArchiveTypeIds: *mut *mut *mut ::std::os::raw::c_char,
29592 updatedTypeCount: *mut usize,
29593 ) -> bool;
29594}
29595unsafe extern "C" {
29596 #[doc = " Base Address Detection"]
29597 pub fn BNCreateBaseAddressDetection(view: *mut BNBinaryView) -> *mut BNBaseAddressDetection;
29598}
29599unsafe extern "C" {
29600 pub fn BNDetectBaseAddress(
29601 bad: *mut BNBaseAddressDetection,
29602 settings: *mut BNBaseAddressDetectionSettings,
29603 ) -> bool;
29604}
29605unsafe extern "C" {
29606 pub fn BNDetectBaseAddressWithInstructionAnalysis(
29607 bad: *mut BNBaseAddressDetection,
29608 settings: *mut BNBaseAddressDetectionInstructionAnalysisSettings,
29609 ) -> bool;
29610}
29611unsafe extern "C" {
29612 pub fn BNDetectBaseAddressWithSampling(
29613 bad: *mut BNBaseAddressDetection,
29614 settings: *mut BNBaseAddressDetectionSamplingSettings,
29615 ) -> bool;
29616}
29617unsafe extern "C" {
29618 pub fn BNGetBaseAddressDetectionScores(
29619 bad: *mut BNBaseAddressDetection,
29620 scores: *mut BNBaseAddressDetectionScore,
29621 count: usize,
29622 confidence: *mut BNBaseAddressDetectionConfidence,
29623 lastTestedBaseAddress: *mut u64,
29624 ) -> usize;
29625}
29626unsafe extern "C" {
29627 pub fn BNGetBaseAddressDetectionReasons(
29628 bad: *mut BNBaseAddressDetection,
29629 baseAddress: u64,
29630 count: *mut usize,
29631 ) -> *mut BNBaseAddressDetectionReason;
29632}
29633unsafe extern "C" {
29634 pub fn BNFreeBaseAddressDetectionReasons(reasons: *mut BNBaseAddressDetectionReason);
29635}
29636unsafe extern "C" {
29637 pub fn BNAbortBaseAddressDetection(bad: *mut BNBaseAddressDetection);
29638}
29639unsafe extern "C" {
29640 pub fn BNIsBaseAddressDetectionAborted(bad: *mut BNBaseAddressDetection) -> bool;
29641}
29642unsafe extern "C" {
29643 pub fn BNFreeBaseAddressDetection(bad: *mut BNBaseAddressDetection);
29644}
29645unsafe extern "C" {
29646 #[doc = " Unicode"]
29647 pub fn BNUnicodeGetBlockRange(
29648 name: *const ::std::os::raw::c_char,
29649 rangeStart: *mut u32,
29650 rangeEnd: *mut u32,
29651 ) -> bool;
29652}
29653unsafe extern "C" {
29654 pub fn BNUnicodeGetBlocksForNames(
29655 names: *const *const ::std::os::raw::c_char,
29656 nameCount: usize,
29657 starts: *mut *mut *mut u32,
29658 ends: *mut *mut *mut u32,
29659 blockListCounts: *mut *mut usize,
29660 blockCount: *mut usize,
29661 );
29662}
29663unsafe extern "C" {
29664 pub fn BNFreeUnicodeBlockList(
29665 starts: *mut *mut u32,
29666 ends: *mut *mut u32,
29667 blockCounts: *mut usize,
29668 blockListCounts: usize,
29669 );
29670}
29671unsafe extern "C" {
29672 pub fn BNUnicodeGetBlockNames(names: *mut *mut *mut ::std::os::raw::c_char, count: *mut usize);
29673}
29674unsafe extern "C" {
29675 pub fn BNUnicodeGetBlockRanges(
29676 names: *mut *mut *mut ::std::os::raw::c_char,
29677 rangeStarts: *mut *mut u32,
29678 rangeEnds: *mut *mut u32,
29679 count: *mut usize,
29680 );
29681}
29682unsafe extern "C" {
29683 pub fn BNFreeUnicodeRangeList(starts: *mut u32, ends: *mut u32);
29684}
29685unsafe extern "C" {
29686 pub fn BNUnicodeGetUTF8String(
29687 starts: *mut *mut u32,
29688 ends: *mut *mut u32,
29689 blockListCounts: *mut usize,
29690 blockCount: usize,
29691 data: *const u8,
29692 offset: usize,
29693 dataLen: usize,
29694 ) -> *mut ::std::os::raw::c_char;
29695}
29696unsafe extern "C" {
29697 pub fn BNUnicodeToEscapedString(
29698 starts: *mut *mut u32,
29699 ends: *mut *mut u32,
29700 blockListCounts: *mut usize,
29701 blockCount: usize,
29702 utf8Enabled: bool,
29703 data: *const ::std::os::raw::c_void,
29704 dataLen: usize,
29705 ) -> *mut ::std::os::raw::c_char;
29706}
29707unsafe extern "C" {
29708 pub fn BNUnicodeToEscapedStringForView(
29709 view: *mut BNBinaryView,
29710 data: *const ::std::os::raw::c_void,
29711 dataLen: usize,
29712 ) -> *mut ::std::os::raw::c_char;
29713}
29714unsafe extern "C" {
29715 pub fn BNUnicodeGetDisplayWidth(str_: *const ::std::os::raw::c_char) -> usize;
29716}
29717unsafe extern "C" {
29718 pub fn BNUnicodeGetNextGraphemeClusterBoundary(
29719 str_: *const ::std::os::raw::c_char,
29720 len: usize,
29721 offset: usize,
29722 ) -> usize;
29723}
29724unsafe extern "C" {
29725 #[doc = " Collaboration"]
29726 pub fn BNCollaborationGetActiveRemote() -> *mut BNRemote;
29727}
29728unsafe extern "C" {
29729 pub fn BNCollaborationSetActiveRemote(remote: *mut BNRemote);
29730}
29731unsafe extern "C" {
29732 pub fn BNCollaborationStoreDataInKeychain(
29733 key: *const ::std::os::raw::c_char,
29734 dataKeys: *mut *const ::std::os::raw::c_char,
29735 dataValues: *mut *const ::std::os::raw::c_char,
29736 dataCount: usize,
29737 ) -> bool;
29738}
29739unsafe extern "C" {
29740 pub fn BNCollaborationHasDataInKeychain(key: *const ::std::os::raw::c_char) -> bool;
29741}
29742unsafe extern "C" {
29743 pub fn BNCollaborationGetDataFromKeychain(
29744 key: *const ::std::os::raw::c_char,
29745 foundKeys: *mut *mut *mut ::std::os::raw::c_char,
29746 foundValues: *mut *mut *mut ::std::os::raw::c_char,
29747 ) -> usize;
29748}
29749unsafe extern "C" {
29750 pub fn BNCollaborationDeleteDataFromKeychain(key: *const ::std::os::raw::c_char) -> bool;
29751}
29752unsafe extern "C" {
29753 pub fn BNCollaborationLoadRemotes() -> bool;
29754}
29755unsafe extern "C" {
29756 pub fn BNCollaborationGetRemotes(count: *mut usize) -> *mut *mut BNRemote;
29757}
29758unsafe extern "C" {
29759 pub fn BNCollaborationGetRemoteById(remoteId: *const ::std::os::raw::c_char) -> *mut BNRemote;
29760}
29761unsafe extern "C" {
29762 pub fn BNCollaborationGetRemoteByAddress(
29763 remoteAddress: *const ::std::os::raw::c_char,
29764 ) -> *mut BNRemote;
29765}
29766unsafe extern "C" {
29767 pub fn BNCollaborationGetRemoteByName(name: *const ::std::os::raw::c_char) -> *mut BNRemote;
29768}
29769unsafe extern "C" {
29770 pub fn BNCollaborationCreateRemote(
29771 name: *const ::std::os::raw::c_char,
29772 address: *const ::std::os::raw::c_char,
29773 ) -> *mut BNRemote;
29774}
29775unsafe extern "C" {
29776 pub fn BNCollaborationRemoveRemote(remote: *mut BNRemote);
29777}
29778unsafe extern "C" {
29779 pub fn BNCollaborationSaveRemotes();
29780}
29781unsafe extern "C" {
29782 pub fn BNCollaborationSyncDatabase(
29783 metadata: *mut BNFileMetadata,
29784 file: *mut BNRemoteFile,
29785 conflictHandler: BNCollaborationAnalysisConflictHandler,
29786 conflictHandlerCtxt: *mut ::std::os::raw::c_void,
29787 progress: BNProgressFunction,
29788 progressCtxt: *mut ::std::os::raw::c_void,
29789 nameChangeset: BNCollaborationNameChangesetFunction,
29790 nameChangesetCtxt: *mut ::std::os::raw::c_void,
29791 ) -> bool;
29792}
29793unsafe extern "C" {
29794 pub fn BNCollaborationSyncTypeArchive(
29795 archive: *mut BNTypeArchive,
29796 file: *mut BNRemoteFile,
29797 conflictHandler: ::std::option::Option<
29798 unsafe extern "C" fn(
29799 arg1: *mut ::std::os::raw::c_void,
29800 conflicts: *mut *mut BNTypeArchiveMergeConflict,
29801 conflictCount: usize,
29802 ) -> bool,
29803 >,
29804 conflictHandlerCtxt: *mut ::std::os::raw::c_void,
29805 progress: BNProgressFunction,
29806 progressCtxt: *mut ::std::os::raw::c_void,
29807 ) -> bool;
29808}
29809unsafe extern "C" {
29810 pub fn BNCollaborationPushTypeArchive(
29811 archive: *mut BNTypeArchive,
29812 file: *mut BNRemoteFile,
29813 count: *mut usize,
29814 progress: BNProgressFunction,
29815 progressCtxt: *mut ::std::os::raw::c_void,
29816 ) -> bool;
29817}
29818unsafe extern "C" {
29819 pub fn BNCollaborationPullTypeArchive(
29820 archive: *mut BNTypeArchive,
29821 file: *mut BNRemoteFile,
29822 count: *mut usize,
29823 conflictHandler: ::std::option::Option<
29824 unsafe extern "C" fn(
29825 arg1: *mut ::std::os::raw::c_void,
29826 conflicts: *mut *mut BNTypeArchiveMergeConflict,
29827 conflictCount: usize,
29828 ) -> bool,
29829 >,
29830 conflictHandlerCtxt: *mut ::std::os::raw::c_void,
29831 progress: BNProgressFunction,
29832 progressCtxt: *mut ::std::os::raw::c_void,
29833 ) -> bool;
29834}
29835unsafe extern "C" {
29836 pub fn BNCollaborationIsCollaborationTypeArchive(archive: *mut BNTypeArchive) -> bool;
29837}
29838unsafe extern "C" {
29839 pub fn BNCollaborationGetRemoteForLocalTypeArchive(
29840 archive: *mut BNTypeArchive,
29841 ) -> *mut BNRemote;
29842}
29843unsafe extern "C" {
29844 pub fn BNCollaborationGetRemoteProjectForLocalTypeArchive(
29845 archive: *mut BNTypeArchive,
29846 ) -> *mut BNRemoteProject;
29847}
29848unsafe extern "C" {
29849 pub fn BNCollaborationGetRemoteFileForLocalTypeArchive(
29850 archive: *mut BNTypeArchive,
29851 ) -> *mut BNRemoteFile;
29852}
29853unsafe extern "C" {
29854 pub fn BNCollaborationGetRemoteSnapshotFromLocalTypeArchive(
29855 archive: *mut BNTypeArchive,
29856 snapshotId: *const ::std::os::raw::c_char,
29857 ) -> *mut BNCollaborationSnapshot;
29858}
29859unsafe extern "C" {
29860 pub fn BNCollaborationGetLocalSnapshotFromRemoteTypeArchive(
29861 snapshot: *mut BNCollaborationSnapshot,
29862 archive: *mut BNTypeArchive,
29863 ) -> *mut ::std::os::raw::c_char;
29864}
29865unsafe extern "C" {
29866 pub fn BNCollaborationIsTypeArchiveSnapshotIgnored(
29867 archive: *mut BNTypeArchive,
29868 snapshot: *const ::std::os::raw::c_char,
29869 ) -> bool;
29870}
29871unsafe extern "C" {
29872 pub fn BNCollaborationSetSnapshotAuthor(
29873 database: *mut BNDatabase,
29874 snapshot: *mut BNSnapshot,
29875 author: *const ::std::os::raw::c_char,
29876 ) -> bool;
29877}
29878unsafe extern "C" {
29879 pub fn BNCollaborationDefaultProjectPath(
29880 project: *mut BNRemoteProject,
29881 ) -> *mut ::std::os::raw::c_char;
29882}
29883unsafe extern "C" {
29884 pub fn BNCollaborationDefaultFilePath(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
29885}
29886unsafe extern "C" {
29887 pub fn BNCollaborationDownloadFile(
29888 file: *mut BNRemoteFile,
29889 dbPath: *const ::std::os::raw::c_char,
29890 progress: BNProgressFunction,
29891 progressContext: *mut ::std::os::raw::c_void,
29892 ) -> *mut BNFileMetadata;
29893}
29894unsafe extern "C" {
29895 pub fn BNCollaborationUploadDatabase(
29896 metadata: *mut BNFileMetadata,
29897 project: *mut BNRemoteProject,
29898 folder: *mut BNRemoteFolder,
29899 progress: BNProgressFunction,
29900 progressContext: *mut ::std::os::raw::c_void,
29901 nameChangeset: BNCollaborationNameChangesetFunction,
29902 nameChangesetContext: *mut ::std::os::raw::c_void,
29903 ) -> *mut BNRemoteFile;
29904}
29905unsafe extern "C" {
29906 pub fn BNCollaborationIsCollaborationDatabase(database: *mut BNDatabase) -> bool;
29907}
29908unsafe extern "C" {
29909 pub fn BNCollaborationGetRemoteForLocalDatabase(
29910 database: *mut BNDatabase,
29911 result: *mut *mut BNRemote,
29912 ) -> bool;
29913}
29914unsafe extern "C" {
29915 pub fn BNCollaborationGetRemoteProjectForLocalDatabase(
29916 database: *mut BNDatabase,
29917 result: *mut *mut BNRemoteProject,
29918 ) -> bool;
29919}
29920unsafe extern "C" {
29921 pub fn BNCollaborationGetRemoteFileForLocalDatabase(
29922 database: *mut BNDatabase,
29923 result: *mut *mut BNRemoteFile,
29924 ) -> bool;
29925}
29926unsafe extern "C" {
29927 pub fn BNCollaborationAssignSnapshotMap(
29928 localSnapshot: *mut BNSnapshot,
29929 remoteSnapshot: *mut BNCollaborationSnapshot,
29930 ) -> bool;
29931}
29932unsafe extern "C" {
29933 pub fn BNCollaborationGetRemoteSnapshotFromLocal(
29934 snapshot: *mut BNSnapshot,
29935 result: *mut *mut BNCollaborationSnapshot,
29936 ) -> bool;
29937}
29938unsafe extern "C" {
29939 pub fn BNCollaborationGetLocalSnapshotFromRemote(
29940 snapshot: *mut BNCollaborationSnapshot,
29941 database: *mut BNDatabase,
29942 result: *mut *mut BNSnapshot,
29943 ) -> bool;
29944}
29945unsafe extern "C" {
29946 pub fn BNCollaborationDownloadTypeArchive(
29947 file: *mut BNRemoteFile,
29948 dbPath: *const ::std::os::raw::c_char,
29949 progress: BNProgressFunction,
29950 progressContext: *mut ::std::os::raw::c_void,
29951 result: *mut *mut BNTypeArchive,
29952 ) -> bool;
29953}
29954unsafe extern "C" {
29955 pub fn BNCollaborationUploadTypeArchive(
29956 archive: *mut BNTypeArchive,
29957 project: *mut BNRemoteProject,
29958 folder: *mut BNRemoteFolder,
29959 progress: BNProgressFunction,
29960 progressContext: *mut ::std::os::raw::c_void,
29961 coreFile: *mut BNProjectFile,
29962 result: *mut *mut BNRemoteFile,
29963 ) -> bool;
29964}
29965unsafe extern "C" {
29966 pub fn BNCollaborationDownloadDatabaseForFile(
29967 file: *mut BNRemoteFile,
29968 dbPath: *const ::std::os::raw::c_char,
29969 force: bool,
29970 progress: BNProgressFunction,
29971 progressContext: *mut ::std::os::raw::c_void,
29972 ) -> bool;
29973}
29974unsafe extern "C" {
29975 pub fn BNCollaborationMergeSnapshots(
29976 first: *mut BNSnapshot,
29977 second: *mut BNSnapshot,
29978 conflictHandler: BNCollaborationAnalysisConflictHandler,
29979 conflictHandlerCtxt: *mut ::std::os::raw::c_void,
29980 progress: BNProgressFunction,
29981 progressContext: *mut ::std::os::raw::c_void,
29982 ) -> *mut BNSnapshot;
29983}
29984unsafe extern "C" {
29985 pub fn BNCollaborationPullDatabase(
29986 database: *mut BNDatabase,
29987 file: *mut BNRemoteFile,
29988 count: *mut usize,
29989 conflictHandler: BNCollaborationAnalysisConflictHandler,
29990 conflictHandlerCtxt: *mut ::std::os::raw::c_void,
29991 progress: BNProgressFunction,
29992 progressContext: *mut ::std::os::raw::c_void,
29993 nameChangeset: BNCollaborationNameChangesetFunction,
29994 nameChangesetContext: *mut ::std::os::raw::c_void,
29995 ) -> bool;
29996}
29997unsafe extern "C" {
29998 pub fn BNCollaborationMergeDatabase(
29999 database: *mut BNDatabase,
30000 conflictHandler: BNCollaborationAnalysisConflictHandler,
30001 conflictHandlerCtxt: *mut ::std::os::raw::c_void,
30002 progress: BNProgressFunction,
30003 progressContext: *mut ::std::os::raw::c_void,
30004 ) -> bool;
30005}
30006unsafe extern "C" {
30007 pub fn BNCollaborationPushDatabase(
30008 database: *mut BNDatabase,
30009 file: *mut BNRemoteFile,
30010 count: *mut usize,
30011 progress: BNProgressFunction,
30012 progressContext: *mut ::std::os::raw::c_void,
30013 ) -> bool;
30014}
30015unsafe extern "C" {
30016 pub fn BNCollaborationDumpDatabase(database: *mut BNDatabase) -> bool;
30017}
30018unsafe extern "C" {
30019 pub fn BNCollaborationIgnoreSnapshot(
30020 database: *mut BNDatabase,
30021 snapshot: *mut BNSnapshot,
30022 ) -> bool;
30023}
30024unsafe extern "C" {
30025 pub fn BNCollaborationIsSnapshotIgnored(
30026 database: *mut BNDatabase,
30027 snapshot: *mut BNSnapshot,
30028 ) -> bool;
30029}
30030unsafe extern "C" {
30031 pub fn BNCollaborationGetSnapshotAuthor(
30032 database: *mut BNDatabase,
30033 snapshot: *mut BNSnapshot,
30034 result: *mut *mut ::std::os::raw::c_char,
30035 ) -> bool;
30036}
30037unsafe extern "C" {
30038 pub fn BNCollaborationFreeIdList(ids: *mut u64, size: usize);
30039}
30040unsafe extern "C" {
30041 pub fn BNCollaborationFreeSnapshotIdList(ids: *mut i64, size: usize);
30042}
30043unsafe extern "C" {
30044 #[doc = " LazyT"]
30045 pub fn BNCollaborationLazyTCreate(
30046 ctor: ::std::option::Option<
30047 unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void,
30048 >,
30049 context: *mut ::std::os::raw::c_void,
30050 ) -> *mut BNCollaborationLazyT;
30051}
30052unsafe extern "C" {
30053 pub fn BNCollaborationLazyTDereference(
30054 lazyT: *mut BNCollaborationLazyT,
30055 ) -> *mut ::std::os::raw::c_void;
30056}
30057unsafe extern "C" {
30058 pub fn BNCollaborationFreeLazyT(lazyT: *mut BNCollaborationLazyT);
30059}
30060unsafe extern "C" {
30061 #[doc = " Remote"]
30062 pub fn BNNewRemoteReference(remote: *mut BNRemote) -> *mut BNRemote;
30063}
30064unsafe extern "C" {
30065 pub fn BNFreeRemote(remote: *mut BNRemote);
30066}
30067unsafe extern "C" {
30068 pub fn BNFreeRemoteList(remotes: *mut *mut BNRemote, count: usize);
30069}
30070unsafe extern "C" {
30071 pub fn BNRemoteGetUniqueId(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
30072}
30073unsafe extern "C" {
30074 pub fn BNRemoteGetName(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
30075}
30076unsafe extern "C" {
30077 pub fn BNRemoteGetAddress(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
30078}
30079unsafe extern "C" {
30080 pub fn BNRemoteHasLoadedMetadata(remote: *mut BNRemote) -> bool;
30081}
30082unsafe extern "C" {
30083 pub fn BNRemoteIsConnected(remote: *mut BNRemote) -> bool;
30084}
30085unsafe extern "C" {
30086 pub fn BNRemoteGetUsername(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
30087}
30088unsafe extern "C" {
30089 pub fn BNRemoteGetToken(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
30090}
30091unsafe extern "C" {
30092 pub fn BNRemoteGetServerVersion(remote: *mut BNRemote) -> ::std::os::raw::c_int;
30093}
30094unsafe extern "C" {
30095 pub fn BNRemoteGetServerBuildVersion(remote: *mut BNRemote) -> BNVersionInfo;
30096}
30097unsafe extern "C" {
30098 pub fn BNRemoteGetServerBuildId(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
30099}
30100unsafe extern "C" {
30101 pub fn BNRemoteGetAuthBackends(
30102 remote: *mut BNRemote,
30103 backendIds: *mut *mut *mut ::std::os::raw::c_char,
30104 backendNames: *mut *mut *mut ::std::os::raw::c_char,
30105 count: *mut usize,
30106 ) -> bool;
30107}
30108unsafe extern "C" {
30109 pub fn BNRemoteHasPulledProjects(remote: *mut BNRemote) -> bool;
30110}
30111unsafe extern "C" {
30112 pub fn BNRemoteHasPulledUsers(remote: *mut BNRemote) -> bool;
30113}
30114unsafe extern "C" {
30115 pub fn BNRemoteHasPulledGroups(remote: *mut BNRemote) -> bool;
30116}
30117unsafe extern "C" {
30118 pub fn BNRemoteIsAdmin(remote: *mut BNRemote) -> bool;
30119}
30120unsafe extern "C" {
30121 pub fn BNRemoteIsEnterprise(remote: *mut BNRemote) -> bool;
30122}
30123unsafe extern "C" {
30124 pub fn BNRemoteLoadMetadata(remote: *mut BNRemote) -> bool;
30125}
30126unsafe extern "C" {
30127 pub fn BNRemoteRequestAuthenticationToken(
30128 remote: *mut BNRemote,
30129 username: *const ::std::os::raw::c_char,
30130 password: *const ::std::os::raw::c_char,
30131 ) -> *mut ::std::os::raw::c_char;
30132}
30133unsafe extern "C" {
30134 pub fn BNRemoteConnect(
30135 remote: *mut BNRemote,
30136 username: *const ::std::os::raw::c_char,
30137 token: *const ::std::os::raw::c_char,
30138 ) -> bool;
30139}
30140unsafe extern "C" {
30141 pub fn BNRemoteDisconnect(remote: *mut BNRemote) -> bool;
30142}
30143unsafe extern "C" {
30144 pub fn BNRemoteGetProjects(
30145 remote: *mut BNRemote,
30146 count: *mut usize,
30147 ) -> *mut *mut BNRemoteProject;
30148}
30149unsafe extern "C" {
30150 pub fn BNRemoteGetProjectById(
30151 remote: *mut BNRemote,
30152 id: *const ::std::os::raw::c_char,
30153 ) -> *mut BNRemoteProject;
30154}
30155unsafe extern "C" {
30156 pub fn BNRemoteGetProjectByName(
30157 remote: *mut BNRemote,
30158 name: *const ::std::os::raw::c_char,
30159 ) -> *mut BNRemoteProject;
30160}
30161unsafe extern "C" {
30162 pub fn BNRemotePullProjects(
30163 remote: *mut BNRemote,
30164 progress: BNProgressFunction,
30165 progressContext: *mut ::std::os::raw::c_void,
30166 ) -> bool;
30167}
30168unsafe extern "C" {
30169 pub fn BNRemoteCreateProject(
30170 remote: *mut BNRemote,
30171 name: *const ::std::os::raw::c_char,
30172 description: *const ::std::os::raw::c_char,
30173 ) -> *mut BNRemoteProject;
30174}
30175unsafe extern "C" {
30176 pub fn BNRemoteImportLocalProject(
30177 remote: *mut BNRemote,
30178 localProject: *mut BNProject,
30179 progress: BNProgressFunction,
30180 progressCtxt: *mut ::std::os::raw::c_void,
30181 ) -> *mut BNRemoteProject;
30182}
30183unsafe extern "C" {
30184 pub fn BNRemotePushProject(
30185 remote: *mut BNRemote,
30186 project: *mut BNRemoteProject,
30187 extraFieldKeys: *mut *const ::std::os::raw::c_char,
30188 extraFieldValues: *mut *const ::std::os::raw::c_char,
30189 extraFieldCount: usize,
30190 ) -> bool;
30191}
30192unsafe extern "C" {
30193 pub fn BNRemoteDeleteProject(remote: *mut BNRemote, project: *mut BNRemoteProject) -> bool;
30194}
30195unsafe extern "C" {
30196 pub fn BNRemoteGetGroups(
30197 remote: *mut BNRemote,
30198 count: *mut usize,
30199 ) -> *mut *mut BNCollaborationGroup;
30200}
30201unsafe extern "C" {
30202 pub fn BNRemoteGetGroupById(remote: *mut BNRemote, id: u64) -> *mut BNCollaborationGroup;
30203}
30204unsafe extern "C" {
30205 pub fn BNRemoteGetGroupByName(
30206 remote: *mut BNRemote,
30207 name: *const ::std::os::raw::c_char,
30208 ) -> *mut BNCollaborationGroup;
30209}
30210unsafe extern "C" {
30211 pub fn BNRemoteSearchGroups(
30212 remote: *mut BNRemote,
30213 prefix: *const ::std::os::raw::c_char,
30214 groupIds: *mut *mut u64,
30215 groupNames: *mut *mut *mut ::std::os::raw::c_char,
30216 count: *mut usize,
30217 ) -> bool;
30218}
30219unsafe extern "C" {
30220 pub fn BNRemotePullGroups(
30221 remote: *mut BNRemote,
30222 progress: BNProgressFunction,
30223 progressContext: *mut ::std::os::raw::c_void,
30224 ) -> bool;
30225}
30226unsafe extern "C" {
30227 pub fn BNRemoteCreateGroup(
30228 remote: *mut BNRemote,
30229 name: *const ::std::os::raw::c_char,
30230 users: *mut *mut BNCollaborationUser,
30231 userCount: usize,
30232 ) -> *mut BNCollaborationGroup;
30233}
30234unsafe extern "C" {
30235 pub fn BNRemotePushGroup(
30236 remote: *mut BNRemote,
30237 group: *mut BNCollaborationGroup,
30238 extraFieldKeys: *mut *const ::std::os::raw::c_char,
30239 extraFieldValues: *mut *const ::std::os::raw::c_char,
30240 extraFieldCount: usize,
30241 ) -> bool;
30242}
30243unsafe extern "C" {
30244 pub fn BNRemoteDeleteGroup(remote: *mut BNRemote, group: *mut BNCollaborationGroup) -> bool;
30245}
30246unsafe extern "C" {
30247 pub fn BNRemoteGetUsers(
30248 remote: *mut BNRemote,
30249 count: *mut usize,
30250 ) -> *mut *mut BNCollaborationUser;
30251}
30252unsafe extern "C" {
30253 pub fn BNRemoteGetUserById(
30254 remote: *mut BNRemote,
30255 id: *const ::std::os::raw::c_char,
30256 ) -> *mut BNCollaborationUser;
30257}
30258unsafe extern "C" {
30259 pub fn BNRemoteGetUserByUsername(
30260 remote: *mut BNRemote,
30261 username: *const ::std::os::raw::c_char,
30262 ) -> *mut BNCollaborationUser;
30263}
30264unsafe extern "C" {
30265 pub fn BNRemoteGetCurrentUser(remote: *mut BNRemote) -> *mut BNCollaborationUser;
30266}
30267unsafe extern "C" {
30268 pub fn BNRemoteSearchUsers(
30269 remote: *mut BNRemote,
30270 prefix: *const ::std::os::raw::c_char,
30271 userIds: *mut *mut *mut ::std::os::raw::c_char,
30272 usernames: *mut *mut *mut ::std::os::raw::c_char,
30273 count: *mut usize,
30274 ) -> bool;
30275}
30276unsafe extern "C" {
30277 pub fn BNRemoteFindFiles(
30278 remote: *mut BNRemote,
30279 name: *const ::std::os::raw::c_char,
30280 count: *mut usize,
30281 ) -> *mut BNRemoteFileSearchMatch;
30282}
30283unsafe extern "C" {
30284 pub fn BNFreeRemoteFileSearchMatchList(matches: *mut BNRemoteFileSearchMatch, count: usize);
30285}
30286unsafe extern "C" {
30287 pub fn BNRemotePullUsers(
30288 remote: *mut BNRemote,
30289 progress: BNProgressFunction,
30290 progressContext: *mut ::std::os::raw::c_void,
30291 ) -> bool;
30292}
30293unsafe extern "C" {
30294 pub fn BNRemoteCreateUser(
30295 remote: *mut BNRemote,
30296 username: *const ::std::os::raw::c_char,
30297 email: *const ::std::os::raw::c_char,
30298 isActive: bool,
30299 password: *const ::std::os::raw::c_char,
30300 groupIds: *const u64,
30301 groupIdCount: usize,
30302 userPermissionIds: *const u64,
30303 userPermissionIdCount: usize,
30304 ) -> *mut BNCollaborationUser;
30305}
30306unsafe extern "C" {
30307 pub fn BNRemotePushUser(
30308 remote: *mut BNRemote,
30309 user: *mut BNCollaborationUser,
30310 extraFieldKeys: *mut *const ::std::os::raw::c_char,
30311 extraFieldValues: *mut *const ::std::os::raw::c_char,
30312 extraFieldCount: usize,
30313 ) -> bool;
30314}
30315unsafe extern "C" {
30316 pub fn BNRemoteRequest(
30317 remote: *mut BNRemote,
30318 request: *mut ::std::os::raw::c_void,
30319 ret: *mut ::std::os::raw::c_void,
30320 ) -> ::std::os::raw::c_int;
30321}
30322unsafe extern "C" {
30323 #[doc = " CollabGroup"]
30324 pub fn BNNewCollaborationGroupReference(
30325 group: *mut BNCollaborationGroup,
30326 ) -> *mut BNCollaborationGroup;
30327}
30328unsafe extern "C" {
30329 pub fn BNFreeCollaborationGroup(group: *mut BNCollaborationGroup);
30330}
30331unsafe extern "C" {
30332 pub fn BNFreeCollaborationGroupList(group: *mut *mut BNCollaborationGroup, count: usize);
30333}
30334unsafe extern "C" {
30335 pub fn BNCollaborationGroupGetRemote(group: *mut BNCollaborationGroup) -> *mut BNRemote;
30336}
30337unsafe extern "C" {
30338 pub fn BNCollaborationGroupGetUrl(
30339 group: *mut BNCollaborationGroup,
30340 ) -> *mut ::std::os::raw::c_char;
30341}
30342unsafe extern "C" {
30343 pub fn BNCollaborationGroupGetId(group: *mut BNCollaborationGroup) -> u64;
30344}
30345unsafe extern "C" {
30346 pub fn BNCollaborationGroupGetName(
30347 group: *mut BNCollaborationGroup,
30348 ) -> *mut ::std::os::raw::c_char;
30349}
30350unsafe extern "C" {
30351 pub fn BNCollaborationGroupSetName(
30352 group: *mut BNCollaborationGroup,
30353 name: *const ::std::os::raw::c_char,
30354 );
30355}
30356unsafe extern "C" {
30357 pub fn BNCollaborationGroupGetUsers(
30358 group: *mut BNCollaborationGroup,
30359 count: *mut usize,
30360 ) -> *mut *mut BNCollaborationUser;
30361}
30362unsafe extern "C" {
30363 pub fn BNCollaborationGroupSetUsers(
30364 group: *mut BNCollaborationGroup,
30365 users: *mut *mut BNCollaborationUser,
30366 count: usize,
30367 ) -> bool;
30368}
30369unsafe extern "C" {
30370 pub fn BNCollaborationGroupContainsUser(
30371 group: *mut BNCollaborationGroup,
30372 user: *mut BNCollaborationUser,
30373 ) -> bool;
30374}
30375unsafe extern "C" {
30376 #[doc = " CollabUser"]
30377 pub fn BNNewCollaborationUserReference(
30378 user: *mut BNCollaborationUser,
30379 ) -> *mut BNCollaborationUser;
30380}
30381unsafe extern "C" {
30382 pub fn BNFreeCollaborationUser(user: *mut BNCollaborationUser);
30383}
30384unsafe extern "C" {
30385 pub fn BNFreeCollaborationUserList(users: *mut *mut BNCollaborationUser, count: usize);
30386}
30387unsafe extern "C" {
30388 pub fn BNCollaborationUserGetRemote(user: *mut BNCollaborationUser) -> *mut BNRemote;
30389}
30390unsafe extern "C" {
30391 pub fn BNCollaborationUserGetUrl(user: *mut BNCollaborationUser)
30392 -> *mut ::std::os::raw::c_char;
30393}
30394unsafe extern "C" {
30395 pub fn BNCollaborationUserGetId(user: *mut BNCollaborationUser) -> *mut ::std::os::raw::c_char;
30396}
30397unsafe extern "C" {
30398 pub fn BNCollaborationUserGetUsername(
30399 user: *mut BNCollaborationUser,
30400 ) -> *mut ::std::os::raw::c_char;
30401}
30402unsafe extern "C" {
30403 pub fn BNCollaborationUserGetEmail(
30404 user: *mut BNCollaborationUser,
30405 ) -> *mut ::std::os::raw::c_char;
30406}
30407unsafe extern "C" {
30408 pub fn BNCollaborationUserGetLastLogin(
30409 user: *mut BNCollaborationUser,
30410 ) -> *mut ::std::os::raw::c_char;
30411}
30412unsafe extern "C" {
30413 pub fn BNCollaborationUserIsActive(user: *mut BNCollaborationUser) -> bool;
30414}
30415unsafe extern "C" {
30416 pub fn BNCollaborationUserSetUsername(
30417 user: *mut BNCollaborationUser,
30418 username: *const ::std::os::raw::c_char,
30419 ) -> bool;
30420}
30421unsafe extern "C" {
30422 pub fn BNCollaborationUserSetEmail(
30423 user: *mut BNCollaborationUser,
30424 email: *const ::std::os::raw::c_char,
30425 ) -> bool;
30426}
30427unsafe extern "C" {
30428 pub fn BNCollaborationUserSetIsActive(user: *mut BNCollaborationUser, isActive: bool) -> bool;
30429}
30430unsafe extern "C" {
30431 #[doc = " RemoteProject"]
30432 pub fn BNNewRemoteProjectReference(project: *mut BNRemoteProject) -> *mut BNRemoteProject;
30433}
30434unsafe extern "C" {
30435 pub fn BNFreeRemoteProject(project: *mut BNRemoteProject);
30436}
30437unsafe extern "C" {
30438 pub fn BNFreeRemoteProjectList(projects: *mut *mut BNRemoteProject, count: usize);
30439}
30440unsafe extern "C" {
30441 pub fn BNRemoteProjectGetCoreProject(project: *mut BNRemoteProject) -> *mut BNProject;
30442}
30443unsafe extern "C" {
30444 pub fn BNRemoteProjectIsOpen(project: *mut BNRemoteProject) -> bool;
30445}
30446unsafe extern "C" {
30447 pub fn BNRemoteProjectOpen(
30448 project: *mut BNRemoteProject,
30449 progress: BNProgressFunction,
30450 progressCtxt: *mut ::std::os::raw::c_void,
30451 ) -> bool;
30452}
30453unsafe extern "C" {
30454 pub fn BNRemoteProjectClose(project: *mut BNRemoteProject);
30455}
30456unsafe extern "C" {
30457 pub fn BNRemoteProjectGetRemote(project: *mut BNRemoteProject) -> *mut BNRemote;
30458}
30459unsafe extern "C" {
30460 pub fn BNRemoteProjectGetUrl(project: *mut BNRemoteProject) -> *mut ::std::os::raw::c_char;
30461}
30462unsafe extern "C" {
30463 pub fn BNRemoteProjectGetCreated(project: *mut BNRemoteProject) -> i64;
30464}
30465unsafe extern "C" {
30466 pub fn BNRemoteProjectGetLastModified(project: *mut BNRemoteProject) -> i64;
30467}
30468unsafe extern "C" {
30469 pub fn BNRemoteProjectGetId(project: *mut BNRemoteProject) -> *mut ::std::os::raw::c_char;
30470}
30471unsafe extern "C" {
30472 pub fn BNRemoteProjectGetName(project: *mut BNRemoteProject) -> *mut ::std::os::raw::c_char;
30473}
30474unsafe extern "C" {
30475 pub fn BNRemoteProjectSetName(
30476 project: *mut BNRemoteProject,
30477 name: *const ::std::os::raw::c_char,
30478 ) -> bool;
30479}
30480unsafe extern "C" {
30481 pub fn BNRemoteProjectGetDescription(
30482 project: *mut BNRemoteProject,
30483 ) -> *mut ::std::os::raw::c_char;
30484}
30485unsafe extern "C" {
30486 pub fn BNRemoteProjectSetDescription(
30487 project: *mut BNRemoteProject,
30488 description: *const ::std::os::raw::c_char,
30489 ) -> bool;
30490}
30491unsafe extern "C" {
30492 pub fn BNRemoteProjectGetReceivedFileCount(project: *mut BNRemoteProject) -> u64;
30493}
30494unsafe extern "C" {
30495 pub fn BNRemoteProjectGetReceivedFolderCount(project: *mut BNRemoteProject) -> u64;
30496}
30497unsafe extern "C" {
30498 pub fn BNRemoteProjectHasPulledFiles(project: *mut BNRemoteProject) -> bool;
30499}
30500unsafe extern "C" {
30501 pub fn BNRemoteProjectHasPulledFolders(project: *mut BNRemoteProject) -> bool;
30502}
30503unsafe extern "C" {
30504 pub fn BNRemoteProjectHasPulledGroupPermissions(project: *mut BNRemoteProject) -> bool;
30505}
30506unsafe extern "C" {
30507 pub fn BNRemoteProjectHasPulledUserPermissions(project: *mut BNRemoteProject) -> bool;
30508}
30509unsafe extern "C" {
30510 pub fn BNRemoteProjectIsAdmin(project: *mut BNRemoteProject) -> bool;
30511}
30512unsafe extern "C" {
30513 pub fn BNRemoteProjectGetFiles(
30514 project: *mut BNRemoteProject,
30515 count: *mut usize,
30516 ) -> *mut *mut BNRemoteFile;
30517}
30518unsafe extern "C" {
30519 pub fn BNRemoteProjectGetFileById(
30520 project: *mut BNRemoteProject,
30521 id: *const ::std::os::raw::c_char,
30522 ) -> *mut BNRemoteFile;
30523}
30524unsafe extern "C" {
30525 pub fn BNRemoteProjectGetFileByName(
30526 project: *mut BNRemoteProject,
30527 name: *const ::std::os::raw::c_char,
30528 ) -> *mut BNRemoteFile;
30529}
30530unsafe extern "C" {
30531 pub fn BNRemoteProjectPullFiles(
30532 project: *mut BNRemoteProject,
30533 progress: BNProgressFunction,
30534 progressContext: *mut ::std::os::raw::c_void,
30535 ) -> bool;
30536}
30537unsafe extern "C" {
30538 pub fn BNRemoteProjectCreateFile(
30539 project: *mut BNRemoteProject,
30540 filename: *const ::std::os::raw::c_char,
30541 contents: *mut u8,
30542 contentsSize: usize,
30543 name: *const ::std::os::raw::c_char,
30544 description: *const ::std::os::raw::c_char,
30545 folder: *mut BNRemoteFolder,
30546 type_: BNRemoteFileType,
30547 progress: BNProgressFunction,
30548 progressContext: *mut ::std::os::raw::c_void,
30549 ) -> *mut BNRemoteFile;
30550}
30551unsafe extern "C" {
30552 pub fn BNRemoteProjectPushFile(
30553 project: *mut BNRemoteProject,
30554 file: *mut BNRemoteFile,
30555 extraFieldKeys: *mut *const ::std::os::raw::c_char,
30556 extraFieldValues: *mut *const ::std::os::raw::c_char,
30557 extraFieldCount: usize,
30558 ) -> bool;
30559}
30560unsafe extern "C" {
30561 pub fn BNRemoteProjectDeleteFile(
30562 project: *mut BNRemoteProject,
30563 file: *mut BNRemoteFile,
30564 ) -> bool;
30565}
30566unsafe extern "C" {
30567 pub fn BNRemoteProjectGetFolders(
30568 project: *mut BNRemoteProject,
30569 count: *mut usize,
30570 ) -> *mut *mut BNRemoteFolder;
30571}
30572unsafe extern "C" {
30573 pub fn BNRemoteProjectGetFolderById(
30574 project: *mut BNRemoteProject,
30575 id: *const ::std::os::raw::c_char,
30576 ) -> *mut BNRemoteFolder;
30577}
30578unsafe extern "C" {
30579 pub fn BNRemoteProjectPullFolders(
30580 project: *mut BNRemoteProject,
30581 progress: BNProgressFunction,
30582 progressContext: *mut ::std::os::raw::c_void,
30583 ) -> bool;
30584}
30585unsafe extern "C" {
30586 pub fn BNRemoteProjectCreateFolder(
30587 project: *mut BNRemoteProject,
30588 name: *const ::std::os::raw::c_char,
30589 description: *const ::std::os::raw::c_char,
30590 parent: *mut BNRemoteFolder,
30591 progress: BNProgressFunction,
30592 progressContext: *mut ::std::os::raw::c_void,
30593 ) -> *mut BNRemoteFolder;
30594}
30595unsafe extern "C" {
30596 pub fn BNRemoteProjectPushFolder(
30597 project: *mut BNRemoteProject,
30598 folder: *mut BNRemoteFolder,
30599 extraFieldKeys: *mut *const ::std::os::raw::c_char,
30600 extraFieldValues: *mut *const ::std::os::raw::c_char,
30601 extraFieldCount: usize,
30602 ) -> bool;
30603}
30604unsafe extern "C" {
30605 pub fn BNRemoteProjectDeleteFolder(
30606 project: *mut BNRemoteProject,
30607 folder: *mut BNRemoteFolder,
30608 ) -> bool;
30609}
30610unsafe extern "C" {
30611 pub fn BNRemoteProjectGetGroupPermissions(
30612 project: *mut BNRemoteProject,
30613 count: *mut usize,
30614 ) -> *mut *mut BNCollaborationPermission;
30615}
30616unsafe extern "C" {
30617 pub fn BNRemoteProjectGetUserPermissions(
30618 project: *mut BNRemoteProject,
30619 count: *mut usize,
30620 ) -> *mut *mut BNCollaborationPermission;
30621}
30622unsafe extern "C" {
30623 pub fn BNRemoteProjectGetPermissionById(
30624 project: *mut BNRemoteProject,
30625 id: *const ::std::os::raw::c_char,
30626 ) -> *mut BNCollaborationPermission;
30627}
30628unsafe extern "C" {
30629 pub fn BNRemoteProjectPullGroupPermissions(
30630 project: *mut BNRemoteProject,
30631 progress: BNProgressFunction,
30632 progressContext: *mut ::std::os::raw::c_void,
30633 ) -> bool;
30634}
30635unsafe extern "C" {
30636 pub fn BNRemoteProjectPullUserPermissions(
30637 project: *mut BNRemoteProject,
30638 progress: BNProgressFunction,
30639 progressContext: *mut ::std::os::raw::c_void,
30640 ) -> bool;
30641}
30642unsafe extern "C" {
30643 pub fn BNRemoteProjectCreateGroupPermission(
30644 project: *mut BNRemoteProject,
30645 groupId: i64,
30646 level: BNCollaborationPermissionLevel,
30647 progress: BNProgressFunction,
30648 progressContext: *mut ::std::os::raw::c_void,
30649 ) -> *mut BNCollaborationPermission;
30650}
30651unsafe extern "C" {
30652 pub fn BNRemoteProjectCreateUserPermission(
30653 project: *mut BNRemoteProject,
30654 userId: *const ::std::os::raw::c_char,
30655 level: BNCollaborationPermissionLevel,
30656 progress: BNProgressFunction,
30657 progressContext: *mut ::std::os::raw::c_void,
30658 ) -> *mut BNCollaborationPermission;
30659}
30660unsafe extern "C" {
30661 pub fn BNRemoteProjectPushPermission(
30662 project: *mut BNRemoteProject,
30663 permission: *mut BNCollaborationPermission,
30664 extraFieldKeys: *mut *const ::std::os::raw::c_char,
30665 extraFieldValues: *mut *const ::std::os::raw::c_char,
30666 extraFieldCount: usize,
30667 ) -> bool;
30668}
30669unsafe extern "C" {
30670 pub fn BNRemoteProjectDeletePermission(
30671 project: *mut BNRemoteProject,
30672 permission: *mut BNCollaborationPermission,
30673 ) -> bool;
30674}
30675unsafe extern "C" {
30676 pub fn BNRemoteProjectCanUserView(
30677 project: *mut BNRemoteProject,
30678 user: *mut BNCollaborationUser,
30679 ) -> bool;
30680}
30681unsafe extern "C" {
30682 pub fn BNRemoteProjectCanUserEdit(
30683 project: *mut BNRemoteProject,
30684 user: *mut BNCollaborationUser,
30685 ) -> bool;
30686}
30687unsafe extern "C" {
30688 pub fn BNRemoteProjectCanUserAdmin(
30689 project: *mut BNRemoteProject,
30690 user: *mut BNCollaborationUser,
30691 ) -> bool;
30692}
30693unsafe extern "C" {
30694 #[doc = " RemoteFile"]
30695 pub fn BNNewRemoteFileReference(file: *mut BNRemoteFile) -> *mut BNRemoteFile;
30696}
30697unsafe extern "C" {
30698 pub fn BNFreeRemoteFile(file: *mut BNRemoteFile);
30699}
30700unsafe extern "C" {
30701 pub fn BNFreeRemoteFileList(files: *mut *mut BNRemoteFile, count: usize);
30702}
30703unsafe extern "C" {
30704 pub fn BNRemoteFileGetCoreFile(file: *mut BNRemoteFile) -> *mut BNProjectFile;
30705}
30706unsafe extern "C" {
30707 pub fn BNRemoteFileGetProject(file: *mut BNRemoteFile) -> *mut BNRemoteProject;
30708}
30709unsafe extern "C" {
30710 pub fn BNRemoteFileGetFolder(file: *mut BNRemoteFile) -> *mut BNRemoteFolder;
30711}
30712unsafe extern "C" {
30713 pub fn BNRemoteFileGetRemote(file: *mut BNRemoteFile) -> *mut BNRemote;
30714}
30715unsafe extern "C" {
30716 pub fn BNRemoteFileGetUrl(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
30717}
30718unsafe extern "C" {
30719 pub fn BNRemoteFileGetChatLogUrl(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
30720}
30721unsafe extern "C" {
30722 pub fn BNRemoteFileGetUserPositionsUrl(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
30723}
30724unsafe extern "C" {
30725 pub fn BNRemoteFileGetId(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
30726}
30727unsafe extern "C" {
30728 pub fn BNRemoteFileGetType(file: *mut BNRemoteFile) -> BNRemoteFileType;
30729}
30730unsafe extern "C" {
30731 pub fn BNRemoteFileGetCreated(file: *mut BNRemoteFile) -> i64;
30732}
30733unsafe extern "C" {
30734 pub fn BNRemoteFileGetCreatedBy(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
30735}
30736unsafe extern "C" {
30737 pub fn BNRemoteFileGetLastModified(file: *mut BNRemoteFile) -> i64;
30738}
30739unsafe extern "C" {
30740 pub fn BNRemoteFileGetLastSnapshot(file: *mut BNRemoteFile) -> i64;
30741}
30742unsafe extern "C" {
30743 pub fn BNRemoteFileGetLastSnapshotBy(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
30744}
30745unsafe extern "C" {
30746 pub fn BNRemoteFileGetLastSnapshotName(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
30747}
30748unsafe extern "C" {
30749 pub fn BNRemoteFileGetHash(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
30750}
30751unsafe extern "C" {
30752 pub fn BNRemoteFileGetName(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
30753}
30754unsafe extern "C" {
30755 pub fn BNRemoteFileGetDescription(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
30756}
30757unsafe extern "C" {
30758 pub fn BNRemoteFileGetMetadata(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
30759}
30760unsafe extern "C" {
30761 pub fn BNRemoteFileGetSize(file: *mut BNRemoteFile) -> u64;
30762}
30763unsafe extern "C" {
30764 pub fn BNRemoteFileHasPulledSnapshots(file: *mut BNRemoteFile) -> bool;
30765}
30766unsafe extern "C" {
30767 pub fn BNRemoteFileSetName(
30768 file: *mut BNRemoteFile,
30769 name: *const ::std::os::raw::c_char,
30770 ) -> bool;
30771}
30772unsafe extern "C" {
30773 pub fn BNRemoteFileSetDescription(
30774 file: *mut BNRemoteFile,
30775 description: *const ::std::os::raw::c_char,
30776 ) -> bool;
30777}
30778unsafe extern "C" {
30779 pub fn BNRemoteFileSetFolder(file: *mut BNRemoteFile, folder: *mut BNRemoteFolder) -> bool;
30780}
30781unsafe extern "C" {
30782 pub fn BNRemoteFileSetMetadata(
30783 file: *mut BNRemoteFile,
30784 metadata: *const ::std::os::raw::c_char,
30785 ) -> bool;
30786}
30787unsafe extern "C" {
30788 pub fn BNRemoteFileGetSnapshots(
30789 file: *mut BNRemoteFile,
30790 count: *mut usize,
30791 ) -> *mut *mut BNCollaborationSnapshot;
30792}
30793unsafe extern "C" {
30794 pub fn BNRemoteFileGetSnapshotById(
30795 file: *mut BNRemoteFile,
30796 id: *const ::std::os::raw::c_char,
30797 ) -> *mut BNCollaborationSnapshot;
30798}
30799unsafe extern "C" {
30800 pub fn BNRemoteFilePullSnapshots(
30801 file: *mut BNRemoteFile,
30802 progress: BNProgressFunction,
30803 progressContext: *mut ::std::os::raw::c_void,
30804 ) -> bool;
30805}
30806unsafe extern "C" {
30807 pub fn BNRemoteFileCreateSnapshot(
30808 file: *mut BNRemoteFile,
30809 name: *const ::std::os::raw::c_char,
30810 contents: *mut u8,
30811 contentsSize: usize,
30812 analysisCacheContents: *mut u8,
30813 analysisCacheContentsSize: usize,
30814 fileContents: *mut u8,
30815 fileContentsSize: usize,
30816 parentIds: *mut *const ::std::os::raw::c_char,
30817 parentIdCount: usize,
30818 progress: BNProgressFunction,
30819 progressContext: *mut ::std::os::raw::c_void,
30820 ) -> *mut BNCollaborationSnapshot;
30821}
30822unsafe extern "C" {
30823 pub fn BNRemoteFileDeleteSnapshot(
30824 file: *mut BNRemoteFile,
30825 snapshot: *mut BNCollaborationSnapshot,
30826 ) -> bool;
30827}
30828unsafe extern "C" {
30829 pub fn BNRemoteFileDownload(
30830 file: *mut BNRemoteFile,
30831 progress: BNProgressFunction,
30832 progressCtxt: *mut ::std::os::raw::c_void,
30833 ) -> bool;
30834}
30835unsafe extern "C" {
30836 pub fn BNRemoteFileDownloadContents(
30837 file: *mut BNRemoteFile,
30838 progress: BNProgressFunction,
30839 progressCtxt: *mut ::std::os::raw::c_void,
30840 data: *mut *mut u8,
30841 size: *mut usize,
30842 ) -> bool;
30843}
30844unsafe extern "C" {
30845 pub fn BNRemoteFileRequestUserPositions(file: *mut BNRemoteFile)
30846 -> *mut ::std::os::raw::c_char;
30847}
30848unsafe extern "C" {
30849 pub fn BNRemoteFileRequestChatLog(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
30850}
30851unsafe extern "C" {
30852 #[doc = " RemoteFolder"]
30853 pub fn BNNewRemoteFolderReference(folder: *mut BNRemoteFolder) -> *mut BNRemoteFolder;
30854}
30855unsafe extern "C" {
30856 pub fn BNFreeRemoteFolder(folder: *mut BNRemoteFolder);
30857}
30858unsafe extern "C" {
30859 pub fn BNFreeRemoteFolderList(folders: *mut *mut BNRemoteFolder, count: usize);
30860}
30861unsafe extern "C" {
30862 pub fn BNRemoteFolderGetCoreFolder(folder: *mut BNRemoteFolder) -> *mut BNProjectFolder;
30863}
30864unsafe extern "C" {
30865 pub fn BNRemoteFolderGetProject(folder: *mut BNRemoteFolder) -> *mut BNRemoteProject;
30866}
30867unsafe extern "C" {
30868 pub fn BNRemoteFolderGetRemote(folder: *mut BNRemoteFolder) -> *mut BNRemote;
30869}
30870unsafe extern "C" {
30871 pub fn BNRemoteFolderGetParent(
30872 folder: *mut BNRemoteFolder,
30873 parent: *mut *mut BNRemoteFolder,
30874 ) -> bool;
30875}
30876unsafe extern "C" {
30877 pub fn BNRemoteFolderGetUrl(folder: *mut BNRemoteFolder) -> *mut ::std::os::raw::c_char;
30878}
30879unsafe extern "C" {
30880 pub fn BNRemoteFolderGetId(folder: *mut BNRemoteFolder) -> *mut ::std::os::raw::c_char;
30881}
30882unsafe extern "C" {
30883 pub fn BNRemoteFolderGetParentId(
30884 folder: *mut BNRemoteFolder,
30885 result: *mut *mut ::std::os::raw::c_char,
30886 ) -> bool;
30887}
30888unsafe extern "C" {
30889 pub fn BNRemoteFolderGetName(folder: *mut BNRemoteFolder) -> *mut ::std::os::raw::c_char;
30890}
30891unsafe extern "C" {
30892 pub fn BNRemoteFolderGetDescription(folder: *mut BNRemoteFolder)
30893 -> *mut ::std::os::raw::c_char;
30894}
30895unsafe extern "C" {
30896 pub fn BNRemoteFolderSetName(
30897 folder: *mut BNRemoteFolder,
30898 name: *const ::std::os::raw::c_char,
30899 ) -> bool;
30900}
30901unsafe extern "C" {
30902 pub fn BNRemoteFolderSetDescription(
30903 folder: *mut BNRemoteFolder,
30904 description: *const ::std::os::raw::c_char,
30905 ) -> bool;
30906}
30907unsafe extern "C" {
30908 pub fn BNRemoteFolderSetParent(
30909 folder: *mut BNRemoteFolder,
30910 parent: *mut BNRemoteFolder,
30911 ) -> bool;
30912}
30913unsafe extern "C" {
30914 #[doc = " CollabPermission"]
30915 pub fn BNNewCollaborationPermissionReference(
30916 permission: *mut BNCollaborationPermission,
30917 ) -> *mut BNCollaborationPermission;
30918}
30919unsafe extern "C" {
30920 pub fn BNFreeCollaborationPermission(permission: *mut BNCollaborationPermission);
30921}
30922unsafe extern "C" {
30923 pub fn BNFreeCollaborationPermissionList(
30924 permissions: *mut *mut BNCollaborationPermission,
30925 count: usize,
30926 );
30927}
30928unsafe extern "C" {
30929 pub fn BNCollaborationPermissionGetProject(
30930 permission: *mut BNCollaborationPermission,
30931 ) -> *mut BNRemoteProject;
30932}
30933unsafe extern "C" {
30934 pub fn BNCollaborationPermissionGetRemote(
30935 permission: *mut BNCollaborationPermission,
30936 ) -> *mut BNRemote;
30937}
30938unsafe extern "C" {
30939 pub fn BNCollaborationPermissionGetId(
30940 permission: *mut BNCollaborationPermission,
30941 ) -> *mut ::std::os::raw::c_char;
30942}
30943unsafe extern "C" {
30944 pub fn BNCollaborationPermissionGetUrl(
30945 permission: *mut BNCollaborationPermission,
30946 ) -> *mut ::std::os::raw::c_char;
30947}
30948unsafe extern "C" {
30949 pub fn BNCollaborationPermissionGetGroupId(permission: *mut BNCollaborationPermission) -> u64;
30950}
30951unsafe extern "C" {
30952 pub fn BNCollaborationPermissionGetGroupName(
30953 permission: *mut BNCollaborationPermission,
30954 ) -> *mut ::std::os::raw::c_char;
30955}
30956unsafe extern "C" {
30957 pub fn BNCollaborationPermissionGetUserId(
30958 permission: *mut BNCollaborationPermission,
30959 ) -> *mut ::std::os::raw::c_char;
30960}
30961unsafe extern "C" {
30962 pub fn BNCollaborationPermissionGetUsername(
30963 permission: *mut BNCollaborationPermission,
30964 ) -> *mut ::std::os::raw::c_char;
30965}
30966unsafe extern "C" {
30967 pub fn BNCollaborationPermissionGetLevel(
30968 permission: *mut BNCollaborationPermission,
30969 ) -> BNCollaborationPermissionLevel;
30970}
30971unsafe extern "C" {
30972 pub fn BNCollaborationPermissionSetLevel(
30973 permission: *mut BNCollaborationPermission,
30974 level: BNCollaborationPermissionLevel,
30975 );
30976}
30977unsafe extern "C" {
30978 pub fn BNCollaborationPermissionCanView(permission: *mut BNCollaborationPermission) -> bool;
30979}
30980unsafe extern "C" {
30981 pub fn BNCollaborationPermissionCanEdit(permission: *mut BNCollaborationPermission) -> bool;
30982}
30983unsafe extern "C" {
30984 pub fn BNCollaborationPermissionCanAdmin(permission: *mut BNCollaborationPermission) -> bool;
30985}
30986unsafe extern "C" {
30987 #[doc = " AnalysisMergeConflict"]
30988 pub fn BNNewAnalysisMergeConflictReference(
30989 conflict: *mut BNAnalysisMergeConflict,
30990 ) -> *mut BNAnalysisMergeConflict;
30991}
30992unsafe extern "C" {
30993 pub fn BNFreeAnalysisMergeConflict(conflict: *mut BNAnalysisMergeConflict);
30994}
30995unsafe extern "C" {
30996 pub fn BNFreeAnalysisMergeConflictList(
30997 conflicts: *mut *mut BNAnalysisMergeConflict,
30998 count: usize,
30999 );
31000}
31001unsafe extern "C" {
31002 pub fn BNAnalysisMergeConflictGetDatabase(
31003 conflict: *mut BNAnalysisMergeConflict,
31004 ) -> *mut BNDatabase;
31005}
31006unsafe extern "C" {
31007 pub fn BNAnalysisMergeConflictGetType(
31008 conflict: *mut BNAnalysisMergeConflict,
31009 ) -> *mut ::std::os::raw::c_char;
31010}
31011unsafe extern "C" {
31012 pub fn BNAnalysisMergeConflictGetKey(
31013 conflict: *mut BNAnalysisMergeConflict,
31014 ) -> *mut ::std::os::raw::c_char;
31015}
31016unsafe extern "C" {
31017 pub fn BNAnalysisMergeConflictGetDataType(
31018 conflict: *mut BNAnalysisMergeConflict,
31019 ) -> BNMergeConflictDataType;
31020}
31021unsafe extern "C" {
31022 pub fn BNAnalysisMergeConflictGetBase(
31023 conflict: *mut BNAnalysisMergeConflict,
31024 ) -> *mut ::std::os::raw::c_char;
31025}
31026unsafe extern "C" {
31027 pub fn BNAnalysisMergeConflictGetFirst(
31028 conflict: *mut BNAnalysisMergeConflict,
31029 ) -> *mut ::std::os::raw::c_char;
31030}
31031unsafe extern "C" {
31032 pub fn BNAnalysisMergeConflictGetSecond(
31033 conflict: *mut BNAnalysisMergeConflict,
31034 ) -> *mut ::std::os::raw::c_char;
31035}
31036unsafe extern "C" {
31037 pub fn BNAnalysisMergeConflictGetBaseFile(
31038 conflict: *mut BNAnalysisMergeConflict,
31039 ) -> *mut BNFileMetadata;
31040}
31041unsafe extern "C" {
31042 pub fn BNAnalysisMergeConflictGetFirstFile(
31043 conflict: *mut BNAnalysisMergeConflict,
31044 ) -> *mut BNFileMetadata;
31045}
31046unsafe extern "C" {
31047 pub fn BNAnalysisMergeConflictGetSecondFile(
31048 conflict: *mut BNAnalysisMergeConflict,
31049 ) -> *mut BNFileMetadata;
31050}
31051unsafe extern "C" {
31052 pub fn BNAnalysisMergeConflictGetBaseSnapshot(
31053 conflict: *mut BNAnalysisMergeConflict,
31054 ) -> *mut BNSnapshot;
31055}
31056unsafe extern "C" {
31057 pub fn BNAnalysisMergeConflictGetFirstSnapshot(
31058 conflict: *mut BNAnalysisMergeConflict,
31059 ) -> *mut BNSnapshot;
31060}
31061unsafe extern "C" {
31062 pub fn BNAnalysisMergeConflictGetSecondSnapshot(
31063 conflict: *mut BNAnalysisMergeConflict,
31064 ) -> *mut BNSnapshot;
31065}
31066unsafe extern "C" {
31067 pub fn BNAnalysisMergeConflictGetPathItemString(
31068 conflict: *mut BNAnalysisMergeConflict,
31069 path: *const ::std::os::raw::c_char,
31070 ) -> *mut ::std::os::raw::c_char;
31071}
31072unsafe extern "C" {
31073 pub fn BNAnalysisMergeConflictGetPathItemSerialized(
31074 conflict: *mut BNAnalysisMergeConflict,
31075 path: *const ::std::os::raw::c_char,
31076 ) -> *mut ::std::os::raw::c_char;
31077}
31078unsafe extern "C" {
31079 pub fn BNAnalysisMergeConflictGetPathItem(
31080 conflict: *mut BNAnalysisMergeConflict,
31081 path: *const ::std::os::raw::c_char,
31082 ) -> *mut ::std::os::raw::c_void;
31083}
31084unsafe extern "C" {
31085 pub fn BNAnalysisMergeConflictSuccess(
31086 conflict: *mut BNAnalysisMergeConflict,
31087 value: *const ::std::os::raw::c_char,
31088 ) -> bool;
31089}
31090unsafe extern "C" {
31091 #[doc = " TypeArchiveMergeConflict"]
31092 pub fn BNNewTypeArchiveMergeConflictReference(
31093 conflict: *mut BNTypeArchiveMergeConflict,
31094 ) -> *mut BNTypeArchiveMergeConflict;
31095}
31096unsafe extern "C" {
31097 pub fn BNFreeTypeArchiveMergeConflict(conflict: *mut BNTypeArchiveMergeConflict);
31098}
31099unsafe extern "C" {
31100 pub fn BNFreeTypeArchiveMergeConflictList(
31101 conflicts: *mut *mut BNTypeArchiveMergeConflict,
31102 count: usize,
31103 );
31104}
31105unsafe extern "C" {
31106 pub fn BNTypeArchiveMergeConflictGetTypeArchive(
31107 conflict: *mut BNTypeArchiveMergeConflict,
31108 ) -> *mut BNTypeArchive;
31109}
31110unsafe extern "C" {
31111 pub fn BNTypeArchiveMergeConflictGetTypeId(
31112 conflict: *mut BNTypeArchiveMergeConflict,
31113 ) -> *mut ::std::os::raw::c_char;
31114}
31115unsafe extern "C" {
31116 pub fn BNTypeArchiveMergeConflictGetBaseSnapshotId(
31117 conflict: *mut BNTypeArchiveMergeConflict,
31118 ) -> *mut ::std::os::raw::c_char;
31119}
31120unsafe extern "C" {
31121 pub fn BNTypeArchiveMergeConflictGetFirstSnapshotId(
31122 conflict: *mut BNTypeArchiveMergeConflict,
31123 ) -> *mut ::std::os::raw::c_char;
31124}
31125unsafe extern "C" {
31126 pub fn BNTypeArchiveMergeConflictGetSecondSnapshotId(
31127 conflict: *mut BNTypeArchiveMergeConflict,
31128 ) -> *mut ::std::os::raw::c_char;
31129}
31130unsafe extern "C" {
31131 pub fn BNTypeArchiveMergeConflictSuccess(
31132 conflict: *mut BNTypeArchiveMergeConflict,
31133 value: *const ::std::os::raw::c_char,
31134 ) -> bool;
31135}
31136unsafe extern "C" {
31137 #[doc = " CollabSnapshot"]
31138 pub fn BNNewCollaborationSnapshotReference(
31139 snapshot: *mut BNCollaborationSnapshot,
31140 ) -> *mut BNCollaborationSnapshot;
31141}
31142unsafe extern "C" {
31143 pub fn BNFreeCollaborationSnapshot(snapshot: *mut BNCollaborationSnapshot);
31144}
31145unsafe extern "C" {
31146 pub fn BNFreeCollaborationSnapshotList(
31147 snapshots: *mut *mut BNCollaborationSnapshot,
31148 count: usize,
31149 );
31150}
31151unsafe extern "C" {
31152 pub fn BNCollaborationSnapshotGetFile(
31153 snapshot: *mut BNCollaborationSnapshot,
31154 ) -> *mut BNRemoteFile;
31155}
31156unsafe extern "C" {
31157 pub fn BNCollaborationSnapshotGetProject(
31158 snapshot: *mut BNCollaborationSnapshot,
31159 ) -> *mut BNRemoteProject;
31160}
31161unsafe extern "C" {
31162 pub fn BNCollaborationSnapshotGetRemote(
31163 snapshot: *mut BNCollaborationSnapshot,
31164 ) -> *mut BNRemote;
31165}
31166unsafe extern "C" {
31167 pub fn BNCollaborationSnapshotGetUrl(
31168 snapshot: *mut BNCollaborationSnapshot,
31169 ) -> *mut ::std::os::raw::c_char;
31170}
31171unsafe extern "C" {
31172 pub fn BNCollaborationSnapshotGetId(
31173 snapshot: *mut BNCollaborationSnapshot,
31174 ) -> *mut ::std::os::raw::c_char;
31175}
31176unsafe extern "C" {
31177 pub fn BNCollaborationSnapshotGetName(
31178 snapshot: *mut BNCollaborationSnapshot,
31179 ) -> *mut ::std::os::raw::c_char;
31180}
31181unsafe extern "C" {
31182 pub fn BNCollaborationSnapshotGetAuthor(
31183 snapshot: *mut BNCollaborationSnapshot,
31184 ) -> *mut ::std::os::raw::c_char;
31185}
31186unsafe extern "C" {
31187 pub fn BNCollaborationSnapshotGetCreated(snapshot: *mut BNCollaborationSnapshot) -> i64;
31188}
31189unsafe extern "C" {
31190 pub fn BNCollaborationSnapshotGetLastModified(snapshot: *mut BNCollaborationSnapshot) -> i64;
31191}
31192unsafe extern "C" {
31193 pub fn BNCollaborationSnapshotGetHash(
31194 snapshot: *mut BNCollaborationSnapshot,
31195 ) -> *mut ::std::os::raw::c_char;
31196}
31197unsafe extern "C" {
31198 pub fn BNCollaborationSnapshotGetSnapshotFileHash(
31199 snapshot: *mut BNCollaborationSnapshot,
31200 ) -> *mut ::std::os::raw::c_char;
31201}
31202unsafe extern "C" {
31203 pub fn BNCollaborationSnapshotHasPulledUndoEntries(
31204 snapshot: *mut BNCollaborationSnapshot,
31205 ) -> bool;
31206}
31207unsafe extern "C" {
31208 pub fn BNCollaborationSnapshotIsFinalized(snapshot: *mut BNCollaborationSnapshot) -> bool;
31209}
31210unsafe extern "C" {
31211 pub fn BNCollaborationSnapshotGetParentIds(
31212 snapshot: *mut BNCollaborationSnapshot,
31213 count: *mut usize,
31214 ) -> *mut *mut ::std::os::raw::c_char;
31215}
31216unsafe extern "C" {
31217 pub fn BNCollaborationSnapshotGetChildIds(
31218 snapshot: *mut BNCollaborationSnapshot,
31219 count: *mut usize,
31220 ) -> *mut *mut ::std::os::raw::c_char;
31221}
31222unsafe extern "C" {
31223 pub fn BNCollaborationSnapshotGetAnalysisCacheBuildId(
31224 snapshot: *mut BNCollaborationSnapshot,
31225 ) -> u64;
31226}
31227unsafe extern "C" {
31228 pub fn BNCollaborationSnapshotGetTitle(
31229 snapshot: *mut BNCollaborationSnapshot,
31230 ) -> *mut ::std::os::raw::c_char;
31231}
31232unsafe extern "C" {
31233 pub fn BNCollaborationSnapshotGetDescription(
31234 snapshot: *mut BNCollaborationSnapshot,
31235 ) -> *mut ::std::os::raw::c_char;
31236}
31237unsafe extern "C" {
31238 pub fn BNCollaborationSnapshotGetAuthorUsername(
31239 snapshot: *mut BNCollaborationSnapshot,
31240 ) -> *mut ::std::os::raw::c_char;
31241}
31242unsafe extern "C" {
31243 pub fn BNCollaborationSnapshotGetParents(
31244 snapshot: *mut BNCollaborationSnapshot,
31245 count: *mut usize,
31246 ) -> *mut *mut BNCollaborationSnapshot;
31247}
31248unsafe extern "C" {
31249 pub fn BNCollaborationSnapshotGetChildren(
31250 snapshot: *mut BNCollaborationSnapshot,
31251 count: *mut usize,
31252 ) -> *mut *mut BNCollaborationSnapshot;
31253}
31254unsafe extern "C" {
31255 pub fn BNCollaborationSnapshotGetUndoEntries(
31256 snapshot: *mut BNCollaborationSnapshot,
31257 count: *mut usize,
31258 ) -> *mut *mut BNCollaborationUndoEntry;
31259}
31260unsafe extern "C" {
31261 pub fn BNCollaborationSnapshotGetUndoEntryById(
31262 snapshot: *mut BNCollaborationSnapshot,
31263 id: u64,
31264 ) -> *mut BNCollaborationUndoEntry;
31265}
31266unsafe extern "C" {
31267 pub fn BNCollaborationSnapshotPullUndoEntries(
31268 snapshot: *mut BNCollaborationSnapshot,
31269 progress: BNProgressFunction,
31270 progressContext: *mut ::std::os::raw::c_void,
31271 ) -> bool;
31272}
31273unsafe extern "C" {
31274 pub fn BNCollaborationSnapshotCreateUndoEntry(
31275 snapshot: *mut BNCollaborationSnapshot,
31276 hasParent: bool,
31277 parent: u64,
31278 data: *const ::std::os::raw::c_char,
31279 ) -> *mut BNCollaborationUndoEntry;
31280}
31281unsafe extern "C" {
31282 pub fn BNCollaborationSnapshotFinalize(snapshot: *mut BNCollaborationSnapshot) -> bool;
31283}
31284unsafe extern "C" {
31285 pub fn BNCollaborationSnapshotDownloadSnapshotFile(
31286 snapshot: *mut BNCollaborationSnapshot,
31287 progress: BNProgressFunction,
31288 progressContext: *mut ::std::os::raw::c_void,
31289 data: *mut *mut u8,
31290 size: *mut usize,
31291 ) -> bool;
31292}
31293unsafe extern "C" {
31294 pub fn BNCollaborationSnapshotDownload(
31295 snapshot: *mut BNCollaborationSnapshot,
31296 progress: BNProgressFunction,
31297 progressContext: *mut ::std::os::raw::c_void,
31298 data: *mut *mut u8,
31299 size: *mut usize,
31300 ) -> bool;
31301}
31302unsafe extern "C" {
31303 pub fn BNCollaborationSnapshotDownloadAnalysisCache(
31304 snapshot: *mut BNCollaborationSnapshot,
31305 progress: BNProgressFunction,
31306 progressContext: *mut ::std::os::raw::c_void,
31307 data: *mut *mut u8,
31308 size: *mut usize,
31309 ) -> bool;
31310}
31311unsafe extern "C" {
31312 #[doc = " CollabUndoEntry"]
31313 pub fn BNNewCollaborationUndoEntryReference(
31314 entry: *mut BNCollaborationUndoEntry,
31315 ) -> *mut BNCollaborationUndoEntry;
31316}
31317unsafe extern "C" {
31318 pub fn BNFreeCollaborationUndoEntry(entry: *mut BNCollaborationUndoEntry);
31319}
31320unsafe extern "C" {
31321 pub fn BNFreeCollaborationUndoEntryList(
31322 entries: *mut *mut BNCollaborationUndoEntry,
31323 count: usize,
31324 );
31325}
31326unsafe extern "C" {
31327 pub fn BNCollaborationUndoEntryGetSnapshot(
31328 undoEntry: *mut BNCollaborationUndoEntry,
31329 ) -> *mut BNCollaborationSnapshot;
31330}
31331unsafe extern "C" {
31332 pub fn BNCollaborationUndoEntryGetFile(
31333 undoEntry: *mut BNCollaborationUndoEntry,
31334 ) -> *mut BNRemoteFile;
31335}
31336unsafe extern "C" {
31337 pub fn BNCollaborationUndoEntryGetProject(
31338 undoEntry: *mut BNCollaborationUndoEntry,
31339 ) -> *mut BNRemoteProject;
31340}
31341unsafe extern "C" {
31342 pub fn BNCollaborationUndoEntryGetRemote(
31343 undoEntry: *mut BNCollaborationUndoEntry,
31344 ) -> *mut BNRemote;
31345}
31346unsafe extern "C" {
31347 pub fn BNCollaborationUndoEntryGetUrl(
31348 undoEntry: *mut BNCollaborationUndoEntry,
31349 ) -> *mut ::std::os::raw::c_char;
31350}
31351unsafe extern "C" {
31352 pub fn BNCollaborationUndoEntryGetId(undoEntry: *mut BNCollaborationUndoEntry) -> u64;
31353}
31354unsafe extern "C" {
31355 pub fn BNCollaborationUndoEntryGetParentId(
31356 undoEntry: *mut BNCollaborationUndoEntry,
31357 parentId: *mut u64,
31358 ) -> bool;
31359}
31360unsafe extern "C" {
31361 pub fn BNCollaborationUndoEntryGetData(
31362 undoEntry: *mut BNCollaborationUndoEntry,
31363 data: *mut *mut ::std::os::raw::c_char,
31364 ) -> bool;
31365}
31366unsafe extern "C" {
31367 pub fn BNCollaborationUndoEntryGetParent(
31368 undoEntry: *mut BNCollaborationUndoEntry,
31369 ) -> *mut BNCollaborationUndoEntry;
31370}
31371unsafe extern "C" {
31372 #[doc = " CollabChangeset"]
31373 pub fn BNNewCollaborationChangesetReference(
31374 changeset: *mut BNCollaborationChangeset,
31375 ) -> *mut BNCollaborationChangeset;
31376}
31377unsafe extern "C" {
31378 pub fn BNFreeCollaborationChangeset(changeset: *mut BNCollaborationChangeset);
31379}
31380unsafe extern "C" {
31381 pub fn BNFreeCollaborationChangesetList(
31382 changesets: *mut *mut BNCollaborationChangeset,
31383 count: usize,
31384 );
31385}
31386unsafe extern "C" {
31387 pub fn BNCollaborationChangesetGetDatabase(
31388 changeset: *mut BNCollaborationChangeset,
31389 ) -> *mut BNDatabase;
31390}
31391unsafe extern "C" {
31392 pub fn BNCollaborationChangesetGetFile(
31393 changeset: *mut BNCollaborationChangeset,
31394 ) -> *mut BNRemoteFile;
31395}
31396unsafe extern "C" {
31397 pub fn BNCollaborationChangesetGetSnapshotIds(
31398 changeset: *mut BNCollaborationChangeset,
31399 count: *mut usize,
31400 ) -> *mut i64;
31401}
31402unsafe extern "C" {
31403 pub fn BNCollaborationChangesetGetAuthor(
31404 changeset: *mut BNCollaborationChangeset,
31405 ) -> *mut BNCollaborationUser;
31406}
31407unsafe extern "C" {
31408 pub fn BNCollaborationChangesetGetName(
31409 changeset: *mut BNCollaborationChangeset,
31410 ) -> *mut ::std::os::raw::c_char;
31411}
31412unsafe extern "C" {
31413 pub fn BNCollaborationChangesetSetName(
31414 changeset: *mut BNCollaborationChangeset,
31415 name: *const ::std::os::raw::c_char,
31416 ) -> bool;
31417}
31418unsafe extern "C" {
31419 #[doc = " AnalysisMergeConflictSplitter"]
31420 pub fn BNRegisterAnalysisMergeConflictSplitter(
31421 callbacks: *mut BNAnalysisMergeConflictSplitterCallbacks,
31422 ) -> *mut BNAnalysisMergeConflictSplitter;
31423}
31424unsafe extern "C" {
31425 pub fn BNGetAnalysisMergeConflictSplitterList(
31426 count: *mut usize,
31427 ) -> *mut *mut BNAnalysisMergeConflictSplitter;
31428}
31429unsafe extern "C" {
31430 pub fn BNFreeAnalysisMergeConflictSplitterList(
31431 splitters: *mut *mut BNAnalysisMergeConflictSplitter,
31432 count: usize,
31433 );
31434}
31435unsafe extern "C" {
31436 pub fn BNAnalysisMergeConflictSplitterGetName(
31437 splitter: *mut BNAnalysisMergeConflictSplitter,
31438 ) -> *mut ::std::os::raw::c_char;
31439}
31440unsafe extern "C" {
31441 pub fn BNAnalysisMergeConflictSplitterCanSplit(
31442 splitter: *mut BNAnalysisMergeConflictSplitter,
31443 key: *const ::std::os::raw::c_char,
31444 conflict: *mut BNAnalysisMergeConflict,
31445 ) -> bool;
31446}
31447unsafe extern "C" {
31448 pub fn BNAnalysisMergeConflictSplitterSplit(
31449 splitter: *mut BNAnalysisMergeConflictSplitter,
31450 originalKey: *const ::std::os::raw::c_char,
31451 originalConflict: *mut BNAnalysisMergeConflict,
31452 result: *mut BNKeyValueStore,
31453 newKeys: *mut *mut *mut ::std::os::raw::c_char,
31454 newConflicts: *mut *mut *mut BNAnalysisMergeConflict,
31455 newCount: *mut usize,
31456 ) -> bool;
31457}
31458unsafe extern "C" {
31459 #[doc = " High level token emitter"]
31460 pub fn BNNewHighLevelILTokenEmitterReference(
31461 emitter: *mut BNHighLevelILTokenEmitter,
31462 ) -> *mut BNHighLevelILTokenEmitter;
31463}
31464unsafe extern "C" {
31465 pub fn BNHighLevelILTokenPrependCollapseBlankIndicator(emitter: *mut BNHighLevelILTokenEmitter);
31466}
31467unsafe extern "C" {
31468 pub fn BNHighLevelILTokenPrependCollapseIndicator(
31469 emitter: *mut BNHighLevelILTokenEmitter,
31470 context: BNInstructionTextTokenContext,
31471 hash: u64,
31472 );
31473}
31474unsafe extern "C" {
31475 pub fn BNHighLevelILTokenEmitterHasCollapsableRegions(
31476 emitter: *mut BNHighLevelILTokenEmitter,
31477 ) -> bool;
31478}
31479unsafe extern "C" {
31480 pub fn BNHighLevelILTokenEmitterSetHasCollapsableRegions(
31481 emitter: *mut BNHighLevelILTokenEmitter,
31482 state: bool,
31483 );
31484}
31485unsafe extern "C" {
31486 pub fn BNFreeHighLevelILTokenEmitter(emitter: *mut BNHighLevelILTokenEmitter);
31487}
31488unsafe extern "C" {
31489 pub fn BNHighLevelILTokenEmitterAppend(
31490 emitter: *mut BNHighLevelILTokenEmitter,
31491 token: *mut BNInstructionTextToken,
31492 );
31493}
31494unsafe extern "C" {
31495 pub fn BNHighLevelILTokenEmitterInitLine(emitter: *mut BNHighLevelILTokenEmitter);
31496}
31497unsafe extern "C" {
31498 pub fn BNHighLevelILTokenEmitterNewLine(emitter: *mut BNHighLevelILTokenEmitter);
31499}
31500unsafe extern "C" {
31501 pub fn BNHighLevelILTokenEmitterIncreaseIndent(emitter: *mut BNHighLevelILTokenEmitter);
31502}
31503unsafe extern "C" {
31504 pub fn BNHighLevelILTokenEmitterDecreaseIndent(emitter: *mut BNHighLevelILTokenEmitter);
31505}
31506unsafe extern "C" {
31507 pub fn BNHighLevelILTokenEmitterScopeSeparator(emitter: *mut BNHighLevelILTokenEmitter);
31508}
31509unsafe extern "C" {
31510 pub fn BNHighLevelILTokenEmitterBeginScope(
31511 emitter: *mut BNHighLevelILTokenEmitter,
31512 type_: BNScopeType,
31513 );
31514}
31515unsafe extern "C" {
31516 pub fn BNHighLevelILTokenEmitterEndScope(
31517 emitter: *mut BNHighLevelILTokenEmitter,
31518 type_: BNScopeType,
31519 );
31520}
31521unsafe extern "C" {
31522 pub fn BNHighLevelILTokenEmitterScopeContinuation(
31523 emitter: *mut BNHighLevelILTokenEmitter,
31524 forceSameLine: bool,
31525 );
31526}
31527unsafe extern "C" {
31528 pub fn BNHighLevelILTokenEmitterFinalizeScope(emitter: *mut BNHighLevelILTokenEmitter);
31529}
31530unsafe extern "C" {
31531 pub fn BNHighLevelILTokenEmitterNoIndentForThisLine(emitter: *mut BNHighLevelILTokenEmitter);
31532}
31533unsafe extern "C" {
31534 pub fn BNHighLevelILTokenEmitterBeginForceZeroConfidence(
31535 emitter: *mut BNHighLevelILTokenEmitter,
31536 );
31537}
31538unsafe extern "C" {
31539 pub fn BNHighLevelILTokenEmitterEndForceZeroConfidence(emitter: *mut BNHighLevelILTokenEmitter);
31540}
31541unsafe extern "C" {
31542 pub fn BNHighLevelILTokenEmitterSetCurrentExpr(
31543 emitter: *mut BNHighLevelILTokenEmitter,
31544 expr: BNTokenEmitterExpr,
31545 ) -> BNTokenEmitterExpr;
31546}
31547unsafe extern "C" {
31548 pub fn BNHighLevelILTokenEmitterRestoreCurrentExpr(
31549 emitter: *mut BNHighLevelILTokenEmitter,
31550 expr: BNTokenEmitterExpr,
31551 );
31552}
31553unsafe extern "C" {
31554 pub fn BNHighLevelILTokenEmitterFinalize(emitter: *mut BNHighLevelILTokenEmitter);
31555}
31556unsafe extern "C" {
31557 pub fn BNHighLevelILTokenEmitterAppendOpenParen(emitter: *mut BNHighLevelILTokenEmitter);
31558}
31559unsafe extern "C" {
31560 pub fn BNHighLevelILTokenEmitterAppendCloseParen(emitter: *mut BNHighLevelILTokenEmitter);
31561}
31562unsafe extern "C" {
31563 pub fn BNHighLevelILTokenEmitterAppendOpenBracket(emitter: *mut BNHighLevelILTokenEmitter);
31564}
31565unsafe extern "C" {
31566 pub fn BNHighLevelILTokenEmitterAppendCloseBracket(emitter: *mut BNHighLevelILTokenEmitter);
31567}
31568unsafe extern "C" {
31569 pub fn BNHighLevelILTokenEmitterAppendOpenBrace(emitter: *mut BNHighLevelILTokenEmitter);
31570}
31571unsafe extern "C" {
31572 pub fn BNHighLevelILTokenEmitterAppendCloseBrace(emitter: *mut BNHighLevelILTokenEmitter);
31573}
31574unsafe extern "C" {
31575 pub fn BNHighLevelILTokenEmitterAppendSemicolon(emitter: *mut BNHighLevelILTokenEmitter);
31576}
31577unsafe extern "C" {
31578 pub fn BNHighLevelILTokenEmitterSetBraceRequirement(
31579 emitter: *mut BNHighLevelILTokenEmitter,
31580 required: BNBraceRequirement,
31581 );
31582}
31583unsafe extern "C" {
31584 pub fn BNHighLevelILTokenEmitterSetBracesAroundSwitchCases(
31585 emitter: *mut BNHighLevelILTokenEmitter,
31586 braces: bool,
31587 );
31588}
31589unsafe extern "C" {
31590 pub fn BNHighLevelILTokenEmitterSetDefaultBracesOnSameLine(
31591 emitter: *mut BNHighLevelILTokenEmitter,
31592 sameLine: bool,
31593 );
31594}
31595unsafe extern "C" {
31596 pub fn BNHighLevelILTokenEmitterSetSimpleScopeAllowed(
31597 emitter: *mut BNHighLevelILTokenEmitter,
31598 allowed: bool,
31599 );
31600}
31601unsafe extern "C" {
31602 pub fn BNHighLevelILTokenEmitterGetBraceRequirement(
31603 emitter: *mut BNHighLevelILTokenEmitter,
31604 ) -> BNBraceRequirement;
31605}
31606unsafe extern "C" {
31607 pub fn BNHighLevelILTokenEmitterHasBracesAroundSwitchCases(
31608 emitter: *mut BNHighLevelILTokenEmitter,
31609 ) -> bool;
31610}
31611unsafe extern "C" {
31612 pub fn BNHighLevelILTokenEmitterGetDefaultBracesOnSameLine(
31613 emitter: *mut BNHighLevelILTokenEmitter,
31614 ) -> bool;
31615}
31616unsafe extern "C" {
31617 pub fn BNHighLevelILTokenEmitterGetMaxTernarySimplficationTokens(
31618 emitter: *mut BNHighLevelILTokenEmitter,
31619 ) -> usize;
31620}
31621unsafe extern "C" {
31622 pub fn BNHighLevelILTokenEmitterIsSimpleScopeAllowed(
31623 emitter: *mut BNHighLevelILTokenEmitter,
31624 ) -> bool;
31625}
31626unsafe extern "C" {
31627 pub fn BNHighLevelILTokenEmitterGetCurrentTokens(
31628 emitter: *mut BNHighLevelILTokenEmitter,
31629 tokenCount: *mut usize,
31630 ) -> *mut BNInstructionTextToken;
31631}
31632unsafe extern "C" {
31633 pub fn BNHighLevelILTokenEmitterSetCurrentTokens(
31634 emitter: *mut BNHighLevelILTokenEmitter,
31635 tokens: *mut BNInstructionTextToken,
31636 tokenCount: usize,
31637 );
31638}
31639unsafe extern "C" {
31640 pub fn BNHighLevelILTokenEmitterGetLines(
31641 emitter: *mut BNHighLevelILTokenEmitter,
31642 count: *mut usize,
31643 ) -> *mut BNDisassemblyTextLine;
31644}
31645unsafe extern "C" {
31646 pub fn BNAddHighLevelILSizeToken(
31647 size: usize,
31648 type_: BNInstructionTextTokenType,
31649 tokens: *mut BNHighLevelILTokenEmitter,
31650 );
31651}
31652unsafe extern "C" {
31653 pub fn BNAddHighLevelILFloatSizeToken(
31654 size: usize,
31655 type_: BNInstructionTextTokenType,
31656 tokens: *mut BNHighLevelILTokenEmitter,
31657 );
31658}
31659unsafe extern "C" {
31660 pub fn BNAddHighLevelILVarTextToken(
31661 func: *mut BNHighLevelILFunction,
31662 var: *const BNVariable,
31663 tokens: *mut BNHighLevelILTokenEmitter,
31664 exprIndex: usize,
31665 size: usize,
31666 );
31667}
31668unsafe extern "C" {
31669 pub fn BNAddHighLevelILIntegerTextToken(
31670 func: *mut BNHighLevelILFunction,
31671 exprIndex: usize,
31672 val: i64,
31673 size: usize,
31674 tokens: *mut BNHighLevelILTokenEmitter,
31675 );
31676}
31677unsafe extern "C" {
31678 pub fn BNAddHighLevelILArrayIndexToken(
31679 func: *mut BNHighLevelILFunction,
31680 exprIndex: usize,
31681 val: i64,
31682 size: usize,
31683 tokens: *mut BNHighLevelILTokenEmitter,
31684 address: u64,
31685 );
31686}
31687unsafe extern "C" {
31688 pub fn BNAddHighLevelILPointerTextToken(
31689 func: *mut BNHighLevelILFunction,
31690 exprIndex: usize,
31691 val: i64,
31692 tokens: *mut BNHighLevelILTokenEmitter,
31693 settings: *mut BNDisassemblySettings,
31694 symbolDisplay: BNSymbolDisplayType,
31695 precedence: BNOperatorPrecedence,
31696 allowShortString: bool,
31697 ) -> BNSymbolDisplayResult;
31698}
31699unsafe extern "C" {
31700 pub fn BNAddHighLevelILConstantTextToken(
31701 func: *mut BNHighLevelILFunction,
31702 exprIndex: usize,
31703 val: i64,
31704 size: usize,
31705 tokens: *mut BNHighLevelILTokenEmitter,
31706 settings: *mut BNDisassemblySettings,
31707 precedence: BNOperatorPrecedence,
31708 );
31709}
31710unsafe extern "C" {
31711 pub fn BNAddNamesForOuterStructureMembers(
31712 data: *mut BNBinaryView,
31713 type_: *mut BNType,
31714 hlil: *mut BNHighLevelILFunction,
31715 varExpr: usize,
31716 nameCount: *mut usize,
31717 ) -> *mut *mut ::std::os::raw::c_char;
31718}
31719unsafe extern "C" {
31720 pub fn BNZeroExtend(value: i64, sourceSize: usize, destSize: usize) -> i64;
31721}
31722unsafe extern "C" {
31723 pub fn BNSignExtend(value: i64, sourceSize: usize, destSize: usize) -> i64;
31724}
31725unsafe extern "C" {
31726 pub fn BNMaskToSize(value: i64, size: usize) -> i64;
31727}
31728unsafe extern "C" {
31729 pub fn BNGetMaskForSize(size: usize) -> i64;
31730}
31731unsafe extern "C" {
31732 #[doc = " FirmwareNinja"]
31733 pub fn BNCreateFirmwareNinja(view: *mut BNBinaryView) -> *mut BNFirmwareNinja;
31734}
31735unsafe extern "C" {
31736 pub fn BNFreeFirmwareNinja(fn_: *mut BNFirmwareNinja);
31737}
31738unsafe extern "C" {
31739 pub fn BNFirmwareNinjaStoreCustomDevice(
31740 fn_: *mut BNFirmwareNinja,
31741 name: *const ::std::os::raw::c_char,
31742 start: u64,
31743 end: u64,
31744 info: *const ::std::os::raw::c_char,
31745 ) -> bool;
31746}
31747unsafe extern "C" {
31748 pub fn BNFirmwareNinjaRemoveCustomDevice(
31749 fn_: *mut BNFirmwareNinja,
31750 name: *const ::std::os::raw::c_char,
31751 ) -> bool;
31752}
31753unsafe extern "C" {
31754 pub fn BNFirmwareNinjaQueryCustomDevices(
31755 fn_: *mut BNFirmwareNinja,
31756 devices: *mut *mut BNFirmwareNinjaDevice,
31757 ) -> ::std::os::raw::c_int;
31758}
31759unsafe extern "C" {
31760 pub fn BNFirmwareNinjaFreeDevices(
31761 devices: *mut BNFirmwareNinjaDevice,
31762 size: ::std::os::raw::c_int,
31763 );
31764}
31765unsafe extern "C" {
31766 pub fn BNFirmwareNinjaQueryBoardNamesForArchitecture(
31767 fn_: *mut BNFirmwareNinja,
31768 arch: *mut BNArchitecture,
31769 boards: *mut *mut *mut ::std::os::raw::c_char,
31770 ) -> ::std::os::raw::c_int;
31771}
31772unsafe extern "C" {
31773 pub fn BNFirmwareNinjaFreeBoardNames(
31774 boards: *mut *mut ::std::os::raw::c_char,
31775 size: ::std::os::raw::c_int,
31776 );
31777}
31778unsafe extern "C" {
31779 pub fn BNFirmwareNinjaQueryBoardDevices(
31780 fn_: *mut BNFirmwareNinja,
31781 arch: *mut BNArchitecture,
31782 board: *const ::std::os::raw::c_char,
31783 devices: *mut *mut BNFirmwareNinjaDevice,
31784 ) -> ::std::os::raw::c_int;
31785}
31786unsafe extern "C" {
31787 pub fn BNFirmwareNinjaFindSectionsWithEntropy(
31788 fn_: *mut BNFirmwareNinja,
31789 sections: *mut *mut BNFirmwareNinjaSection,
31790 highCodeEntropyThreshold: f32,
31791 lowCodeEntropyThreshold: f32,
31792 blockSize: usize,
31793 mode: BNFirmwareNinjaSectionAnalysisMode,
31794 ) -> ::std::os::raw::c_int;
31795}
31796unsafe extern "C" {
31797 pub fn BNFirmwareNinjaFreeSections(
31798 sections: *mut BNFirmwareNinjaSection,
31799 size: ::std::os::raw::c_int,
31800 );
31801}
31802unsafe extern "C" {
31803 pub fn BNFirmwareNinjaGetFunctionMemoryAccesses(
31804 fn_: *mut BNFirmwareNinja,
31805 fma: *mut *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
31806 progress: BNProgressFunction,
31807 progressContext: *mut ::std::os::raw::c_void,
31808 ) -> ::std::os::raw::c_int;
31809}
31810unsafe extern "C" {
31811 pub fn BNFirmwareNinjaFreeFunctionMemoryAccesses(
31812 fma: *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
31813 size: ::std::os::raw::c_int,
31814 );
31815}
31816unsafe extern "C" {
31817 pub fn BNFirmwareNinjaStoreFunctionMemoryAccessesToMetadata(
31818 fn_: *mut BNFirmwareNinja,
31819 fma: *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
31820 size: ::std::os::raw::c_int,
31821 );
31822}
31823unsafe extern "C" {
31824 pub fn BNFirmwareNinjaQueryFunctionMemoryAccessesFromMetadata(
31825 fn_: *mut BNFirmwareNinja,
31826 fma: *mut *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
31827 ) -> ::std::os::raw::c_int;
31828}
31829unsafe extern "C" {
31830 pub fn BNFirmwareNinjaGetBoardDeviceAccesses(
31831 fn_: *mut BNFirmwareNinja,
31832 fma: *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
31833 size: ::std::os::raw::c_int,
31834 accesses: *mut *mut BNFirmwareNinjaDeviceAccesses,
31835 arch: *mut BNArchitecture,
31836 ) -> ::std::os::raw::c_int;
31837}
31838unsafe extern "C" {
31839 pub fn BNFirmwareNinjaFreeBoardDeviceAccesses(
31840 accesses: *mut BNFirmwareNinjaDeviceAccesses,
31841 size: ::std::os::raw::c_int,
31842 );
31843}
31844unsafe extern "C" {
31845 pub fn BNFirmwareNinjaGetMemoryRegionReferenceTree(
31846 fn_: *mut BNFirmwareNinja,
31847 start: u64,
31848 end: u64,
31849 fma: *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
31850 size: ::std::os::raw::c_int,
31851 value: *mut u64,
31852 ) -> *mut BNFirmwareNinjaReferenceNode;
31853}
31854unsafe extern "C" {
31855 pub fn BNFirmwareNinjaGetAddressReferenceTree(
31856 fn_: *mut BNFirmwareNinja,
31857 address: u64,
31858 fma: *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
31859 size: ::std::os::raw::c_int,
31860 value: *mut u64,
31861 ) -> *mut BNFirmwareNinjaReferenceNode;
31862}
31863unsafe extern "C" {
31864 pub fn BNFirmwareNinjaQueryRelationships(
31865 fn_: *mut BNFirmwareNinja,
31866 count: *mut usize,
31867 ) -> *mut *mut BNFirmwareNinjaRelationship;
31868}
31869unsafe extern "C" {
31870 pub fn BNFirmwareNinjaFreeRelationships(
31871 relationships: *mut *mut BNFirmwareNinjaRelationship,
31872 count: usize,
31873 );
31874}
31875unsafe extern "C" {
31876 pub fn BNFirmwareNinjaAddRelationship(
31877 fn_: *mut BNFirmwareNinja,
31878 rel: *mut BNFirmwareNinjaRelationship,
31879 );
31880}
31881unsafe extern "C" {
31882 pub fn BNFirmwareNinjaGetRelationshipByGuid(
31883 fn_: *mut BNFirmwareNinja,
31884 guid: *const ::std::os::raw::c_char,
31885 ) -> *mut BNFirmwareNinjaRelationship;
31886}
31887unsafe extern "C" {
31888 pub fn BNFirmwareNinjaRemoveRelationshipByGuid(
31889 fn_: *mut BNFirmwareNinja,
31890 guid: *const ::std::os::raw::c_char,
31891 );
31892}
31893unsafe extern "C" {
31894 pub fn BNFirmwareNinjaReferenceNodeIsFunction(node: *mut BNFirmwareNinjaReferenceNode) -> bool;
31895}
31896unsafe extern "C" {
31897 pub fn BNFirmwareNinjaReferenceNodeIsDataVariable(
31898 node: *mut BNFirmwareNinjaReferenceNode,
31899 ) -> bool;
31900}
31901unsafe extern "C" {
31902 pub fn BNFirmwareNinjaReferenceNodeHasChildren(node: *mut BNFirmwareNinjaReferenceNode)
31903 -> bool;
31904}
31905unsafe extern "C" {
31906 pub fn BNFirmwareNinjaReferenceNodeGetFunction(
31907 node: *mut BNFirmwareNinjaReferenceNode,
31908 ) -> *mut BNFunction;
31909}
31910unsafe extern "C" {
31911 pub fn BNFirmwareNinjaReferenceNodeGetDataVariable(
31912 node: *mut BNFirmwareNinjaReferenceNode,
31913 dataVariable: *mut BNDataVariable,
31914 ) -> bool;
31915}
31916unsafe extern "C" {
31917 pub fn BNFirmwareNinjaReferenceNodeGetChildren(
31918 parent: *mut BNFirmwareNinjaReferenceNode,
31919 count: *mut usize,
31920 ) -> *mut *mut BNFirmwareNinjaReferenceNode;
31921}
31922unsafe extern "C" {
31923 pub fn BNFreeFirmwareNinjaReferenceNode(node: *mut BNFirmwareNinjaReferenceNode);
31924}
31925unsafe extern "C" {
31926 pub fn BNNewFirmwareNinjaReferenceNodeReference(
31927 node: *mut BNFirmwareNinjaReferenceNode,
31928 ) -> *mut BNFirmwareNinjaReferenceNode;
31929}
31930unsafe extern "C" {
31931 pub fn BNFreeFirmwareNinjaReferenceNodes(
31932 nodes: *mut *mut BNFirmwareNinjaReferenceNode,
31933 count: usize,
31934 );
31935}
31936unsafe extern "C" {
31937 pub fn BNCreateFirmwareNinjaRelationship(
31938 view: *mut BNBinaryView,
31939 ) -> *mut BNFirmwareNinjaRelationship;
31940}
31941unsafe extern "C" {
31942 pub fn BNFreeFirmwareNinjaRelationship(rel: *mut BNFirmwareNinjaRelationship);
31943}
31944unsafe extern "C" {
31945 pub fn BNNewFirmwareNinjaRelationshipReference(
31946 rel: *mut BNFirmwareNinjaRelationship,
31947 ) -> *mut BNFirmwareNinjaRelationship;
31948}
31949unsafe extern "C" {
31950 pub fn BNFirmwareNinjaRelationshipSetPrimaryAddress(
31951 rel: *mut BNFirmwareNinjaRelationship,
31952 address: u64,
31953 );
31954}
31955unsafe extern "C" {
31956 pub fn BNFirmwareNinjaRelationshipSetPrimaryDataVariable(
31957 rel: *mut BNFirmwareNinjaRelationship,
31958 dataVariableAddress: u64,
31959 );
31960}
31961unsafe extern "C" {
31962 pub fn BNFirmwareNinjaRelationshipSetPrimaryFunction(
31963 rel: *mut BNFirmwareNinjaRelationship,
31964 function: *mut BNFunction,
31965 );
31966}
31967unsafe extern "C" {
31968 pub fn BNFirmwareNinjaRelationshipPrimaryIsDataVariable(
31969 rel: *mut BNFirmwareNinjaRelationship,
31970 ) -> bool;
31971}
31972unsafe extern "C" {
31973 pub fn BNFirmwareNinjaRelationshipPrimaryIsFunction(
31974 rel: *mut BNFirmwareNinjaRelationship,
31975 ) -> bool;
31976}
31977unsafe extern "C" {
31978 pub fn BNFirmwareNinjaRelationshipPrimaryIsAddress(
31979 rel: *mut BNFirmwareNinjaRelationship,
31980 ) -> bool;
31981}
31982unsafe extern "C" {
31983 pub fn BNFirmwareNinjaRelationshipGetPrimaryDataVariable(
31984 rel: *mut BNFirmwareNinjaRelationship,
31985 dataVariable: *mut BNDataVariable,
31986 ) -> bool;
31987}
31988unsafe extern "C" {
31989 pub fn BNFirmwareNinjaRelationshipGetPrimaryFunction(
31990 rel: *mut BNFirmwareNinjaRelationship,
31991 ) -> *mut BNFunction;
31992}
31993unsafe extern "C" {
31994 pub fn BNFirmwareNinjaRelationshipGetPrimaryAddress(
31995 rel: *mut BNFirmwareNinjaRelationship,
31996 result: *mut u64,
31997 ) -> bool;
31998}
31999unsafe extern "C" {
32000 pub fn BNFirmwareNinjaRelationshipSetSecondaryExternalAddress(
32001 rel: *mut BNFirmwareNinjaRelationship,
32002 projectFile: *mut BNProjectFile,
32003 address: u64,
32004 );
32005}
32006unsafe extern "C" {
32007 pub fn BNFirmwareNinjaRelationshipSetSecondaryExternalSymbol(
32008 rel: *mut BNFirmwareNinjaRelationship,
32009 projectFile: *mut BNProjectFile,
32010 symbol: *const ::std::os::raw::c_char,
32011 );
32012}
32013unsafe extern "C" {
32014 pub fn BNFirmwareNinjaRelationshipSetSecondaryAddress(
32015 rel: *mut BNFirmwareNinjaRelationship,
32016 address: u64,
32017 );
32018}
32019unsafe extern "C" {
32020 pub fn BNFirmwareNinjaRelationshipSetSecondaryDataVariable(
32021 rel: *mut BNFirmwareNinjaRelationship,
32022 dataVariableAddress: u64,
32023 );
32024}
32025unsafe extern "C" {
32026 pub fn BNFirmwareNinjaRelationshipSetSecondaryFunction(
32027 rel: *mut BNFirmwareNinjaRelationship,
32028 function: *mut BNFunction,
32029 );
32030}
32031unsafe extern "C" {
32032 pub fn BNFirmwareNinjaRelationshipSecondaryIsDataVariable(
32033 rel: *mut BNFirmwareNinjaRelationship,
32034 ) -> bool;
32035}
32036unsafe extern "C" {
32037 pub fn BNFirmwareNinjaRelationshipSecondaryIsFunction(
32038 rel: *mut BNFirmwareNinjaRelationship,
32039 ) -> bool;
32040}
32041unsafe extern "C" {
32042 pub fn BNFirmwareNinjaRelationshipSecondaryIsAddress(
32043 rel: *mut BNFirmwareNinjaRelationship,
32044 ) -> bool;
32045}
32046unsafe extern "C" {
32047 pub fn BNFirmwareNinjaRelationshipSecondaryIsExternalAddress(
32048 rel: *mut BNFirmwareNinjaRelationship,
32049 ) -> bool;
32050}
32051unsafe extern "C" {
32052 pub fn BNFirmwareNinjaRelationshipSecondaryIsExternalSymbol(
32053 rel: *mut BNFirmwareNinjaRelationship,
32054 ) -> bool;
32055}
32056unsafe extern "C" {
32057 pub fn BNFirmwareNinjaRelationshipGetSecondaryExternalProjectFile(
32058 rel: *mut BNFirmwareNinjaRelationship,
32059 ) -> *mut BNProjectFile;
32060}
32061unsafe extern "C" {
32062 pub fn BNFirmwareNinjaRelationshipGetSecondaryAddress(
32063 rel: *mut BNFirmwareNinjaRelationship,
32064 result: *mut u64,
32065 ) -> bool;
32066}
32067unsafe extern "C" {
32068 pub fn BNFirmwareNinjaRelationshipGetSecondaryDataVariable(
32069 rel: *mut BNFirmwareNinjaRelationship,
32070 dataVariable: *mut BNDataVariable,
32071 ) -> bool;
32072}
32073unsafe extern "C" {
32074 pub fn BNFirmwareNinjaRelationshipGetSecondaryFunction(
32075 rel: *mut BNFirmwareNinjaRelationship,
32076 ) -> *mut BNFunction;
32077}
32078unsafe extern "C" {
32079 pub fn BNFirmwareNinjaRelationshipGetSecondaryExternalSymbol(
32080 rel: *mut BNFirmwareNinjaRelationship,
32081 ) -> *mut ::std::os::raw::c_char;
32082}
32083unsafe extern "C" {
32084 pub fn BNFirmwareNinjaRelationshipSetDescription(
32085 rel: *mut BNFirmwareNinjaRelationship,
32086 description: *const ::std::os::raw::c_char,
32087 );
32088}
32089unsafe extern "C" {
32090 pub fn BNFirmwareNinjaRelationshipGetDescription(
32091 rel: *mut BNFirmwareNinjaRelationship,
32092 ) -> *mut ::std::os::raw::c_char;
32093}
32094unsafe extern "C" {
32095 pub fn BNFirmwareNinjaRelationshipSetProvenance(
32096 rel: *mut BNFirmwareNinjaRelationship,
32097 provenance: *const ::std::os::raw::c_char,
32098 );
32099}
32100unsafe extern "C" {
32101 pub fn BNFirmwareNinjaRelationshipGetProvenance(
32102 rel: *mut BNFirmwareNinjaRelationship,
32103 ) -> *mut ::std::os::raw::c_char;
32104}
32105unsafe extern "C" {
32106 pub fn BNFirmwareNinjaRelationshipGetGuid(
32107 rel: *mut BNFirmwareNinjaRelationship,
32108 ) -> *mut ::std::os::raw::c_char;
32109}
32110unsafe extern "C" {
32111 #[doc = " Line formatters"]
32112 pub fn BNRegisterLineFormatter(
32113 name: *const ::std::os::raw::c_char,
32114 callbacks: *mut BNCustomLineFormatter,
32115 ) -> *mut BNLineFormatter;
32116}
32117unsafe extern "C" {
32118 pub fn BNGetLineFormatterList(count: *mut usize) -> *mut *mut BNLineFormatter;
32119}
32120unsafe extern "C" {
32121 pub fn BNFreeLineFormatterList(formatters: *mut *mut BNLineFormatter);
32122}
32123unsafe extern "C" {
32124 pub fn BNGetLineFormatterByName(name: *const ::std::os::raw::c_char) -> *mut BNLineFormatter;
32125}
32126unsafe extern "C" {
32127 pub fn BNGetDefaultLineFormatter() -> *mut BNLineFormatter;
32128}
32129unsafe extern "C" {
32130 pub fn BNGetLineFormatterName(formatter: *mut BNLineFormatter) -> *mut ::std::os::raw::c_char;
32131}
32132unsafe extern "C" {
32133 pub fn BNFormatLines(
32134 formatter: *mut BNLineFormatter,
32135 inLines: *mut BNDisassemblyTextLine,
32136 inCount: usize,
32137 settings: *const BNLineFormatterSettings,
32138 outCount: *mut usize,
32139 ) -> *mut BNDisassemblyTextLine;
32140}
32141unsafe extern "C" {
32142 pub fn BNGetDefaultLineFormatterSettings(
32143 settings: *mut BNDisassemblySettings,
32144 func: *mut BNHighLevelILFunction,
32145 ) -> *mut BNLineFormatterSettings;
32146}
32147unsafe extern "C" {
32148 pub fn BNGetLanguageRepresentationLineFormatterSettings(
32149 settings: *mut BNDisassemblySettings,
32150 func: *mut BNLanguageRepresentationFunction,
32151 ) -> *mut BNLineFormatterSettings;
32152}
32153unsafe extern "C" {
32154 pub fn BNFreeLineFormatterSettings(settings: *mut BNLineFormatterSettings);
32155}
32156unsafe extern "C" {
32157 #[doc = " Render Layers"]
32158 pub fn BNRegisterRenderLayer(
32159 name: *const ::std::os::raw::c_char,
32160 callbacks: *mut BNRenderLayerCallbacks,
32161 enableState: BNRenderLayerDefaultEnableState,
32162 ) -> *mut BNRenderLayer;
32163}
32164unsafe extern "C" {
32165 pub fn BNGetRenderLayerList(count: *mut usize) -> *mut *mut BNRenderLayer;
32166}
32167unsafe extern "C" {
32168 pub fn BNFreeRenderLayerList(renderLayers: *mut *mut BNRenderLayer);
32169}
32170unsafe extern "C" {
32171 pub fn BNGetRenderLayerByName(name: *const ::std::os::raw::c_char) -> *mut BNRenderLayer;
32172}
32173unsafe extern "C" {
32174 pub fn BNGetRenderLayerName(renderLayer: *mut BNRenderLayer) -> *mut ::std::os::raw::c_char;
32175}
32176unsafe extern "C" {
32177 pub fn BNGetRenderLayerDefaultEnableState(
32178 renderLayer: *mut BNRenderLayer,
32179 ) -> BNRenderLayerDefaultEnableState;
32180}
32181unsafe extern "C" {
32182 pub fn BNApplyRenderLayerToFlowGraph(renderLayer: *mut BNRenderLayer, graph: *mut BNFlowGraph);
32183}
32184unsafe extern "C" {
32185 pub fn BNApplyRenderLayerToLinearViewObject(
32186 renderLayer: *mut BNRenderLayer,
32187 obj: *mut BNLinearViewObject,
32188 prev: *mut BNLinearViewObject,
32189 next: *mut BNLinearViewObject,
32190 inLines: *mut BNLinearDisassemblyLine,
32191 inLineCount: usize,
32192 outLines: *mut *mut BNLinearDisassemblyLine,
32193 outLineCount: *mut usize,
32194 );
32195}
32196unsafe extern "C" {
32197 pub fn BNFreeStringRef(ref_: *mut BNStringRef);
32198}
32199unsafe extern "C" {
32200 pub fn BNDuplicateStringRef(ref_: *mut BNStringRef) -> *mut BNStringRef;
32201}
32202unsafe extern "C" {
32203 pub fn BNGetStringRefContents(ref_: *mut BNStringRef) -> *const ::std::os::raw::c_char;
32204}
32205unsafe extern "C" {
32206 pub fn BNGetStringRefSize(ref_: *mut BNStringRef) -> usize;
32207}
32208unsafe extern "C" {
32209 pub fn BNCreateStringRef(str_: *const ::std::os::raw::c_char) -> *mut BNStringRef;
32210}
32211unsafe extern "C" {
32212 pub fn BNCreateStringRefOfLength(
32213 str_: *const ::std::os::raw::c_char,
32214 len: usize,
32215 ) -> *mut BNStringRef;
32216}
32217unsafe extern "C" {
32218 #[doc = " Constant Renderers"]
32219 pub fn BNRegisterConstantRenderer(
32220 name: *const ::std::os::raw::c_char,
32221 renderer: *mut BNCustomConstantRenderer,
32222 ) -> *mut BNConstantRenderer;
32223}
32224unsafe extern "C" {
32225 pub fn BNGetConstantRendererByName(
32226 name: *const ::std::os::raw::c_char,
32227 ) -> *mut BNConstantRenderer;
32228}
32229unsafe extern "C" {
32230 pub fn BNGetConstantRendererList(count: *mut usize) -> *mut *mut BNConstantRenderer;
32231}
32232unsafe extern "C" {
32233 pub fn BNFreeConstantRendererList(renderers: *mut *mut BNConstantRenderer);
32234}
32235unsafe extern "C" {
32236 pub fn BNGetConstantRendererName(
32237 renderer: *mut BNConstantRenderer,
32238 ) -> *mut ::std::os::raw::c_char;
32239}
32240unsafe extern "C" {
32241 pub fn BNIsConstantRendererValidForType(
32242 renderer: *mut BNConstantRenderer,
32243 il: *mut BNHighLevelILFunction,
32244 type_: *mut BNType,
32245 ) -> bool;
32246}
32247unsafe extern "C" {
32248 pub fn BNConstantRendererRenderConstant(
32249 renderer: *mut BNConstantRenderer,
32250 il: *mut BNHighLevelILFunction,
32251 exprIndex: usize,
32252 type_: *mut BNType,
32253 val: i64,
32254 tokens: *mut BNHighLevelILTokenEmitter,
32255 settings: *mut BNDisassemblySettings,
32256 precedence: BNOperatorPrecedence,
32257 ) -> bool;
32258}
32259unsafe extern "C" {
32260 pub fn BNConstantRendererRenderConstantPointer(
32261 renderer: *mut BNConstantRenderer,
32262 il: *mut BNHighLevelILFunction,
32263 exprIndex: usize,
32264 type_: *mut BNType,
32265 val: i64,
32266 tokens: *mut BNHighLevelILTokenEmitter,
32267 settings: *mut BNDisassemblySettings,
32268 symbolDisplay: BNSymbolDisplayType,
32269 precedence: BNOperatorPrecedence,
32270 ) -> bool;
32271}
32272unsafe extern "C" {
32273 #[doc = " String recognizers"]
32274 pub fn BNRegisterCustomStringType(info: *mut BNCustomStringTypeInfo)
32275 -> *mut BNCustomStringType;
32276}
32277unsafe extern "C" {
32278 pub fn BNGetCustomStringTypeByName(
32279 name: *const ::std::os::raw::c_char,
32280 ) -> *mut BNCustomStringType;
32281}
32282unsafe extern "C" {
32283 pub fn BNGetCustomStringTypeByID(id: u32) -> *mut BNCustomStringType;
32284}
32285unsafe extern "C" {
32286 pub fn BNGetCustomStringTypeList(count: *mut usize) -> *mut *mut BNCustomStringType;
32287}
32288unsafe extern "C" {
32289 pub fn BNFreeCustomStringTypeList(types: *mut *mut BNCustomStringType);
32290}
32291unsafe extern "C" {
32292 pub fn BNGetCustomStringTypeName(type_: *mut BNCustomStringType)
32293 -> *mut ::std::os::raw::c_char;
32294}
32295unsafe extern "C" {
32296 pub fn BNGetCustomStringTypePrefix(
32297 type_: *mut BNCustomStringType,
32298 ) -> *mut ::std::os::raw::c_char;
32299}
32300unsafe extern "C" {
32301 pub fn BNGetCustomStringTypePostfix(
32302 type_: *mut BNCustomStringType,
32303 ) -> *mut ::std::os::raw::c_char;
32304}
32305unsafe extern "C" {
32306 pub fn BNRegisterStringRecognizer(
32307 name: *const ::std::os::raw::c_char,
32308 recognizer: *mut BNCustomStringRecognizer,
32309 ) -> *mut BNStringRecognizer;
32310}
32311unsafe extern "C" {
32312 pub fn BNGetStringRecognizerByName(
32313 name: *const ::std::os::raw::c_char,
32314 ) -> *mut BNStringRecognizer;
32315}
32316unsafe extern "C" {
32317 pub fn BNGetStringRecognizerList(count: *mut usize) -> *mut *mut BNStringRecognizer;
32318}
32319unsafe extern "C" {
32320 pub fn BNFreeStringRecognizerList(recognizers: *mut *mut BNStringRecognizer);
32321}
32322unsafe extern "C" {
32323 pub fn BNGetStringRecognizerName(
32324 recognizer: *mut BNStringRecognizer,
32325 ) -> *mut ::std::os::raw::c_char;
32326}
32327unsafe extern "C" {
32328 pub fn BNIsStringRecognizerValidForType(
32329 recognizer: *mut BNStringRecognizer,
32330 il: *mut BNHighLevelILFunction,
32331 type_: *mut BNType,
32332 ) -> bool;
32333}
32334unsafe extern "C" {
32335 pub fn BNStringRecognizerRecognizeConstant(
32336 recognizer: *mut BNStringRecognizer,
32337 il: *mut BNHighLevelILFunction,
32338 exprIndex: usize,
32339 type_: *mut BNType,
32340 val: i64,
32341 out: *mut BNDerivedString,
32342 ) -> bool;
32343}
32344unsafe extern "C" {
32345 pub fn BNStringRecognizerRecognizeConstantPointer(
32346 recognizer: *mut BNStringRecognizer,
32347 il: *mut BNHighLevelILFunction,
32348 exprIndex: usize,
32349 type_: *mut BNType,
32350 val: i64,
32351 out: *mut BNDerivedString,
32352 ) -> bool;
32353}
32354unsafe extern "C" {
32355 pub fn BNStringRecognizerRecognizeExternPointer(
32356 recognizer: *mut BNStringRecognizer,
32357 il: *mut BNHighLevelILFunction,
32358 exprIndex: usize,
32359 type_: *mut BNType,
32360 val: i64,
32361 offset: u64,
32362 out: *mut BNDerivedString,
32363 ) -> bool;
32364}
32365unsafe extern "C" {
32366 pub fn BNStringRecognizerRecognizeImport(
32367 recognizer: *mut BNStringRecognizer,
32368 il: *mut BNHighLevelILFunction,
32369 exprIndex: usize,
32370 type_: *mut BNType,
32371 val: i64,
32372 out: *mut BNDerivedString,
32373 ) -> bool;
32374}
32375unsafe extern "C" {
32376 pub fn BNStringRecognizerRecognizeConstantData(
32377 recognizer: *mut BNStringRecognizer,
32378 il: *mut BNHighLevelILFunction,
32379 exprIndex: usize,
32380 out: *mut BNDerivedString,
32381 ) -> bool;
32382}
32383unsafe extern "C" {
32384 pub fn BNStringRecognizerRecognizeStructInit(
32385 recognizer: *mut BNStringRecognizer,
32386 il: *mut BNHighLevelILFunction,
32387 exprIndex: usize,
32388 type_: *mut BNType,
32389 fieldOffsets: *const u64,
32390 fieldValues: *const i64,
32391 fieldCount: usize,
32392 out: *mut BNDerivedString,
32393 ) -> bool;
32394}
32395unsafe extern "C" {
32396 #[doc = " PossibleValueSet operations"]
32397 pub fn BNFreePossibleValueSet(object: *mut BNPossibleValueSet);
32398}
32399unsafe extern "C" {
32400 pub fn BNPossibleValueSetUnion(
32401 object: *const BNPossibleValueSet,
32402 other: *const BNPossibleValueSet,
32403 size: usize,
32404 ) -> BNPossibleValueSet;
32405}
32406unsafe extern "C" {
32407 pub fn BNPossibleValueSetIntersection(
32408 object: *const BNPossibleValueSet,
32409 other: *const BNPossibleValueSet,
32410 size: usize,
32411 ) -> BNPossibleValueSet;
32412}
32413unsafe extern "C" {
32414 pub fn BNPossibleValueSetAdd(
32415 object: *const BNPossibleValueSet,
32416 other: *const BNPossibleValueSet,
32417 size: usize,
32418 ) -> BNPossibleValueSet;
32419}
32420unsafe extern "C" {
32421 pub fn BNPossibleValueSetSubtract(
32422 object: *const BNPossibleValueSet,
32423 other: *const BNPossibleValueSet,
32424 size: usize,
32425 ) -> BNPossibleValueSet;
32426}
32427unsafe extern "C" {
32428 pub fn BNPossibleValueSetMultiply(
32429 object: *const BNPossibleValueSet,
32430 other: *const BNPossibleValueSet,
32431 size: usize,
32432 ) -> BNPossibleValueSet;
32433}
32434unsafe extern "C" {
32435 pub fn BNPossibleValueSetSignedDivide(
32436 object: *const BNPossibleValueSet,
32437 other: *const BNPossibleValueSet,
32438 size: usize,
32439 ) -> BNPossibleValueSet;
32440}
32441unsafe extern "C" {
32442 pub fn BNPossibleValueSetUnsignedDivide(
32443 object: *const BNPossibleValueSet,
32444 other: *const BNPossibleValueSet,
32445 size: usize,
32446 ) -> BNPossibleValueSet;
32447}
32448unsafe extern "C" {
32449 pub fn BNPossibleValueSetSignedMod(
32450 object: *const BNPossibleValueSet,
32451 other: *const BNPossibleValueSet,
32452 size: usize,
32453 ) -> BNPossibleValueSet;
32454}
32455unsafe extern "C" {
32456 pub fn BNPossibleValueSetUnsignedMod(
32457 object: *const BNPossibleValueSet,
32458 other: *const BNPossibleValueSet,
32459 size: usize,
32460 ) -> BNPossibleValueSet;
32461}
32462unsafe extern "C" {
32463 pub fn BNPossibleValueSetAnd(
32464 object: *const BNPossibleValueSet,
32465 other: *const BNPossibleValueSet,
32466 size: usize,
32467 ) -> BNPossibleValueSet;
32468}
32469unsafe extern "C" {
32470 pub fn BNPossibleValueSetOr(
32471 object: *const BNPossibleValueSet,
32472 other: *const BNPossibleValueSet,
32473 size: usize,
32474 ) -> BNPossibleValueSet;
32475}
32476unsafe extern "C" {
32477 pub fn BNPossibleValueSetXor(
32478 object: *const BNPossibleValueSet,
32479 other: *const BNPossibleValueSet,
32480 size: usize,
32481 ) -> BNPossibleValueSet;
32482}
32483unsafe extern "C" {
32484 pub fn BNPossibleValueSetShiftLeft(
32485 object: *const BNPossibleValueSet,
32486 other: *const BNPossibleValueSet,
32487 size: usize,
32488 ) -> BNPossibleValueSet;
32489}
32490unsafe extern "C" {
32491 pub fn BNPossibleValueSetLogicalShiftRight(
32492 object: *const BNPossibleValueSet,
32493 other: *const BNPossibleValueSet,
32494 size: usize,
32495 ) -> BNPossibleValueSet;
32496}
32497unsafe extern "C" {
32498 pub fn BNPossibleValueSetArithShiftRight(
32499 object: *const BNPossibleValueSet,
32500 other: *const BNPossibleValueSet,
32501 size: usize,
32502 ) -> BNPossibleValueSet;
32503}
32504unsafe extern "C" {
32505 pub fn BNPossibleValueSetRotateLeft(
32506 object: *const BNPossibleValueSet,
32507 other: *const BNPossibleValueSet,
32508 size: usize,
32509 ) -> BNPossibleValueSet;
32510}
32511unsafe extern "C" {
32512 pub fn BNPossibleValueSetRotateRight(
32513 object: *const BNPossibleValueSet,
32514 other: *const BNPossibleValueSet,
32515 size: usize,
32516 ) -> BNPossibleValueSet;
32517}
32518unsafe extern "C" {
32519 pub fn BNPossibleValueSetNegate(
32520 object: *const BNPossibleValueSet,
32521 size: usize,
32522 ) -> BNPossibleValueSet;
32523}
32524unsafe extern "C" {
32525 pub fn BNPossibleValueSetNot(
32526 object: *const BNPossibleValueSet,
32527 size: usize,
32528 ) -> BNPossibleValueSet;
32529}