pub const BN_CURRENT_UI_ABI_VERSION: u32 = 12;
pub const BN_MINIMUM_UI_ABI_VERSION: u32 = 12;
pub const BN_CURRENT_CORE_ABI_VERSION: u32 = 152;
pub const BN_MINIMUM_CORE_ABI_VERSION: u32 = 152;
pub const MAX_RELOCATION_SIZE: u32 = 8;
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNPluginLoadOrder {
EarlyPluginLoadOrder = 0,
NormalPluginLoadOrder = 1,
LatePluginLoadOrder = 2,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNDataBuffer {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNBinaryView {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNBinaryViewType {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNBinaryReader {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNBinaryWriter {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNKeyValueStore {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNSnapshot {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNDatabase {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNFileMetadata {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNTransform {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNTransformContext {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNTransformSession {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNArchitecture {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNFunction {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNBasicBlock {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNDownloadProvider {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNDownloadInstance {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNWebsocketProvider {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNWebsocketClient {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNTypeParser {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNTypePrinter {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNFlowGraph {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNFlowGraphNode {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNFlowGraphLayout {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNFlowGraphLayoutRequest {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNSymbol {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNTemporaryFile {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNLowLevelILFunction {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNMediumLevelILFunction {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNHighLevelILFunction {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNLanguageRepresentationFunction {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNLanguageRepresentationFunctionType {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNHighLevelILTokenEmitter {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNType {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNTypeBuilder {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNTypeLibrary {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNFieldResolutionInfo {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNStructure {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNStructureBuilder {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNTagType {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNTag {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNUser {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNNamedTypeReference {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNNamedTypeReferenceBuilder {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNEnumeration {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNEnumerationBuilder {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNCallingConvention {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNPlatform {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNActivity {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNAnalysisContext {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNWorkflow {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNAnalysisCompletionEvent {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNDisassemblySettings {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNSaveSettings {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNScriptingProvider {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNScriptingInstance {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNMainThreadAction {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNBackgroundTask {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNRepository {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNRepoPlugin {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNRepositoryManager {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNComponent {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNSettings {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNMetadata {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNReportCollection {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNRelocation {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNSegment {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNSection {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNRelocationHandler {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNDataRenderer {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNDataRendererContainer {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNDisassemblyTextRenderer {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNLinearViewObject {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNLinearViewCursor {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNDebugInfo {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNDebugInfoParser {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNSecretsProvider {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNLogger {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNSymbolQueue {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNTypeArchive {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNTypeContainer {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNProject {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNProjectFile {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNExternalLibrary {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNExternalLocation {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNProjectFolder {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNBaseAddressDetection {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNCollaborationChangeset {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNRemoteFile {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNRemoteFolder {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNCollaborationGroup {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNCollaborationPermission {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNRemoteProject {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNRemote {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNCollaborationSnapshot {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNCollaborationUndoEntry {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNCollaborationUser {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNAnalysisMergeConflict {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNAnalysisMergeConflictSplitter {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNTypeArchiveMergeConflict {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNCollaborationLazyT {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNUndoAction {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNUndoEntry {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNDemangler {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNFirmwareNinja {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNFirmwareNinjaReferenceNode {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNFirmwareNinjaRelationship {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNLineFormatter {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNRenderLayer {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNStringRef {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNConstantRenderer {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNStringRecognizer {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNCustomStringType {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNRemoteFileSearchMatch {
pub projectId: *mut ::std::os::raw::c_char,
pub projectName: *mut ::std::os::raw::c_char,
pub fileId: *mut ::std::os::raw::c_char,
pub fileName: *mut ::std::os::raw::c_char,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNRemoteFileSearchMatch"][::std::mem::size_of::<BNRemoteFileSearchMatch>() - 32usize];
["Alignment of BNRemoteFileSearchMatch"]
[::std::mem::align_of::<BNRemoteFileSearchMatch>() - 8usize];
["Offset of field: BNRemoteFileSearchMatch::projectId"]
[::std::mem::offset_of!(BNRemoteFileSearchMatch, projectId) - 0usize];
["Offset of field: BNRemoteFileSearchMatch::projectName"]
[::std::mem::offset_of!(BNRemoteFileSearchMatch, projectName) - 8usize];
["Offset of field: BNRemoteFileSearchMatch::fileId"]
[::std::mem::offset_of!(BNRemoteFileSearchMatch, fileId) - 16usize];
["Offset of field: BNRemoteFileSearchMatch::fileName"]
[::std::mem::offset_of!(BNRemoteFileSearchMatch, fileName) - 24usize];
};
impl Default for BNRemoteFileSearchMatch {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type BNProgressFunction = ::std::option::Option<
unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void, arg2: usize, arg3: usize) -> bool,
>;
#[repr(u8)]
#[doc = "! Console log levels"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNLogLevel {
DebugLog = 0,
#[doc = "! Debug logging level, most verbose logging level"]
InfoLog = 1,
#[doc = "! Information logging level, default logging level"]
WarningLog = 2,
#[doc = "! Warning logging level, messages show with warning icon in the UI"]
ErrorLog = 3,
#[doc = "! Error logging level, messages show with error icon in the UI"]
AlertLog = 4,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNEndianness {
LittleEndian = 0,
BigEndian = 1,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNModificationStatus {
Original = 0,
Changed = 1,
Inserted = 2,
}
#[repr(u16)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNTransformType {
#[doc = " Two-way transform of data, binary input/output"]
BinaryCodecTransform = 0,
#[doc = " Two-way transform of data, encoder output is text"]
TextCodecTransform = 1,
#[doc = " Two-way transform of data, encoder output is Unicode string (as UTF8)"]
UnicodeCodecTransform = 2,
#[doc = " One-way decode only"]
DecodeTransform = 3,
#[doc = " One-way encode only, output is binary"]
BinaryEncodeTransform = 4,
#[doc = " One-way encode only, output is text"]
TextEncodeTransform = 5,
#[doc = " Two-way encryption"]
EncryptTransform = 6,
#[doc = " Transform that can be undone by performing twice"]
InvertingTransform = 7,
#[doc = " Hash function"]
HashTransform = 8,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNTransformSessionMode {
#[doc = " Open the root file as-is (no unwrapping)"]
TransformSessionModeDisabled = 0,
#[doc = " Discover all paths (build the full context tree)"]
TransformSessionModeFull = 1,
#[doc = " Interactively request selection at each level of the container hierarchy"]
TransformSessionModeInteractive = 2,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNTransformResult {
TransformSuccess = 0,
TransformNotAttempted = 1,
TransformFailure = 2,
TransformRequiresPassword = 3,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNBranchType {
UnconditionalBranch = 0,
FalseBranch = 1,
TrueBranch = 2,
CallDestination = 3,
FunctionReturn = 4,
SystemCall = 5,
IndirectBranch = 6,
ExceptionBranch = 7,
UnresolvedBranch = 127,
UserDefinedBranch = 128,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNInstructionTextTokenType {
TextToken = 0,
InstructionToken = 1,
OperandSeparatorToken = 2,
RegisterToken = 3,
IntegerToken = 4,
PossibleAddressToken = 5,
BeginMemoryOperandToken = 6,
EndMemoryOperandToken = 7,
FloatingPointToken = 8,
AnnotationToken = 9,
CodeRelativeAddressToken = 10,
ArgumentNameToken = 11,
HexDumpByteValueToken = 12,
HexDumpSkippedByteToken = 13,
HexDumpInvalidByteToken = 14,
HexDumpTextToken = 15,
OpcodeToken = 16,
StringToken = 17,
CharacterConstantToken = 18,
KeywordToken = 19,
TypeNameToken = 20,
FieldNameToken = 21,
NameSpaceToken = 22,
NameSpaceSeparatorToken = 23,
TagToken = 24,
StructOffsetToken = 25,
StructOffsetByteValueToken = 26,
StructureHexDumpTextToken = 27,
GotoLabelToken = 28,
CommentToken = 29,
PossibleValueToken = 30,
PossibleValueTypeToken = 31,
ArrayIndexToken = 32,
IndentationToken = 33,
UnknownMemoryToken = 34,
EnumerationMemberToken = 35,
OperationToken = 36,
BaseStructureNameToken = 37,
BaseStructureSeparatorToken = 38,
BraceToken = 39,
#[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
CodeSymbolToken = 64,
#[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
DataSymbolToken = 65,
#[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
LocalVariableToken = 66,
#[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
ImportToken = 67,
#[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
AddressDisplayToken = 68,
#[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
IndirectImportToken = 69,
#[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
ExternalSymbolToken = 70,
#[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
StackVariableToken = 71,
#[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
AddressSeparatorToken = 72,
#[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
CollapsedInformationToken = 73,
#[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
CollapseStateIndicatorToken = 74,
#[doc = " The following are output by the analysis system automatically, these should\n not be used directly by the architecture plugins"]
NewLineToken = 75,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNInstructionTextTokenContext {
NoTokenContext = 0,
LocalVariableTokenContext = 1,
DataVariableTokenContext = 2,
FunctionReturnTokenContext = 3,
InstructionAddressTokenContext = 4,
ILInstructionIndexTokenContext = 5,
#[doc = " For Const Data arrays"]
ConstDataTokenContext = 6,
#[doc = " For ConstData strings"]
ConstStringDataTokenContext = 7,
#[doc = " For References to strings"]
StringReferenceTokenContext = 8,
#[doc = " For String DataVariables"]
StringDataVariableTokenContext = 9,
#[doc = " For displaying strings which aren't associated with an address"]
StringDisplayTokenContext = 10,
ContentCollapsedContext = 11,
ContentExpandedContext = 12,
ContentCollapsiblePadding = 13,
DerivedStringReferenceTokenContext = 14,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNLinearDisassemblyLineType {
BlankLineType = 0,
BasicLineType = 1,
CodeDisassemblyLineType = 2,
DataVariableLineType = 3,
HexDumpLineType = 4,
FunctionHeaderLineType = 5,
FunctionHeaderStartLineType = 6,
FunctionHeaderEndLineType = 7,
FunctionContinuationLineType = 8,
LocalVariableLineType = 9,
LocalVariableListEndLineType = 10,
FunctionEndLineType = 11,
NoteStartLineType = 12,
NoteLineType = 13,
NoteEndLineType = 14,
SectionStartLineType = 15,
SectionEndLineType = 16,
SectionSeparatorLineType = 17,
NonContiguousSeparatorLineType = 18,
AnalysisWarningLineType = 19,
CollapsedFunctionEndLineType = 20,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNTokenEscapingType {
NoTokenEscapingType = 0,
BackticksTokenEscapingType = 1,
QuotedStringEscapingType = 2,
ReplaceInvalidCharsEscapingType = 3,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNSymbolType {
FunctionSymbol = 0,
ImportAddressSymbol = 1,
ImportedFunctionSymbol = 2,
DataSymbol = 3,
ImportedDataSymbol = 4,
ExternalSymbol = 5,
LibraryFunctionSymbol = 6,
SymbolicFunctionSymbol = 7,
LocalLabelSymbol = 8,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNSymbolBinding {
NoBinding = 0,
LocalBinding = 1,
GlobalBinding = 2,
WeakBinding = 3,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNLowLevelILOperation {
LLIL_NOP = 0,
#[doc = " Not valid in SSA form (see LLIL_SET_REG_SSA)"]
LLIL_SET_REG = 1,
#[doc = " Not valid in SSA form (see LLIL_SET_REG_SPLIT_SSA)"]
LLIL_SET_REG_SPLIT = 2,
#[doc = " Not valid in SSA form (see LLIL_SET_FLAG_SSA)"]
LLIL_SET_FLAG = 3,
#[doc = " Not valid in SSA form (see LLIL_SET_REG_STACK_REL_SSA)"]
LLIL_SET_REG_STACK_REL = 4,
#[doc = " Not valid in SSA form (expanded)"]
LLIL_REG_STACK_PUSH = 5,
LLIL_ASSERT = 6,
LLIL_FORCE_VER = 7,
#[doc = " Not valid in SSA form (see LLIL_LOAD_SSA)"]
LLIL_LOAD = 8,
#[doc = " Not valid in SSA form (see LLIL_STORE_SSA)"]
LLIL_STORE = 9,
#[doc = " Not valid in SSA form (expanded)"]
LLIL_PUSH = 10,
#[doc = " Not valid in SSA form (expanded)"]
LLIL_POP = 11,
#[doc = " Not valid in SSA form (see LLIL_REG_SSA)"]
LLIL_REG = 12,
#[doc = " Not valid in SSA form (see LLIL_REG_SPLIT_SSA)"]
LLIL_REG_SPLIT = 13,
#[doc = " Not valid in SSA form (see LLIL_REG_STACK_REL_SSA)"]
LLIL_REG_STACK_REL = 14,
#[doc = " Not valid in SSA form (expanded)"]
LLIL_REG_STACK_POP = 15,
#[doc = " Not valid in SSA form (see LLIL_REG_STACK_FREE_REL_SSA,\n LLIL_REG_STACK_FREE_ABS_SSA)"]
LLIL_REG_STACK_FREE_REG = 16,
#[doc = " Not valid in SSA from (see LLIL_REG_STACK_FREE_REL_SSA)"]
LLIL_REG_STACK_FREE_REL = 17,
LLIL_CONST = 18,
LLIL_CONST_PTR = 19,
LLIL_EXTERN_PTR = 20,
LLIL_FLOAT_CONST = 21,
#[doc = " Not valid in SSA form (see LLIL_FLAG_SSA)"]
LLIL_FLAG = 22,
#[doc = " Not valid in SSA form (see LLIL_FLAG_BIT_SSA)"]
LLIL_FLAG_BIT = 23,
LLIL_ADD = 24,
LLIL_ADC = 25,
LLIL_SUB = 26,
LLIL_SBB = 27,
LLIL_AND = 28,
LLIL_OR = 29,
LLIL_XOR = 30,
LLIL_LSL = 31,
LLIL_LSR = 32,
LLIL_ASR = 33,
LLIL_ROL = 34,
LLIL_RLC = 35,
LLIL_ROR = 36,
LLIL_RRC = 37,
LLIL_MUL = 38,
LLIL_MULU_DP = 39,
LLIL_MULS_DP = 40,
LLIL_DIVU = 41,
LLIL_DIVU_DP = 42,
LLIL_DIVS = 43,
LLIL_DIVS_DP = 44,
LLIL_MODU = 45,
LLIL_MODU_DP = 46,
LLIL_MODS = 47,
LLIL_MODS_DP = 48,
LLIL_NEG = 49,
LLIL_NOT = 50,
LLIL_SX = 51,
LLIL_ZX = 52,
LLIL_LOW_PART = 53,
LLIL_JUMP = 54,
LLIL_JUMP_TO = 55,
LLIL_CALL = 56,
LLIL_CALL_STACK_ADJUST = 57,
LLIL_TAILCALL = 58,
LLIL_RET = 59,
LLIL_NORET = 60,
LLIL_IF = 61,
LLIL_GOTO = 62,
#[doc = " Valid only in Lifted IL"]
LLIL_FLAG_COND = 63,
#[doc = " Valid only in Lifted IL"]
LLIL_FLAG_GROUP = 64,
LLIL_CMP_E = 65,
LLIL_CMP_NE = 66,
LLIL_CMP_SLT = 67,
LLIL_CMP_ULT = 68,
LLIL_CMP_SLE = 69,
LLIL_CMP_ULE = 70,
LLIL_CMP_SGE = 71,
LLIL_CMP_UGE = 72,
LLIL_CMP_SGT = 73,
LLIL_CMP_UGT = 74,
LLIL_TEST_BIT = 75,
LLIL_BOOL_TO_INT = 76,
LLIL_ADD_OVERFLOW = 77,
LLIL_SYSCALL = 78,
LLIL_BP = 79,
LLIL_TRAP = 80,
LLIL_INTRINSIC = 81,
LLIL_UNDEF = 82,
LLIL_UNIMPL = 83,
LLIL_UNIMPL_MEM = 84,
#[doc = " Floating point"]
LLIL_FADD = 85,
#[doc = " Floating point"]
LLIL_FSUB = 86,
#[doc = " Floating point"]
LLIL_FMUL = 87,
#[doc = " Floating point"]
LLIL_FDIV = 88,
#[doc = " Floating point"]
LLIL_FSQRT = 89,
#[doc = " Floating point"]
LLIL_FNEG = 90,
#[doc = " Floating point"]
LLIL_FABS = 91,
#[doc = " Floating point"]
LLIL_FLOAT_TO_INT = 92,
#[doc = " Floating point"]
LLIL_INT_TO_FLOAT = 93,
#[doc = " Floating point"]
LLIL_FLOAT_CONV = 94,
#[doc = " Floating point"]
LLIL_ROUND_TO_INT = 95,
#[doc = " Floating point"]
LLIL_FLOOR = 96,
#[doc = " Floating point"]
LLIL_CEIL = 97,
#[doc = " Floating point"]
LLIL_FTRUNC = 98,
#[doc = " Floating point"]
LLIL_FCMP_E = 99,
#[doc = " Floating point"]
LLIL_FCMP_NE = 100,
#[doc = " Floating point"]
LLIL_FCMP_LT = 101,
#[doc = " Floating point"]
LLIL_FCMP_LE = 102,
#[doc = " Floating point"]
LLIL_FCMP_GE = 103,
#[doc = " Floating point"]
LLIL_FCMP_GT = 104,
#[doc = " Floating point"]
LLIL_FCMP_O = 105,
#[doc = " Floating point"]
LLIL_FCMP_UO = 106,
#[doc = " The following instructions are only used in SSA form"]
LLIL_SET_REG_SSA = 107,
#[doc = " The following instructions are only used in SSA form"]
LLIL_SET_REG_SSA_PARTIAL = 108,
#[doc = " The following instructions are only used in SSA form"]
LLIL_SET_REG_SPLIT_SSA = 109,
#[doc = " The following instructions are only used in SSA form"]
LLIL_SET_REG_STACK_REL_SSA = 110,
#[doc = " The following instructions are only used in SSA form"]
LLIL_SET_REG_STACK_ABS_SSA = 111,
#[doc = " Only valid within an LLIL_SET_REG_SPLIT_SSA instruction"]
LLIL_REG_SPLIT_DEST_SSA = 112,
#[doc = " Only valid within LLIL_SET_REG_STACK_REL_SSA or LLIL_SET_REG_STACK_ABS_SSA"]
LLIL_REG_STACK_DEST_SSA = 113,
LLIL_REG_SSA = 114,
LLIL_REG_SSA_PARTIAL = 115,
LLIL_REG_SPLIT_SSA = 116,
LLIL_REG_STACK_REL_SSA = 117,
LLIL_REG_STACK_ABS_SSA = 118,
LLIL_REG_STACK_FREE_REL_SSA = 119,
LLIL_REG_STACK_FREE_ABS_SSA = 120,
LLIL_SET_FLAG_SSA = 121,
LLIL_ASSERT_SSA = 122,
LLIL_FORCE_VER_SSA = 123,
LLIL_FLAG_SSA = 124,
LLIL_FLAG_BIT_SSA = 125,
LLIL_CALL_SSA = 126,
LLIL_SYSCALL_SSA = 127,
LLIL_TAILCALL_SSA = 128,
#[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"]
LLIL_CALL_PARAM = 129,
#[doc = " Only valid within the LLIL_CALL_SSA or LLIL_SYSCALL_SSA instructions"]
LLIL_CALL_STACK_SSA = 130,
#[doc = " Only valid within the LLIL_CALL_SSA or LLIL_SYSCALL_SSA instructions"]
LLIL_CALL_OUTPUT_SSA = 131,
#[doc = " Only valid within the LLIL_CALL_PARAM instruction"]
LLIL_SEPARATE_PARAM_LIST_SSA = 132,
#[doc = " Only valid within the LLIL_CALL_PARAM or LLIL_SEPARATE_PARAM_LIST_SSA instructions"]
LLIL_SHARED_PARAM_SLOT_SSA = 133,
#[doc = " Only valid within the LLIL_MEMORY_INTRINSIC_SSA instruction"]
LLIL_MEMORY_INTRINSIC_OUTPUT_SSA = 134,
LLIL_LOAD_SSA = 135,
LLIL_STORE_SSA = 136,
LLIL_INTRINSIC_SSA = 137,
LLIL_MEMORY_INTRINSIC_SSA = 138,
LLIL_REG_PHI = 139,
LLIL_REG_STACK_PHI = 140,
LLIL_FLAG_PHI = 141,
LLIL_MEM_PHI = 142,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNLowLevelILFlagCondition {
LLFC_E = 0,
LLFC_NE = 1,
LLFC_SLT = 2,
LLFC_ULT = 3,
LLFC_SLE = 4,
LLFC_ULE = 5,
LLFC_SGE = 6,
LLFC_UGE = 7,
LLFC_SGT = 8,
LLFC_UGT = 9,
LLFC_NEG = 10,
LLFC_POS = 11,
LLFC_O = 12,
LLFC_NO = 13,
LLFC_FE = 14,
LLFC_FNE = 15,
LLFC_FLT = 16,
LLFC_FLE = 17,
LLFC_FGE = 18,
LLFC_FGT = 19,
LLFC_FO = 20,
LLFC_FUO = 21,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNFlagRole {
SpecialFlagRole = 0,
ZeroFlagRole = 1,
PositiveSignFlagRole = 2,
NegativeSignFlagRole = 3,
CarryFlagRole = 4,
OverflowFlagRole = 5,
HalfCarryFlagRole = 6,
EvenParityFlagRole = 7,
OddParityFlagRole = 8,
OrderedFlagRole = 9,
UnorderedFlagRole = 10,
CarryFlagWithInvertedSubtractRole = 11,
}
#[repr(i8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNFunctionGraphType {
InvalidILViewType = -1,
NormalFunctionGraph = 0,
LowLevelILFunctionGraph = 1,
LiftedILFunctionGraph = 2,
LowLevelILSSAFormFunctionGraph = 3,
MediumLevelILFunctionGraph = 4,
MediumLevelILSSAFormFunctionGraph = 5,
MappedMediumLevelILFunctionGraph = 6,
MappedMediumLevelILSSAFormFunctionGraph = 7,
HighLevelILFunctionGraph = 8,
HighLevelILSSAFormFunctionGraph = 9,
HighLevelLanguageRepresentationFunctionGraph = 10,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNFunctionViewType {
pub type_: BNFunctionGraphType,
#[doc = " Only used for HighLevelLanguageRepresentationFunctionGraph"]
pub name: *const ::std::os::raw::c_char,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNFunctionViewType"][::std::mem::size_of::<BNFunctionViewType>() - 16usize];
["Alignment of BNFunctionViewType"][::std::mem::align_of::<BNFunctionViewType>() - 8usize];
["Offset of field: BNFunctionViewType::type_"]
[::std::mem::offset_of!(BNFunctionViewType, type_) - 0usize];
["Offset of field: BNFunctionViewType::name"]
[::std::mem::offset_of!(BNFunctionViewType, name) - 8usize];
};
impl Default for BNFunctionViewType {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNDisassemblyOption {
ShowAddress = 0,
ShowOpcode = 1,
ExpandLongOpcode = 2,
ShowVariablesAtTopOfGraph = 3,
ShowVariableTypesWhenAssigned = 4,
ShowRegisterHighlight = 7,
ShowFunctionAddress = 8,
ShowFunctionHeader = 9,
ShowTypeCasts = 10,
#[doc = " Linear disassembly options"]
GroupLinearDisassemblyFunctions = 64,
#[doc = " Linear disassembly options"]
HighLevelILLinearDisassembly = 65,
#[doc = " Linear disassembly options"]
WaitForIL = 66,
#[doc = " Linear disassembly options"]
IndentHLILBody = 67,
#[doc = " Linear disassembly options"]
DisableLineFormatting = 68,
#[doc = " Debugging options"]
ShowFlagUsage = 128,
#[doc = " Debugging options"]
ShowStackPointer = 129,
#[doc = " Debugging options"]
ShowILTypes = 130,
#[doc = " Debugging options"]
ShowILOpcodes = 131,
#[doc = " Debugging options"]
ShowCollapseIndicators = 132,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNDisassemblyAddressMode {
AbsoluteDisassemblyAddressMode = 0,
RelativeToBinaryStartDisassemblyAddressMode = 1,
RelativeToSegmentStartDisassemblyAddressMode = 2,
RelativeToSectionStartDisassemblyAddressMode = 3,
RelativeToFunctionStartDisassemblyAddressMode = 4,
RelativeToAddressBaseOffsetDisassemblyAddressMode = 5,
RelativeToDataStartDisassemblyAddressMode = 6,
DisassemblyAddressModeMask = 65535,
IncludeNameDisassemblyAddressModeFlag = 65536,
DecimalDisassemblyAddressModeFlag = 131072,
DisassemblyAddressModeFlagsMask = 4294901760,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNDisassemblyCallParameterHints {
NeverShowMatchingParameterHints = 0,
AlwaysShowParameterHints = 1,
NeverShowParameterHints = 2,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNDisassemblyBlockLabels {
NeverShowDefaultBlockLabels = 0,
AlwaysShowBlockLabels = 1,
NeverShowBlockLabels = 2,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNTypeClass {
VoidTypeClass = 0,
BoolTypeClass = 1,
IntegerTypeClass = 2,
FloatTypeClass = 3,
StructureTypeClass = 4,
EnumerationTypeClass = 5,
PointerTypeClass = 6,
ArrayTypeClass = 7,
FunctionTypeClass = 8,
VarArgsTypeClass = 9,
ValueTypeClass = 10,
NamedTypeReferenceClass = 11,
WideCharTypeClass = 12,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNNamedTypeReferenceClass {
UnknownNamedTypeClass = 0,
TypedefNamedTypeClass = 1,
ClassNamedTypeClass = 2,
StructNamedTypeClass = 3,
UnionNamedTypeClass = 4,
EnumNamedTypeClass = 5,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNStructureVariant {
ClassStructureType = 0,
StructStructureType = 1,
UnionStructureType = 2,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNMemberScope {
NoScope = 0,
StaticScope = 1,
VirtualScope = 2,
ThunkScope = 3,
FriendScope = 4,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNMemberAccess {
NoAccess = 0,
PrivateAccess = 1,
ProtectedAccess = 2,
PublicAccess = 3,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNReferenceType {
PointerReferenceType = 0,
ReferenceReferenceType = 1,
RValueReferenceType = 2,
NoReference = 3,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNPointerSuffix {
Ptr64Suffix = 0,
UnalignedSuffix = 1,
RestrictSuffix = 2,
ReferenceSuffix = 3,
LvalueSuffix = 4,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNPointerBaseType {
AbsolutePointerBaseType = 0,
RelativeToConstantPointerBaseType = 1,
RelativeToBinaryStartPointerBaseType = 2,
RelativeToVariableAddressPointerBaseType = 3,
}
#[repr(u8)]
#[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"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNNameType {
NoNameType = 0,
ConstructorNameType = 1,
DestructorNameType = 2,
OperatorNewNameType = 3,
OperatorDeleteNameType = 4,
OperatorAssignNameType = 5,
OperatorRightShiftNameType = 6,
OperatorLeftShiftNameType = 7,
OperatorNotNameType = 8,
OperatorEqualNameType = 9,
OperatorNotEqualNameType = 10,
OperatorArrayNameType = 11,
OperatorArrowNameType = 12,
OperatorStarNameType = 13,
OperatorIncrementNameType = 14,
OperatorDecrementNameType = 15,
OperatorMinusNameType = 16,
OperatorPlusNameType = 17,
OperatorBitAndNameType = 18,
OperatorArrowStarNameType = 19,
OperatorDivideNameType = 20,
OperatorModulusNameType = 21,
OperatorLessThanNameType = 22,
OperatorLessThanEqualNameType = 23,
OperatorGreaterThanNameType = 24,
OperatorGreaterThanEqualNameType = 25,
OperatorCommaNameType = 26,
OperatorParenthesesNameType = 27,
OperatorTildeNameType = 28,
OperatorXorNameType = 29,
OperatorBitOrNameType = 30,
OperatorLogicalAndNameType = 31,
OperatorLogicalOrNameType = 32,
OperatorStarEqualNameType = 33,
OperatorPlusEqualNameType = 34,
OperatorMinusEqualNameType = 35,
OperatorDivideEqualNameType = 36,
OperatorModulusEqualNameType = 37,
OperatorRightShiftEqualNameType = 38,
OperatorLeftShiftEqualNameType = 39,
OperatorAndEqualNameType = 40,
OperatorOrEqualNameType = 41,
OperatorXorEqualNameType = 42,
VFTableNameType = 43,
VBTableNameType = 44,
VCallNameType = 45,
TypeofNameType = 46,
LocalStaticGuardNameType = 47,
StringNameType = 48,
VBaseDestructorNameType = 49,
VectorDeletingDestructorNameType = 50,
DefaultConstructorClosureNameType = 51,
ScalarDeletingDestructorNameType = 52,
VectorConstructorIteratorNameType = 53,
VectorDestructorIteratorNameType = 54,
VectorVBaseConstructorIteratorNameType = 55,
VirtualDisplacementMapNameType = 56,
EHVectorConstructorIteratorNameType = 57,
EHVectorDestructorIteratorNameType = 58,
EHVectorVBaseConstructorIteratorNameType = 59,
CopyConstructorClosureNameType = 60,
UDTReturningNameType = 61,
LocalVFTableNameType = 62,
LocalVFTableConstructorClosureNameType = 63,
OperatorNewArrayNameType = 64,
OperatorDeleteArrayNameType = 65,
PlacementDeleteClosureNameType = 66,
PlacementDeleteClosureArrayNameType = 67,
OperatorReturnTypeNameType = 68,
RttiTypeDescriptor = 69,
RttiBaseClassDescriptor = 70,
RttiBaseClassArray = 71,
RttiClassHierarchyDescriptor = 72,
RttiCompleteObjectLocator = 73,
OperatorUnaryMinusNameType = 74,
OperatorUnaryPlusNameType = 75,
OperatorUnaryBitAndNameType = 76,
OperatorUnaryStarNameType = 77,
OmniCallSigNameType = 78,
ManagedVectorConstructorIteratorNameType = 79,
ManagedVectorDestructorIteratorNameType = 80,
EHVectorCopyConstructorIteratorNameType = 81,
EHVectorVBaseCopyConstructorIteratorNameType = 82,
DynamicInitializerNameType = 83,
DynamicAtExitDestructorNameType = 84,
VectorCopyConstructorIteratorNameType = 85,
VectorVBaseCopyConstructorIteratorNameType = 86,
ManagedVectorCopyConstructorIteratorNameType = 87,
LocalStaticThreadGuardNameType = 88,
UserDefinedLiteralOperatorNameType = 89,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNCallingConventionName {
NoCallingConvention = 0,
CdeclCallingConvention = 1,
PascalCallingConvention = 2,
ThisCallCallingConvention = 3,
STDCallCallingConvention = 4,
FastcallCallingConvention = 5,
CLRCallCallingConvention = 6,
EabiCallCallingConvention = 7,
VectorCallCallingConvention = 8,
SwiftCallingConvention = 9,
SwiftAsyncCallingConvention = 10,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNStringType {
AsciiString = 0,
Utf16String = 1,
Utf32String = 2,
Utf8String = 3,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNIntegerDisplayType {
DefaultIntegerDisplayType = 0,
BinaryDisplayType = 1,
SignedOctalDisplayType = 2,
UnsignedOctalDisplayType = 3,
SignedDecimalDisplayType = 4,
UnsignedDecimalDisplayType = 5,
SignedHexadecimalDisplayType = 6,
UnsignedHexadecimalDisplayType = 7,
CharacterConstantDisplayType = 8,
PointerDisplayType = 9,
FloatDisplayType = 10,
DoubleDisplayType = 11,
EnumerationDisplayType = 12,
InvertedCharacterConstantDisplayType = 13,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNFlowGraphOption {
FlowGraphUsesBlockHighlights = 0,
FlowGraphUsesInstructionHighlights = 1,
FlowGraphIncludesUserComments = 2,
FlowGraphAllowsPatching = 3,
FlowGraphAllowsInlineInstructionEditing = 4,
FlowGraphShowsSecondaryRegisterHighlighting = 5,
FlowGraphIsAddressable = 6,
FlowGraphIsWorkflowGraph = 7,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNIntrinsicClass {
GeneralIntrinsicClass = 0,
MemoryIntrinsicClass = 1,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNLowLevelILInstruction {
pub operation: BNLowLevelILOperation,
pub attributes: u32,
pub size: usize,
pub flags: u32,
pub sourceOperand: u32,
pub operands: [u64; 4usize],
pub address: u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNLowLevelILInstruction"][::std::mem::size_of::<BNLowLevelILInstruction>() - 64usize];
["Alignment of BNLowLevelILInstruction"]
[::std::mem::align_of::<BNLowLevelILInstruction>() - 8usize];
["Offset of field: BNLowLevelILInstruction::operation"]
[::std::mem::offset_of!(BNLowLevelILInstruction, operation) - 0usize];
["Offset of field: BNLowLevelILInstruction::attributes"]
[::std::mem::offset_of!(BNLowLevelILInstruction, attributes) - 4usize];
["Offset of field: BNLowLevelILInstruction::size"]
[::std::mem::offset_of!(BNLowLevelILInstruction, size) - 8usize];
["Offset of field: BNLowLevelILInstruction::flags"]
[::std::mem::offset_of!(BNLowLevelILInstruction, flags) - 16usize];
["Offset of field: BNLowLevelILInstruction::sourceOperand"]
[::std::mem::offset_of!(BNLowLevelILInstruction, sourceOperand) - 20usize];
["Offset of field: BNLowLevelILInstruction::operands"]
[::std::mem::offset_of!(BNLowLevelILInstruction, operands) - 24usize];
["Offset of field: BNLowLevelILInstruction::address"]
[::std::mem::offset_of!(BNLowLevelILInstruction, address) - 56usize];
};
impl Default for BNLowLevelILInstruction {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct BNLowLevelILLabel {
pub resolved: bool,
pub ref_: usize,
pub operand: usize,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNLowLevelILLabel"][::std::mem::size_of::<BNLowLevelILLabel>() - 24usize];
["Alignment of BNLowLevelILLabel"][::std::mem::align_of::<BNLowLevelILLabel>() - 8usize];
["Offset of field: BNLowLevelILLabel::resolved"]
[::std::mem::offset_of!(BNLowLevelILLabel, resolved) - 0usize];
["Offset of field: BNLowLevelILLabel::ref_"]
[::std::mem::offset_of!(BNLowLevelILLabel, ref_) - 8usize];
["Offset of field: BNLowLevelILLabel::operand"]
[::std::mem::offset_of!(BNLowLevelILLabel, operand) - 16usize];
};
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNImplicitRegisterExtend {
NoExtend = 0,
ZeroExtendToFullWidth = 1,
SignExtendToFullWidth = 2,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNRegisterInfo {
pub fullWidthRegister: u32,
pub offset: usize,
pub size: usize,
pub extend: BNImplicitRegisterExtend,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNRegisterInfo"][::std::mem::size_of::<BNRegisterInfo>() - 32usize];
["Alignment of BNRegisterInfo"][::std::mem::align_of::<BNRegisterInfo>() - 8usize];
["Offset of field: BNRegisterInfo::fullWidthRegister"]
[::std::mem::offset_of!(BNRegisterInfo, fullWidthRegister) - 0usize];
["Offset of field: BNRegisterInfo::offset"]
[::std::mem::offset_of!(BNRegisterInfo, offset) - 8usize];
["Offset of field: BNRegisterInfo::size"]
[::std::mem::offset_of!(BNRegisterInfo, size) - 16usize];
["Offset of field: BNRegisterInfo::extend"]
[::std::mem::offset_of!(BNRegisterInfo, extend) - 24usize];
};
impl Default for BNRegisterInfo {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct BNRegisterStackInfo {
pub firstStorageReg: u32,
pub firstTopRelativeReg: u32,
pub storageCount: u32,
pub topRelativeCount: u32,
pub stackTopReg: u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNRegisterStackInfo"][::std::mem::size_of::<BNRegisterStackInfo>() - 20usize];
["Alignment of BNRegisterStackInfo"][::std::mem::align_of::<BNRegisterStackInfo>() - 4usize];
["Offset of field: BNRegisterStackInfo::firstStorageReg"]
[::std::mem::offset_of!(BNRegisterStackInfo, firstStorageReg) - 0usize];
["Offset of field: BNRegisterStackInfo::firstTopRelativeReg"]
[::std::mem::offset_of!(BNRegisterStackInfo, firstTopRelativeReg) - 4usize];
["Offset of field: BNRegisterStackInfo::storageCount"]
[::std::mem::offset_of!(BNRegisterStackInfo, storageCount) - 8usize];
["Offset of field: BNRegisterStackInfo::topRelativeCount"]
[::std::mem::offset_of!(BNRegisterStackInfo, topRelativeCount) - 12usize];
["Offset of field: BNRegisterStackInfo::stackTopReg"]
[::std::mem::offset_of!(BNRegisterStackInfo, stackTopReg) - 16usize];
};
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNRegisterValueType {
UndeterminedValue = 0,
EntryValue = 1,
ConstantValue = 2,
ConstantPointerValue = 3,
ExternalPointerValue = 4,
StackFrameOffset = 5,
ReturnAddressValue = 6,
ImportedAddressValue = 7,
#[doc = " The following are only valid in BNPossibleValueSet"]
SignedRangeValue = 8,
#[doc = " The following are only valid in BNPossibleValueSet"]
UnsignedRangeValue = 9,
#[doc = " The following are only valid in BNPossibleValueSet"]
LookupTableValue = 10,
#[doc = " The following are only valid in BNPossibleValueSet"]
InSetOfValues = 11,
#[doc = " The following are only valid in BNPossibleValueSet"]
NotInSetOfValues = 12,
#[doc = " The following support constant data and values larger than 8 bytes"]
ConstantDataValue = 32768,
#[doc = " The following support constant data and values larger than 8 bytes"]
ConstantDataZeroExtendValue = 32769,
#[doc = " The following support constant data and values larger than 8 bytes"]
ConstantDataSignExtendValue = 32770,
#[doc = " The following support constant data and values larger than 8 bytes"]
ConstantDataAggregateValue = 32771,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNDataFlowQueryOption {
#[doc = " Use addresses instead of index in the from list within\n LookupTableValue results"]
FromAddressesInLookupTableQueryOption = 0,
AllowReadingWritableMemoryQueryOption = 1,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNPluginStatus {
NotInstalledPluginStatus = 0,
InstalledPluginStatus = 1,
EnabledPluginStatus = 2,
UpdateAvailablePluginStatus = 16,
DeletePendingPluginStatus = 32,
UpdatePendingPluginStatus = 64,
DisablePendingPluginStatus = 128,
PendingRestartPluginStatus = 512,
BeingUpdatedPluginStatus = 1024,
BeingDeletedPluginStatus = 2048,
DependenciesBeingInstalledStatus = 4096,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNPluginType {
CorePluginType = 0,
UiPluginType = 1,
ArchitecturePluginType = 2,
BinaryViewPluginType = 3,
HelperPluginType = 4,
SyncPluginType = 5,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNLookupTableEntry {
pub fromValues: *mut i64,
pub fromCount: usize,
pub toValue: i64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNLookupTableEntry"][::std::mem::size_of::<BNLookupTableEntry>() - 24usize];
["Alignment of BNLookupTableEntry"][::std::mem::align_of::<BNLookupTableEntry>() - 8usize];
["Offset of field: BNLookupTableEntry::fromValues"]
[::std::mem::offset_of!(BNLookupTableEntry, fromValues) - 0usize];
["Offset of field: BNLookupTableEntry::fromCount"]
[::std::mem::offset_of!(BNLookupTableEntry, fromCount) - 8usize];
["Offset of field: BNLookupTableEntry::toValue"]
[::std::mem::offset_of!(BNLookupTableEntry, toValue) - 16usize];
};
impl Default for BNLookupTableEntry {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNRegisterValue {
pub state: BNRegisterValueType,
pub value: i64,
pub offset: i64,
pub size: usize,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNRegisterValue"][::std::mem::size_of::<BNRegisterValue>() - 32usize];
["Alignment of BNRegisterValue"][::std::mem::align_of::<BNRegisterValue>() - 8usize];
["Offset of field: BNRegisterValue::state"]
[::std::mem::offset_of!(BNRegisterValue, state) - 0usize];
["Offset of field: BNRegisterValue::value"]
[::std::mem::offset_of!(BNRegisterValue, value) - 8usize];
["Offset of field: BNRegisterValue::offset"]
[::std::mem::offset_of!(BNRegisterValue, offset) - 16usize];
["Offset of field: BNRegisterValue::size"]
[::std::mem::offset_of!(BNRegisterValue, size) - 24usize];
};
impl Default for BNRegisterValue {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNRegisterValueWithConfidence {
pub value: BNRegisterValue,
pub confidence: u8,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNRegisterValueWithConfidence"]
[::std::mem::size_of::<BNRegisterValueWithConfidence>() - 40usize];
["Alignment of BNRegisterValueWithConfidence"]
[::std::mem::align_of::<BNRegisterValueWithConfidence>() - 8usize];
["Offset of field: BNRegisterValueWithConfidence::value"]
[::std::mem::offset_of!(BNRegisterValueWithConfidence, value) - 0usize];
["Offset of field: BNRegisterValueWithConfidence::confidence"]
[::std::mem::offset_of!(BNRegisterValueWithConfidence, confidence) - 32usize];
};
impl Default for BNRegisterValueWithConfidence {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct BNValueRange {
pub start: u64,
pub end: u64,
pub step: u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNValueRange"][::std::mem::size_of::<BNValueRange>() - 24usize];
["Alignment of BNValueRange"][::std::mem::align_of::<BNValueRange>() - 8usize];
["Offset of field: BNValueRange::start"][::std::mem::offset_of!(BNValueRange, start) - 0usize];
["Offset of field: BNValueRange::end"][::std::mem::offset_of!(BNValueRange, end) - 8usize];
["Offset of field: BNValueRange::step"][::std::mem::offset_of!(BNValueRange, step) - 16usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNPossibleValueSet {
pub state: BNRegisterValueType,
pub value: i64,
pub offset: i64,
pub size: usize,
pub ranges: *mut BNValueRange,
pub valueSet: *mut i64,
pub table: *mut BNLookupTableEntry,
pub count: usize,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNPossibleValueSet"][::std::mem::size_of::<BNPossibleValueSet>() - 64usize];
["Alignment of BNPossibleValueSet"][::std::mem::align_of::<BNPossibleValueSet>() - 8usize];
["Offset of field: BNPossibleValueSet::state"]
[::std::mem::offset_of!(BNPossibleValueSet, state) - 0usize];
["Offset of field: BNPossibleValueSet::value"]
[::std::mem::offset_of!(BNPossibleValueSet, value) - 8usize];
["Offset of field: BNPossibleValueSet::offset"]
[::std::mem::offset_of!(BNPossibleValueSet, offset) - 16usize];
["Offset of field: BNPossibleValueSet::size"]
[::std::mem::offset_of!(BNPossibleValueSet, size) - 24usize];
["Offset of field: BNPossibleValueSet::ranges"]
[::std::mem::offset_of!(BNPossibleValueSet, ranges) - 32usize];
["Offset of field: BNPossibleValueSet::valueSet"]
[::std::mem::offset_of!(BNPossibleValueSet, valueSet) - 40usize];
["Offset of field: BNPossibleValueSet::table"]
[::std::mem::offset_of!(BNPossibleValueSet, table) - 48usize];
["Offset of field: BNPossibleValueSet::count"]
[::std::mem::offset_of!(BNPossibleValueSet, count) - 56usize];
};
impl Default for BNPossibleValueSet {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct BNRegisterOrConstant {
pub constant: bool,
pub reg: u32,
pub value: u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNRegisterOrConstant"][::std::mem::size_of::<BNRegisterOrConstant>() - 16usize];
["Alignment of BNRegisterOrConstant"][::std::mem::align_of::<BNRegisterOrConstant>() - 8usize];
["Offset of field: BNRegisterOrConstant::constant"]
[::std::mem::offset_of!(BNRegisterOrConstant, constant) - 0usize];
["Offset of field: BNRegisterOrConstant::reg"]
[::std::mem::offset_of!(BNRegisterOrConstant, reg) - 4usize];
["Offset of field: BNRegisterOrConstant::value"]
[::std::mem::offset_of!(BNRegisterOrConstant, value) - 8usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNDataVariable {
pub address: u64,
pub type_: *mut BNType,
pub autoDiscovered: bool,
pub typeConfidence: u8,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNDataVariable"][::std::mem::size_of::<BNDataVariable>() - 24usize];
["Alignment of BNDataVariable"][::std::mem::align_of::<BNDataVariable>() - 8usize];
["Offset of field: BNDataVariable::address"]
[::std::mem::offset_of!(BNDataVariable, address) - 0usize];
["Offset of field: BNDataVariable::type_"]
[::std::mem::offset_of!(BNDataVariable, type_) - 8usize];
["Offset of field: BNDataVariable::autoDiscovered"]
[::std::mem::offset_of!(BNDataVariable, autoDiscovered) - 16usize];
["Offset of field: BNDataVariable::typeConfidence"]
[::std::mem::offset_of!(BNDataVariable, typeConfidence) - 17usize];
};
impl Default for BNDataVariable {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNDataVariableAndName {
pub address: u64,
pub type_: *mut BNType,
pub name: *mut ::std::os::raw::c_char,
pub autoDiscovered: bool,
pub typeConfidence: u8,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNDataVariableAndName"][::std::mem::size_of::<BNDataVariableAndName>() - 32usize];
["Alignment of BNDataVariableAndName"]
[::std::mem::align_of::<BNDataVariableAndName>() - 8usize];
["Offset of field: BNDataVariableAndName::address"]
[::std::mem::offset_of!(BNDataVariableAndName, address) - 0usize];
["Offset of field: BNDataVariableAndName::type_"]
[::std::mem::offset_of!(BNDataVariableAndName, type_) - 8usize];
["Offset of field: BNDataVariableAndName::name"]
[::std::mem::offset_of!(BNDataVariableAndName, name) - 16usize];
["Offset of field: BNDataVariableAndName::autoDiscovered"]
[::std::mem::offset_of!(BNDataVariableAndName, autoDiscovered) - 24usize];
["Offset of field: BNDataVariableAndName::typeConfidence"]
[::std::mem::offset_of!(BNDataVariableAndName, typeConfidence) - 25usize];
};
impl Default for BNDataVariableAndName {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNDataVariableAndNameAndDebugParser {
pub address: u64,
pub type_: *mut BNType,
pub name: *mut ::std::os::raw::c_char,
pub parser: *mut ::std::os::raw::c_char,
pub autoDiscovered: bool,
pub typeConfidence: u8,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNDataVariableAndNameAndDebugParser"]
[::std::mem::size_of::<BNDataVariableAndNameAndDebugParser>() - 40usize];
["Alignment of BNDataVariableAndNameAndDebugParser"]
[::std::mem::align_of::<BNDataVariableAndNameAndDebugParser>() - 8usize];
["Offset of field: BNDataVariableAndNameAndDebugParser::address"]
[::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, address) - 0usize];
["Offset of field: BNDataVariableAndNameAndDebugParser::type_"]
[::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, type_) - 8usize];
["Offset of field: BNDataVariableAndNameAndDebugParser::name"]
[::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, name) - 16usize];
["Offset of field: BNDataVariableAndNameAndDebugParser::parser"]
[::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, parser) - 24usize];
["Offset of field: BNDataVariableAndNameAndDebugParser::autoDiscovered"]
[::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, autoDiscovered) - 32usize];
["Offset of field: BNDataVariableAndNameAndDebugParser::typeConfidence"]
[::std::mem::offset_of!(BNDataVariableAndNameAndDebugParser, typeConfidence) - 33usize];
};
impl Default for BNDataVariableAndNameAndDebugParser {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNMediumLevelILOperation {
MLIL_NOP = 0,
#[doc = " Not valid in SSA form (see MLIL_SET_VAR_SSA)"]
MLIL_SET_VAR = 1,
#[doc = " Not valid in SSA form (see MLIL_SET_VAR_FIELD)"]
MLIL_SET_VAR_FIELD = 2,
#[doc = " Not valid in SSA form (see MLIL_SET_VAR_SPLIT_SSA)"]
MLIL_SET_VAR_SPLIT = 3,
MLIL_ASSERT = 4,
MLIL_FORCE_VER = 5,
#[doc = " Not valid in SSA form (see MLIL_LOAD_SSA)"]
MLIL_LOAD = 6,
#[doc = " Not valid in SSA form (see MLIL_LOAD_STRUCT_SSA)"]
MLIL_LOAD_STRUCT = 7,
#[doc = " Not valid in SSA form (see MLIL_STORE_SSA)"]
MLIL_STORE = 8,
#[doc = " Not valid in SSA form (see MLIL_STORE_STRUCT_SSA)"]
MLIL_STORE_STRUCT = 9,
#[doc = " Not valid in SSA form (see MLIL_VAR_SSA)"]
MLIL_VAR = 10,
#[doc = " Not valid in SSA form (see MLIL_VAR_SSA_FIELD)"]
MLIL_VAR_FIELD = 11,
#[doc = " Not valid in SSA form (see MLIL_VAR_SPLIT_SSA)"]
MLIL_VAR_SPLIT = 12,
MLIL_ADDRESS_OF = 13,
MLIL_ADDRESS_OF_FIELD = 14,
MLIL_CONST = 15,
MLIL_CONST_DATA = 16,
MLIL_CONST_PTR = 17,
MLIL_EXTERN_PTR = 18,
MLIL_FLOAT_CONST = 19,
MLIL_IMPORT = 20,
MLIL_ADD = 21,
MLIL_ADC = 22,
MLIL_SUB = 23,
MLIL_SBB = 24,
MLIL_AND = 25,
MLIL_OR = 26,
MLIL_XOR = 27,
MLIL_LSL = 28,
MLIL_LSR = 29,
MLIL_ASR = 30,
MLIL_ROL = 31,
MLIL_RLC = 32,
MLIL_ROR = 33,
MLIL_RRC = 34,
MLIL_MUL = 35,
MLIL_MULU_DP = 36,
MLIL_MULS_DP = 37,
MLIL_DIVU = 38,
MLIL_DIVU_DP = 39,
MLIL_DIVS = 40,
MLIL_DIVS_DP = 41,
MLIL_MODU = 42,
MLIL_MODU_DP = 43,
MLIL_MODS = 44,
MLIL_MODS_DP = 45,
MLIL_NEG = 46,
MLIL_NOT = 47,
MLIL_SX = 48,
MLIL_ZX = 49,
MLIL_LOW_PART = 50,
MLIL_JUMP = 51,
MLIL_JUMP_TO = 52,
#[doc = " Intermediate stages, does not appear in final forms"]
MLIL_RET_HINT = 53,
#[doc = " Not valid in SSA form (see MLIL_CALL_SSA)"]
MLIL_CALL = 54,
#[doc = " Not valid in SSA form (see MLIL_CALL_UNTYPED_SSA)"]
MLIL_CALL_UNTYPED = 55,
#[doc = " Only valid within MLIL_CALL, MLIL_SYSCALL, MLIL_TAILCALL family instructions"]
MLIL_CALL_OUTPUT = 56,
#[doc = " Only valid within MLIL_CALL, MLIL_SYSCALL, MLIL_TAILCALL family instructions"]
MLIL_CALL_PARAM = 57,
#[doc = " Only valid within the MLIL_CALL_PARAM or MLIL_CALL_PARAM_SSA instructions inside\n untyped call variants"]
MLIL_SEPARATE_PARAM_LIST = 58,
#[doc = " Only valid within the MLIL_CALL_PARAM, MLIL_CALL_PARAM_SSA, or\n MLIL_SEPARATE_PARAM_LIST instructions inside untyped call variants"]
MLIL_SHARED_PARAM_SLOT = 59,
MLIL_RET = 60,
MLIL_NORET = 61,
MLIL_IF = 62,
MLIL_GOTO = 63,
MLIL_CMP_E = 64,
MLIL_CMP_NE = 65,
MLIL_CMP_SLT = 66,
MLIL_CMP_ULT = 67,
MLIL_CMP_SLE = 68,
MLIL_CMP_ULE = 69,
MLIL_CMP_SGE = 70,
MLIL_CMP_UGE = 71,
MLIL_CMP_SGT = 72,
MLIL_CMP_UGT = 73,
MLIL_TEST_BIT = 74,
MLIL_BOOL_TO_INT = 75,
MLIL_ADD_OVERFLOW = 76,
#[doc = " Not valid in SSA form (see MLIL_SYSCALL_SSA)"]
MLIL_SYSCALL = 77,
#[doc = " Not valid in SSA form (see MLIL_SYSCALL_UNTYPED_SSA)"]
MLIL_SYSCALL_UNTYPED = 78,
#[doc = " Not valid in SSA form (see MLIL_TAILCALL_SSA)"]
MLIL_TAILCALL = 79,
#[doc = " Not valid in SSA form (see MLIL_TAILCALL_UNTYPED_SSA)"]
MLIL_TAILCALL_UNTYPED = 80,
#[doc = " Not valid in SSA form (see MLIL_INTRINSIC_SSA)"]
MLIL_INTRINSIC = 81,
#[doc = " Not valid in SSA from (see MLIL_FREE_VAR_SLOT_SSA)"]
MLIL_FREE_VAR_SLOT = 82,
MLIL_BP = 83,
MLIL_TRAP = 84,
MLIL_UNDEF = 85,
MLIL_UNIMPL = 86,
MLIL_UNIMPL_MEM = 87,
#[doc = " Floating point"]
MLIL_FADD = 88,
#[doc = " Floating point"]
MLIL_FSUB = 89,
#[doc = " Floating point"]
MLIL_FMUL = 90,
#[doc = " Floating point"]
MLIL_FDIV = 91,
#[doc = " Floating point"]
MLIL_FSQRT = 92,
#[doc = " Floating point"]
MLIL_FNEG = 93,
#[doc = " Floating point"]
MLIL_FABS = 94,
#[doc = " Floating point"]
MLIL_FLOAT_TO_INT = 95,
#[doc = " Floating point"]
MLIL_INT_TO_FLOAT = 96,
#[doc = " Floating point"]
MLIL_FLOAT_CONV = 97,
#[doc = " Floating point"]
MLIL_ROUND_TO_INT = 98,
#[doc = " Floating point"]
MLIL_FLOOR = 99,
#[doc = " Floating point"]
MLIL_CEIL = 100,
#[doc = " Floating point"]
MLIL_FTRUNC = 101,
#[doc = " Floating point"]
MLIL_FCMP_E = 102,
#[doc = " Floating point"]
MLIL_FCMP_NE = 103,
#[doc = " Floating point"]
MLIL_FCMP_LT = 104,
#[doc = " Floating point"]
MLIL_FCMP_LE = 105,
#[doc = " Floating point"]
MLIL_FCMP_GE = 106,
#[doc = " Floating point"]
MLIL_FCMP_GT = 107,
#[doc = " Floating point"]
MLIL_FCMP_O = 108,
#[doc = " Floating point"]
MLIL_FCMP_UO = 109,
#[doc = " The following instructions are only used in SSA form"]
MLIL_SET_VAR_SSA = 110,
#[doc = " The following instructions are only used in SSA form"]
MLIL_SET_VAR_SSA_FIELD = 111,
#[doc = " The following instructions are only used in SSA form"]
MLIL_SET_VAR_SPLIT_SSA = 112,
#[doc = " The following instructions are only used in SSA form"]
MLIL_SET_VAR_ALIASED = 113,
#[doc = " The following instructions are only used in SSA form"]
MLIL_SET_VAR_ALIASED_FIELD = 114,
#[doc = " The following instructions are only used in SSA form"]
MLIL_VAR_SSA = 115,
#[doc = " The following instructions are only used in SSA form"]
MLIL_VAR_SSA_FIELD = 116,
#[doc = " The following instructions are only used in SSA form"]
MLIL_VAR_ALIASED = 117,
#[doc = " The following instructions are only used in SSA form"]
MLIL_VAR_ALIASED_FIELD = 118,
#[doc = " The following instructions are only used in SSA form"]
MLIL_VAR_SPLIT_SSA = 119,
#[doc = " The following instructions are only used in SSA form"]
MLIL_ASSERT_SSA = 120,
#[doc = " The following instructions are only used in SSA form"]
MLIL_FORCE_VER_SSA = 121,
#[doc = " The following instructions are only used in SSA form"]
MLIL_CALL_SSA = 122,
#[doc = " The following instructions are only used in SSA form"]
MLIL_CALL_UNTYPED_SSA = 123,
#[doc = " The following instructions are only used in SSA form"]
MLIL_SYSCALL_SSA = 124,
#[doc = " The following instructions are only used in SSA form"]
MLIL_SYSCALL_UNTYPED_SSA = 125,
#[doc = " The following instructions are only used in SSA form"]
MLIL_TAILCALL_SSA = 126,
#[doc = " The following instructions are only used in SSA form"]
MLIL_TAILCALL_UNTYPED_SSA = 127,
#[doc = " Only valid within the MLIL_CALL_SSA, MLIL_SYSCALL_SSA, MLIL_TAILCALL_SSA, MLIL_INTRINSIC_SSA family\n instructions"]
MLIL_CALL_PARAM_SSA = 128,
#[doc = " Only valid within the MLIL_CALL_SSA or MLIL_SYSCALL_SSA, MLIL_TAILCALL_SSA family\n instructions"]
MLIL_CALL_OUTPUT_SSA = 129,
#[doc = " Only valid within the MLIL_MEMORY_INTRINSIC_SSA instruction"]
MLIL_MEMORY_INTRINSIC_OUTPUT_SSA = 130,
MLIL_LOAD_SSA = 131,
MLIL_LOAD_STRUCT_SSA = 132,
MLIL_STORE_SSA = 133,
MLIL_STORE_STRUCT_SSA = 134,
MLIL_INTRINSIC_SSA = 135,
MLIL_MEMORY_INTRINSIC_SSA = 136,
MLIL_FREE_VAR_SLOT_SSA = 137,
MLIL_VAR_PHI = 138,
MLIL_MEM_PHI = 139,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNMediumLevelILInstruction {
pub operation: BNMediumLevelILOperation,
pub attributes: u32,
pub sourceOperand: u32,
pub size: usize,
pub operands: [u64; 5usize],
pub address: u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNMediumLevelILInstruction"]
[::std::mem::size_of::<BNMediumLevelILInstruction>() - 72usize];
["Alignment of BNMediumLevelILInstruction"]
[::std::mem::align_of::<BNMediumLevelILInstruction>() - 8usize];
["Offset of field: BNMediumLevelILInstruction::operation"]
[::std::mem::offset_of!(BNMediumLevelILInstruction, operation) - 0usize];
["Offset of field: BNMediumLevelILInstruction::attributes"]
[::std::mem::offset_of!(BNMediumLevelILInstruction, attributes) - 4usize];
["Offset of field: BNMediumLevelILInstruction::sourceOperand"]
[::std::mem::offset_of!(BNMediumLevelILInstruction, sourceOperand) - 8usize];
["Offset of field: BNMediumLevelILInstruction::size"]
[::std::mem::offset_of!(BNMediumLevelILInstruction, size) - 16usize];
["Offset of field: BNMediumLevelILInstruction::operands"]
[::std::mem::offset_of!(BNMediumLevelILInstruction, operands) - 24usize];
["Offset of field: BNMediumLevelILInstruction::address"]
[::std::mem::offset_of!(BNMediumLevelILInstruction, address) - 64usize];
};
impl Default for BNMediumLevelILInstruction {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct BNMediumLevelILLabel {
pub resolved: bool,
pub ref_: usize,
pub operand: usize,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNMediumLevelILLabel"][::std::mem::size_of::<BNMediumLevelILLabel>() - 24usize];
["Alignment of BNMediumLevelILLabel"][::std::mem::align_of::<BNMediumLevelILLabel>() - 8usize];
["Offset of field: BNMediumLevelILLabel::resolved"]
[::std::mem::offset_of!(BNMediumLevelILLabel, resolved) - 0usize];
["Offset of field: BNMediumLevelILLabel::ref_"]
[::std::mem::offset_of!(BNMediumLevelILLabel, ref_) - 8usize];
["Offset of field: BNMediumLevelILLabel::operand"]
[::std::mem::offset_of!(BNMediumLevelILLabel, operand) - 16usize];
};
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNVariableSourceType {
StackVariableSourceType = 0,
RegisterVariableSourceType = 1,
FlagVariableSourceType = 2,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNVariable {
pub type_: BNVariableSourceType,
pub index: u32,
pub storage: i64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNVariable"][::std::mem::size_of::<BNVariable>() - 16usize];
["Alignment of BNVariable"][::std::mem::align_of::<BNVariable>() - 8usize];
["Offset of field: BNVariable::type_"][::std::mem::offset_of!(BNVariable, type_) - 0usize];
["Offset of field: BNVariable::index"][::std::mem::offset_of!(BNVariable, index) - 4usize];
["Offset of field: BNVariable::storage"][::std::mem::offset_of!(BNVariable, storage) - 8usize];
};
impl Default for BNVariable {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNHighLevelILOperation {
HLIL_NOP = 0,
HLIL_BLOCK = 1,
HLIL_IF = 2,
HLIL_WHILE = 3,
HLIL_DO_WHILE = 4,
HLIL_FOR = 5,
HLIL_SWITCH = 6,
HLIL_CASE = 7,
HLIL_BREAK = 8,
HLIL_CONTINUE = 9,
HLIL_JUMP = 10,
HLIL_RET = 11,
HLIL_NORET = 12,
HLIL_GOTO = 13,
HLIL_LABEL = 14,
HLIL_VAR_DECLARE = 15,
HLIL_VAR_INIT = 16,
HLIL_ASSIGN = 17,
HLIL_ASSIGN_UNPACK = 18,
HLIL_FORCE_VER = 19,
HLIL_ASSERT = 20,
HLIL_VAR = 21,
HLIL_STRUCT_FIELD = 22,
HLIL_ARRAY_INDEX = 23,
HLIL_SPLIT = 24,
HLIL_DEREF = 25,
HLIL_DEREF_FIELD = 26,
HLIL_ADDRESS_OF = 27,
HLIL_CONST = 28,
HLIL_CONST_DATA = 29,
HLIL_CONST_PTR = 30,
HLIL_EXTERN_PTR = 31,
HLIL_FLOAT_CONST = 32,
HLIL_IMPORT = 33,
HLIL_ADD = 34,
HLIL_ADC = 35,
HLIL_SUB = 36,
HLIL_SBB = 37,
HLIL_AND = 38,
HLIL_OR = 39,
HLIL_XOR = 40,
HLIL_LSL = 41,
HLIL_LSR = 42,
HLIL_ASR = 43,
HLIL_ROL = 44,
HLIL_RLC = 45,
HLIL_ROR = 46,
HLIL_RRC = 47,
HLIL_MUL = 48,
HLIL_MULU_DP = 49,
HLIL_MULS_DP = 50,
HLIL_DIVU = 51,
HLIL_DIVU_DP = 52,
HLIL_DIVS = 53,
HLIL_DIVS_DP = 54,
HLIL_MODU = 55,
HLIL_MODU_DP = 56,
HLIL_MODS = 57,
HLIL_MODS_DP = 58,
HLIL_NEG = 59,
HLIL_NOT = 60,
HLIL_SX = 61,
HLIL_ZX = 62,
HLIL_LOW_PART = 63,
HLIL_CALL = 64,
HLIL_CMP_E = 65,
HLIL_CMP_NE = 66,
HLIL_CMP_SLT = 67,
HLIL_CMP_ULT = 68,
HLIL_CMP_SLE = 69,
HLIL_CMP_ULE = 70,
HLIL_CMP_SGE = 71,
HLIL_CMP_UGE = 72,
HLIL_CMP_SGT = 73,
HLIL_CMP_UGT = 74,
HLIL_TEST_BIT = 75,
HLIL_BOOL_TO_INT = 76,
HLIL_ADD_OVERFLOW = 77,
HLIL_SYSCALL = 78,
HLIL_TAILCALL = 79,
HLIL_INTRINSIC = 80,
HLIL_BP = 81,
HLIL_TRAP = 82,
HLIL_UNDEF = 83,
HLIL_UNIMPL = 84,
HLIL_UNIMPL_MEM = 85,
#[doc = " Floating point"]
HLIL_FADD = 86,
#[doc = " Floating point"]
HLIL_FSUB = 87,
#[doc = " Floating point"]
HLIL_FMUL = 88,
#[doc = " Floating point"]
HLIL_FDIV = 89,
#[doc = " Floating point"]
HLIL_FSQRT = 90,
#[doc = " Floating point"]
HLIL_FNEG = 91,
#[doc = " Floating point"]
HLIL_FABS = 92,
#[doc = " Floating point"]
HLIL_FLOAT_TO_INT = 93,
#[doc = " Floating point"]
HLIL_INT_TO_FLOAT = 94,
#[doc = " Floating point"]
HLIL_FLOAT_CONV = 95,
#[doc = " Floating point"]
HLIL_ROUND_TO_INT = 96,
#[doc = " Floating point"]
HLIL_FLOOR = 97,
#[doc = " Floating point"]
HLIL_CEIL = 98,
#[doc = " Floating point"]
HLIL_FTRUNC = 99,
#[doc = " Floating point"]
HLIL_FCMP_E = 100,
#[doc = " Floating point"]
HLIL_FCMP_NE = 101,
#[doc = " Floating point"]
HLIL_FCMP_LT = 102,
#[doc = " Floating point"]
HLIL_FCMP_LE = 103,
#[doc = " Floating point"]
HLIL_FCMP_GE = 104,
#[doc = " Floating point"]
HLIL_FCMP_GT = 105,
#[doc = " Floating point"]
HLIL_FCMP_O = 106,
#[doc = " Floating point"]
HLIL_FCMP_UO = 107,
#[doc = " Unreachable hint, typically used in switch statements that analysis knows\n has an unreachable default."]
HLIL_UNREACHABLE = 108,
#[doc = " The following instructions are only used in SSA form"]
HLIL_WHILE_SSA = 109,
#[doc = " The following instructions are only used in SSA form"]
HLIL_DO_WHILE_SSA = 110,
#[doc = " The following instructions are only used in SSA form"]
HLIL_FOR_SSA = 111,
#[doc = " The following instructions are only used in SSA form"]
HLIL_VAR_INIT_SSA = 112,
#[doc = " The following instructions are only used in SSA form"]
HLIL_ASSIGN_MEM_SSA = 113,
#[doc = " The following instructions are only used in SSA form"]
HLIL_ASSIGN_UNPACK_MEM_SSA = 114,
#[doc = " The following instructions are only used in SSA form"]
HLIL_FORCE_VER_SSA = 115,
#[doc = " The following instructions are only used in SSA form"]
HLIL_ASSERT_SSA = 116,
#[doc = " The following instructions are only used in SSA form"]
HLIL_VAR_SSA = 117,
#[doc = " The following instructions are only used in SSA form"]
HLIL_ARRAY_INDEX_SSA = 118,
#[doc = " The following instructions are only used in SSA form"]
HLIL_DEREF_SSA = 119,
#[doc = " The following instructions are only used in SSA form"]
HLIL_DEREF_FIELD_SSA = 120,
#[doc = " The following instructions are only used in SSA form"]
HLIL_CALL_SSA = 121,
#[doc = " The following instructions are only used in SSA form"]
HLIL_SYSCALL_SSA = 122,
#[doc = " The following instructions are only used in SSA form"]
HLIL_INTRINSIC_SSA = 123,
#[doc = " The following instructions are only used in SSA form"]
HLIL_VAR_PHI = 124,
#[doc = " The following instructions are only used in SSA form"]
HLIL_MEM_PHI = 125,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNHighLevelILInstruction {
pub operation: BNHighLevelILOperation,
pub attributes: u32,
pub sourceOperand: u32,
pub size: usize,
pub operands: [u64; 5usize],
pub address: u64,
pub parent: usize,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNHighLevelILInstruction"]
[::std::mem::size_of::<BNHighLevelILInstruction>() - 80usize];
["Alignment of BNHighLevelILInstruction"]
[::std::mem::align_of::<BNHighLevelILInstruction>() - 8usize];
["Offset of field: BNHighLevelILInstruction::operation"]
[::std::mem::offset_of!(BNHighLevelILInstruction, operation) - 0usize];
["Offset of field: BNHighLevelILInstruction::attributes"]
[::std::mem::offset_of!(BNHighLevelILInstruction, attributes) - 4usize];
["Offset of field: BNHighLevelILInstruction::sourceOperand"]
[::std::mem::offset_of!(BNHighLevelILInstruction, sourceOperand) - 8usize];
["Offset of field: BNHighLevelILInstruction::size"]
[::std::mem::offset_of!(BNHighLevelILInstruction, size) - 16usize];
["Offset of field: BNHighLevelILInstruction::operands"]
[::std::mem::offset_of!(BNHighLevelILInstruction, operands) - 24usize];
["Offset of field: BNHighLevelILInstruction::address"]
[::std::mem::offset_of!(BNHighLevelILInstruction, address) - 64usize];
["Offset of field: BNHighLevelILInstruction::parent"]
[::std::mem::offset_of!(BNHighLevelILInstruction, parent) - 72usize];
};
impl Default for BNHighLevelILInstruction {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[doc = " Callbacks"]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNLogListener {
pub context: *mut ::std::os::raw::c_void,
pub log: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
sessionId: usize,
level: BNLogLevel,
msg: *const ::std::os::raw::c_char,
logger_name: *const ::std::os::raw::c_char,
tid: usize,
),
>,
pub logWithStackTrace: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
sessionId: usize,
level: BNLogLevel,
stackTrace: *const ::std::os::raw::c_char,
msg: *const ::std::os::raw::c_char,
logger_name: *const ::std::os::raw::c_char,
tid: usize,
),
>,
pub close: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
pub getLogLevel: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> BNLogLevel,
>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNLogListener"][::std::mem::size_of::<BNLogListener>() - 40usize];
["Alignment of BNLogListener"][::std::mem::align_of::<BNLogListener>() - 8usize];
["Offset of field: BNLogListener::context"]
[::std::mem::offset_of!(BNLogListener, context) - 0usize];
["Offset of field: BNLogListener::log"][::std::mem::offset_of!(BNLogListener, log) - 8usize];
["Offset of field: BNLogListener::logWithStackTrace"]
[::std::mem::offset_of!(BNLogListener, logWithStackTrace) - 16usize];
["Offset of field: BNLogListener::close"]
[::std::mem::offset_of!(BNLogListener, close) - 24usize];
["Offset of field: BNLogListener::getLogLevel"]
[::std::mem::offset_of!(BNLogListener, getLogLevel) - 32usize];
};
impl Default for BNLogListener {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNNavigationHandler {
pub context: *mut ::std::os::raw::c_void,
pub getCurrentView: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
>,
pub getCurrentOffset:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u64>,
pub navigate: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *const ::std::os::raw::c_char,
offset: u64,
) -> bool,
>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNNavigationHandler"][::std::mem::size_of::<BNNavigationHandler>() - 32usize];
["Alignment of BNNavigationHandler"][::std::mem::align_of::<BNNavigationHandler>() - 8usize];
["Offset of field: BNNavigationHandler::context"]
[::std::mem::offset_of!(BNNavigationHandler, context) - 0usize];
["Offset of field: BNNavigationHandler::getCurrentView"]
[::std::mem::offset_of!(BNNavigationHandler, getCurrentView) - 8usize];
["Offset of field: BNNavigationHandler::getCurrentOffset"]
[::std::mem::offset_of!(BNNavigationHandler, getCurrentOffset) - 16usize];
["Offset of field: BNNavigationHandler::navigate"]
[::std::mem::offset_of!(BNNavigationHandler, navigate) - 24usize];
};
impl Default for BNNavigationHandler {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNNameSpace {
pub name: *mut *mut ::std::os::raw::c_char,
pub join: *mut ::std::os::raw::c_char,
pub nameCount: usize,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNNameSpace"][::std::mem::size_of::<BNNameSpace>() - 24usize];
["Alignment of BNNameSpace"][::std::mem::align_of::<BNNameSpace>() - 8usize];
["Offset of field: BNNameSpace::name"][::std::mem::offset_of!(BNNameSpace, name) - 0usize];
["Offset of field: BNNameSpace::join"][::std::mem::offset_of!(BNNameSpace, join) - 8usize];
["Offset of field: BNNameSpace::nameCount"]
[::std::mem::offset_of!(BNNameSpace, nameCount) - 16usize];
};
impl Default for BNNameSpace {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNQualifiedName {
pub name: *mut *mut ::std::os::raw::c_char,
pub join: *mut ::std::os::raw::c_char,
pub nameCount: usize,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNQualifiedName"][::std::mem::size_of::<BNQualifiedName>() - 24usize];
["Alignment of BNQualifiedName"][::std::mem::align_of::<BNQualifiedName>() - 8usize];
["Offset of field: BNQualifiedName::name"]
[::std::mem::offset_of!(BNQualifiedName, name) - 0usize];
["Offset of field: BNQualifiedName::join"]
[::std::mem::offset_of!(BNQualifiedName, join) - 8usize];
["Offset of field: BNQualifiedName::nameCount"]
[::std::mem::offset_of!(BNQualifiedName, nameCount) - 16usize];
};
impl Default for BNQualifiedName {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNDerivedStringLocationType {
DataBackedStringLocation = 0,
CodeStringLocation = 1,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNDerivedStringLocation {
pub locationType: BNDerivedStringLocationType,
pub addr: u64,
pub len: u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNDerivedStringLocation"][::std::mem::size_of::<BNDerivedStringLocation>() - 24usize];
["Alignment of BNDerivedStringLocation"]
[::std::mem::align_of::<BNDerivedStringLocation>() - 8usize];
["Offset of field: BNDerivedStringLocation::locationType"]
[::std::mem::offset_of!(BNDerivedStringLocation, locationType) - 0usize];
["Offset of field: BNDerivedStringLocation::addr"]
[::std::mem::offset_of!(BNDerivedStringLocation, addr) - 8usize];
["Offset of field: BNDerivedStringLocation::len"]
[::std::mem::offset_of!(BNDerivedStringLocation, len) - 16usize];
};
impl Default for BNDerivedStringLocation {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNDerivedString {
pub value: *mut BNStringRef,
pub locationValid: bool,
pub location: BNDerivedStringLocation,
pub customType: *mut BNCustomStringType,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNDerivedString"][::std::mem::size_of::<BNDerivedString>() - 48usize];
["Alignment of BNDerivedString"][::std::mem::align_of::<BNDerivedString>() - 8usize];
["Offset of field: BNDerivedString::value"]
[::std::mem::offset_of!(BNDerivedString, value) - 0usize];
["Offset of field: BNDerivedString::locationValid"]
[::std::mem::offset_of!(BNDerivedString, locationValid) - 8usize];
["Offset of field: BNDerivedString::location"]
[::std::mem::offset_of!(BNDerivedString, location) - 16usize];
["Offset of field: BNDerivedString::customType"]
[::std::mem::offset_of!(BNDerivedString, customType) - 40usize];
};
impl Default for BNDerivedString {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNBinaryDataNotification {
pub context: *mut ::std::os::raw::c_void,
pub notificationBarrier: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView) -> u64,
>,
pub dataWritten: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
offset: u64,
len: usize,
),
>,
pub dataInserted: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
offset: u64,
len: usize,
),
>,
pub dataRemoved: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
offset: u64,
len: u64,
),
>,
pub functionAdded: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
func: *mut BNFunction,
),
>,
pub functionRemoved: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
func: *mut BNFunction,
),
>,
pub functionUpdated: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
func: *mut BNFunction,
),
>,
pub functionUpdateRequested: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
func: *mut BNFunction,
),
>,
pub dataVariableAdded: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
var: *mut BNDataVariable,
),
>,
pub dataVariableRemoved: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
var: *mut BNDataVariable,
),
>,
pub dataVariableUpdated: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
var: *mut BNDataVariable,
),
>,
pub dataMetadataUpdated: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
offset: u64,
),
>,
pub tagTypeUpdated: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
tagType: *mut BNTagType,
),
>,
pub tagAdded: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
tagRef: *mut BNTagReference,
),
>,
pub tagRemoved: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
tagRef: *mut BNTagReference,
),
>,
pub tagUpdated: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
tagRef: *mut BNTagReference,
),
>,
pub symbolAdded: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
sym: *mut BNSymbol,
),
>,
pub symbolRemoved: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
sym: *mut BNSymbol,
),
>,
pub symbolUpdated: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
sym: *mut BNSymbol,
),
>,
pub stringFound: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
type_: BNStringType,
offset: u64,
len: usize,
),
>,
pub stringRemoved: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
type_: BNStringType,
offset: u64,
len: usize,
),
>,
pub derivedStringFound: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
str_: *mut BNDerivedString,
),
>,
pub derivedStringRemoved: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
str_: *mut BNDerivedString,
),
>,
pub typeDefined: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
name: *mut BNQualifiedName,
type_: *mut BNType,
),
>,
pub typeUndefined: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
name: *mut BNQualifiedName,
type_: *mut BNType,
),
>,
pub typeReferenceChanged: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
name: *mut BNQualifiedName,
type_: *mut BNType,
),
>,
pub typeFieldReferenceChanged: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
name: *mut BNQualifiedName,
offset: u64,
),
>,
pub segmentAdded: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
segment: *mut BNSegment,
),
>,
pub segmentRemoved: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
segment: *mut BNSegment,
),
>,
pub segmentUpdated: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
segment: *mut BNSegment,
),
>,
pub sectionAdded: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
section: *mut BNSection,
),
>,
pub sectionRemoved: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
section: *mut BNSection,
),
>,
pub sectionUpdated: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
section: *mut BNSection,
),
>,
pub componentNameUpdated: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
previousName: *mut ::std::os::raw::c_char,
component: *mut BNComponent,
),
>,
pub componentAdded: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
component: *mut BNComponent,
),
>,
pub componentMoved: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
formerParent: *mut BNComponent,
newParent: *mut BNComponent,
component: *mut BNComponent,
),
>,
pub componentRemoved: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
formerParent: *mut BNComponent,
component: *mut BNComponent,
),
>,
pub componentFunctionAdded: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
component: *mut BNComponent,
function: *mut BNFunction,
),
>,
pub componentFunctionRemoved: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
component: *mut BNComponent,
function: *mut BNFunction,
),
>,
pub componentDataVariableAdded: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
component: *mut BNComponent,
var: *mut BNDataVariable,
),
>,
pub componentDataVariableRemoved: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
component: *mut BNComponent,
var: *mut BNDataVariable,
),
>,
pub externalLibraryAdded: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
data: *mut BNBinaryView,
library: *mut BNExternalLibrary,
),
>,
pub externalLibraryUpdated: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
data: *mut BNBinaryView,
library: *mut BNExternalLibrary,
),
>,
pub externalLibraryRemoved: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
data: *mut BNBinaryView,
library: *mut BNExternalLibrary,
),
>,
pub externalLocationAdded: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
data: *mut BNBinaryView,
location: *mut BNExternalLocation,
),
>,
pub externalLocationUpdated: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
data: *mut BNBinaryView,
location: *mut BNExternalLocation,
),
>,
pub externalLocationRemoved: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
data: *mut BNBinaryView,
location: *mut BNExternalLocation,
),
>,
pub typeArchiveAttached: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
id: *const ::std::os::raw::c_char,
path: *const ::std::os::raw::c_char,
),
>,
pub typeArchiveDetached: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
id: *const ::std::os::raw::c_char,
path: *const ::std::os::raw::c_char,
),
>,
pub typeArchiveConnected: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
archive: *mut BNTypeArchive,
),
>,
pub typeArchiveDisconnected: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
archive: *mut BNTypeArchive,
),
>,
pub undoEntryAdded: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
entry: *mut BNUndoEntry,
),
>,
pub undoEntryTaken: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
entry: *mut BNUndoEntry,
),
>,
pub redoEntryTaken: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
entry: *mut BNUndoEntry,
),
>,
pub rebased: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
oldView: *mut BNBinaryView,
newView: *mut BNBinaryView,
),
>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNBinaryDataNotification"]
[::std::mem::size_of::<BNBinaryDataNotification>() - 448usize];
["Alignment of BNBinaryDataNotification"]
[::std::mem::align_of::<BNBinaryDataNotification>() - 8usize];
["Offset of field: BNBinaryDataNotification::context"]
[::std::mem::offset_of!(BNBinaryDataNotification, context) - 0usize];
["Offset of field: BNBinaryDataNotification::notificationBarrier"]
[::std::mem::offset_of!(BNBinaryDataNotification, notificationBarrier) - 8usize];
["Offset of field: BNBinaryDataNotification::dataWritten"]
[::std::mem::offset_of!(BNBinaryDataNotification, dataWritten) - 16usize];
["Offset of field: BNBinaryDataNotification::dataInserted"]
[::std::mem::offset_of!(BNBinaryDataNotification, dataInserted) - 24usize];
["Offset of field: BNBinaryDataNotification::dataRemoved"]
[::std::mem::offset_of!(BNBinaryDataNotification, dataRemoved) - 32usize];
["Offset of field: BNBinaryDataNotification::functionAdded"]
[::std::mem::offset_of!(BNBinaryDataNotification, functionAdded) - 40usize];
["Offset of field: BNBinaryDataNotification::functionRemoved"]
[::std::mem::offset_of!(BNBinaryDataNotification, functionRemoved) - 48usize];
["Offset of field: BNBinaryDataNotification::functionUpdated"]
[::std::mem::offset_of!(BNBinaryDataNotification, functionUpdated) - 56usize];
["Offset of field: BNBinaryDataNotification::functionUpdateRequested"]
[::std::mem::offset_of!(BNBinaryDataNotification, functionUpdateRequested) - 64usize];
["Offset of field: BNBinaryDataNotification::dataVariableAdded"]
[::std::mem::offset_of!(BNBinaryDataNotification, dataVariableAdded) - 72usize];
["Offset of field: BNBinaryDataNotification::dataVariableRemoved"]
[::std::mem::offset_of!(BNBinaryDataNotification, dataVariableRemoved) - 80usize];
["Offset of field: BNBinaryDataNotification::dataVariableUpdated"]
[::std::mem::offset_of!(BNBinaryDataNotification, dataVariableUpdated) - 88usize];
["Offset of field: BNBinaryDataNotification::dataMetadataUpdated"]
[::std::mem::offset_of!(BNBinaryDataNotification, dataMetadataUpdated) - 96usize];
["Offset of field: BNBinaryDataNotification::tagTypeUpdated"]
[::std::mem::offset_of!(BNBinaryDataNotification, tagTypeUpdated) - 104usize];
["Offset of field: BNBinaryDataNotification::tagAdded"]
[::std::mem::offset_of!(BNBinaryDataNotification, tagAdded) - 112usize];
["Offset of field: BNBinaryDataNotification::tagRemoved"]
[::std::mem::offset_of!(BNBinaryDataNotification, tagRemoved) - 120usize];
["Offset of field: BNBinaryDataNotification::tagUpdated"]
[::std::mem::offset_of!(BNBinaryDataNotification, tagUpdated) - 128usize];
["Offset of field: BNBinaryDataNotification::symbolAdded"]
[::std::mem::offset_of!(BNBinaryDataNotification, symbolAdded) - 136usize];
["Offset of field: BNBinaryDataNotification::symbolRemoved"]
[::std::mem::offset_of!(BNBinaryDataNotification, symbolRemoved) - 144usize];
["Offset of field: BNBinaryDataNotification::symbolUpdated"]
[::std::mem::offset_of!(BNBinaryDataNotification, symbolUpdated) - 152usize];
["Offset of field: BNBinaryDataNotification::stringFound"]
[::std::mem::offset_of!(BNBinaryDataNotification, stringFound) - 160usize];
["Offset of field: BNBinaryDataNotification::stringRemoved"]
[::std::mem::offset_of!(BNBinaryDataNotification, stringRemoved) - 168usize];
["Offset of field: BNBinaryDataNotification::derivedStringFound"]
[::std::mem::offset_of!(BNBinaryDataNotification, derivedStringFound) - 176usize];
["Offset of field: BNBinaryDataNotification::derivedStringRemoved"]
[::std::mem::offset_of!(BNBinaryDataNotification, derivedStringRemoved) - 184usize];
["Offset of field: BNBinaryDataNotification::typeDefined"]
[::std::mem::offset_of!(BNBinaryDataNotification, typeDefined) - 192usize];
["Offset of field: BNBinaryDataNotification::typeUndefined"]
[::std::mem::offset_of!(BNBinaryDataNotification, typeUndefined) - 200usize];
["Offset of field: BNBinaryDataNotification::typeReferenceChanged"]
[::std::mem::offset_of!(BNBinaryDataNotification, typeReferenceChanged) - 208usize];
["Offset of field: BNBinaryDataNotification::typeFieldReferenceChanged"]
[::std::mem::offset_of!(BNBinaryDataNotification, typeFieldReferenceChanged) - 216usize];
["Offset of field: BNBinaryDataNotification::segmentAdded"]
[::std::mem::offset_of!(BNBinaryDataNotification, segmentAdded) - 224usize];
["Offset of field: BNBinaryDataNotification::segmentRemoved"]
[::std::mem::offset_of!(BNBinaryDataNotification, segmentRemoved) - 232usize];
["Offset of field: BNBinaryDataNotification::segmentUpdated"]
[::std::mem::offset_of!(BNBinaryDataNotification, segmentUpdated) - 240usize];
["Offset of field: BNBinaryDataNotification::sectionAdded"]
[::std::mem::offset_of!(BNBinaryDataNotification, sectionAdded) - 248usize];
["Offset of field: BNBinaryDataNotification::sectionRemoved"]
[::std::mem::offset_of!(BNBinaryDataNotification, sectionRemoved) - 256usize];
["Offset of field: BNBinaryDataNotification::sectionUpdated"]
[::std::mem::offset_of!(BNBinaryDataNotification, sectionUpdated) - 264usize];
["Offset of field: BNBinaryDataNotification::componentNameUpdated"]
[::std::mem::offset_of!(BNBinaryDataNotification, componentNameUpdated) - 272usize];
["Offset of field: BNBinaryDataNotification::componentAdded"]
[::std::mem::offset_of!(BNBinaryDataNotification, componentAdded) - 280usize];
["Offset of field: BNBinaryDataNotification::componentMoved"]
[::std::mem::offset_of!(BNBinaryDataNotification, componentMoved) - 288usize];
["Offset of field: BNBinaryDataNotification::componentRemoved"]
[::std::mem::offset_of!(BNBinaryDataNotification, componentRemoved) - 296usize];
["Offset of field: BNBinaryDataNotification::componentFunctionAdded"]
[::std::mem::offset_of!(BNBinaryDataNotification, componentFunctionAdded) - 304usize];
["Offset of field: BNBinaryDataNotification::componentFunctionRemoved"]
[::std::mem::offset_of!(BNBinaryDataNotification, componentFunctionRemoved) - 312usize];
["Offset of field: BNBinaryDataNotification::componentDataVariableAdded"]
[::std::mem::offset_of!(BNBinaryDataNotification, componentDataVariableAdded) - 320usize];
["Offset of field: BNBinaryDataNotification::componentDataVariableRemoved"]
[::std::mem::offset_of!(BNBinaryDataNotification, componentDataVariableRemoved) - 328usize];
["Offset of field: BNBinaryDataNotification::externalLibraryAdded"]
[::std::mem::offset_of!(BNBinaryDataNotification, externalLibraryAdded) - 336usize];
["Offset of field: BNBinaryDataNotification::externalLibraryUpdated"]
[::std::mem::offset_of!(BNBinaryDataNotification, externalLibraryUpdated) - 344usize];
["Offset of field: BNBinaryDataNotification::externalLibraryRemoved"]
[::std::mem::offset_of!(BNBinaryDataNotification, externalLibraryRemoved) - 352usize];
["Offset of field: BNBinaryDataNotification::externalLocationAdded"]
[::std::mem::offset_of!(BNBinaryDataNotification, externalLocationAdded) - 360usize];
["Offset of field: BNBinaryDataNotification::externalLocationUpdated"]
[::std::mem::offset_of!(BNBinaryDataNotification, externalLocationUpdated) - 368usize];
["Offset of field: BNBinaryDataNotification::externalLocationRemoved"]
[::std::mem::offset_of!(BNBinaryDataNotification, externalLocationRemoved) - 376usize];
["Offset of field: BNBinaryDataNotification::typeArchiveAttached"]
[::std::mem::offset_of!(BNBinaryDataNotification, typeArchiveAttached) - 384usize];
["Offset of field: BNBinaryDataNotification::typeArchiveDetached"]
[::std::mem::offset_of!(BNBinaryDataNotification, typeArchiveDetached) - 392usize];
["Offset of field: BNBinaryDataNotification::typeArchiveConnected"]
[::std::mem::offset_of!(BNBinaryDataNotification, typeArchiveConnected) - 400usize];
["Offset of field: BNBinaryDataNotification::typeArchiveDisconnected"]
[::std::mem::offset_of!(BNBinaryDataNotification, typeArchiveDisconnected) - 408usize];
["Offset of field: BNBinaryDataNotification::undoEntryAdded"]
[::std::mem::offset_of!(BNBinaryDataNotification, undoEntryAdded) - 416usize];
["Offset of field: BNBinaryDataNotification::undoEntryTaken"]
[::std::mem::offset_of!(BNBinaryDataNotification, undoEntryTaken) - 424usize];
["Offset of field: BNBinaryDataNotification::redoEntryTaken"]
[::std::mem::offset_of!(BNBinaryDataNotification, redoEntryTaken) - 432usize];
["Offset of field: BNBinaryDataNotification::rebased"]
[::std::mem::offset_of!(BNBinaryDataNotification, rebased) - 440usize];
};
impl Default for BNBinaryDataNotification {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNProjectNotification {
pub context: *mut ::std::os::raw::c_void,
pub beforeOpenProject: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, project: *mut BNProject) -> bool,
>,
pub afterOpenProject: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, project: *mut BNProject),
>,
pub beforeCloseProject: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, project: *mut BNProject) -> bool,
>,
pub afterCloseProject: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, project: *mut BNProject),
>,
pub beforeProjectMetadataWritten: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
project: *mut BNProject,
key: *mut ::std::os::raw::c_char,
value: *mut BNMetadata,
) -> bool,
>,
pub afterProjectMetadataWritten: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
project: *mut BNProject,
key: *mut ::std::os::raw::c_char,
value: *mut BNMetadata,
),
>,
pub beforeProjectFileCreated: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
project: *mut BNProject,
projectFile: *mut BNProjectFile,
) -> bool,
>,
pub afterProjectFileCreated: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
project: *mut BNProject,
projectFile: *mut BNProjectFile,
),
>,
pub beforeProjectFileUpdated: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
project: *mut BNProject,
projectFile: *mut BNProjectFile,
) -> bool,
>,
pub afterProjectFileUpdated: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
project: *mut BNProject,
projectFile: *mut BNProjectFile,
),
>,
pub beforeProjectFileDeleted: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
project: *mut BNProject,
projectFile: *mut BNProjectFile,
) -> bool,
>,
pub afterProjectFileDeleted: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
project: *mut BNProject,
projectFile: *mut BNProjectFile,
),
>,
pub beforeProjectFolderCreated: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
project: *mut BNProject,
projectFolder: *mut BNProjectFolder,
) -> bool,
>,
pub afterProjectFolderCreated: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
project: *mut BNProject,
projectFolder: *mut BNProjectFolder,
),
>,
pub beforeProjectFolderUpdated: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
project: *mut BNProject,
projectFolder: *mut BNProjectFolder,
) -> bool,
>,
pub afterProjectFolderUpdated: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
project: *mut BNProject,
projectFolder: *mut BNProjectFolder,
),
>,
pub beforeProjectFolderDeleted: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
project: *mut BNProject,
projectFolder: *mut BNProjectFolder,
) -> bool,
>,
pub afterProjectFolderDeleted: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
project: *mut BNProject,
projectFolder: *mut BNProjectFolder,
),
>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNProjectNotification"][::std::mem::size_of::<BNProjectNotification>() - 152usize];
["Alignment of BNProjectNotification"]
[::std::mem::align_of::<BNProjectNotification>() - 8usize];
["Offset of field: BNProjectNotification::context"]
[::std::mem::offset_of!(BNProjectNotification, context) - 0usize];
["Offset of field: BNProjectNotification::beforeOpenProject"]
[::std::mem::offset_of!(BNProjectNotification, beforeOpenProject) - 8usize];
["Offset of field: BNProjectNotification::afterOpenProject"]
[::std::mem::offset_of!(BNProjectNotification, afterOpenProject) - 16usize];
["Offset of field: BNProjectNotification::beforeCloseProject"]
[::std::mem::offset_of!(BNProjectNotification, beforeCloseProject) - 24usize];
["Offset of field: BNProjectNotification::afterCloseProject"]
[::std::mem::offset_of!(BNProjectNotification, afterCloseProject) - 32usize];
["Offset of field: BNProjectNotification::beforeProjectMetadataWritten"]
[::std::mem::offset_of!(BNProjectNotification, beforeProjectMetadataWritten) - 40usize];
["Offset of field: BNProjectNotification::afterProjectMetadataWritten"]
[::std::mem::offset_of!(BNProjectNotification, afterProjectMetadataWritten) - 48usize];
["Offset of field: BNProjectNotification::beforeProjectFileCreated"]
[::std::mem::offset_of!(BNProjectNotification, beforeProjectFileCreated) - 56usize];
["Offset of field: BNProjectNotification::afterProjectFileCreated"]
[::std::mem::offset_of!(BNProjectNotification, afterProjectFileCreated) - 64usize];
["Offset of field: BNProjectNotification::beforeProjectFileUpdated"]
[::std::mem::offset_of!(BNProjectNotification, beforeProjectFileUpdated) - 72usize];
["Offset of field: BNProjectNotification::afterProjectFileUpdated"]
[::std::mem::offset_of!(BNProjectNotification, afterProjectFileUpdated) - 80usize];
["Offset of field: BNProjectNotification::beforeProjectFileDeleted"]
[::std::mem::offset_of!(BNProjectNotification, beforeProjectFileDeleted) - 88usize];
["Offset of field: BNProjectNotification::afterProjectFileDeleted"]
[::std::mem::offset_of!(BNProjectNotification, afterProjectFileDeleted) - 96usize];
["Offset of field: BNProjectNotification::beforeProjectFolderCreated"]
[::std::mem::offset_of!(BNProjectNotification, beforeProjectFolderCreated) - 104usize];
["Offset of field: BNProjectNotification::afterProjectFolderCreated"]
[::std::mem::offset_of!(BNProjectNotification, afterProjectFolderCreated) - 112usize];
["Offset of field: BNProjectNotification::beforeProjectFolderUpdated"]
[::std::mem::offset_of!(BNProjectNotification, beforeProjectFolderUpdated) - 120usize];
["Offset of field: BNProjectNotification::afterProjectFolderUpdated"]
[::std::mem::offset_of!(BNProjectNotification, afterProjectFolderUpdated) - 128usize];
["Offset of field: BNProjectNotification::beforeProjectFolderDeleted"]
[::std::mem::offset_of!(BNProjectNotification, beforeProjectFolderDeleted) - 136usize];
["Offset of field: BNProjectNotification::afterProjectFolderDeleted"]
[::std::mem::offset_of!(BNProjectNotification, afterProjectFolderDeleted) - 144usize];
};
impl Default for BNProjectNotification {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNFileAccessor {
pub context: *mut ::std::os::raw::c_void,
pub getLength:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u64>,
pub read: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
dest: *mut ::std::os::raw::c_void,
offset: u64,
len: usize,
) -> usize,
>,
pub write: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
offset: u64,
src: *const ::std::os::raw::c_void,
len: usize,
) -> usize,
>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNFileAccessor"][::std::mem::size_of::<BNFileAccessor>() - 32usize];
["Alignment of BNFileAccessor"][::std::mem::align_of::<BNFileAccessor>() - 8usize];
["Offset of field: BNFileAccessor::context"]
[::std::mem::offset_of!(BNFileAccessor, context) - 0usize];
["Offset of field: BNFileAccessor::getLength"]
[::std::mem::offset_of!(BNFileAccessor, getLength) - 8usize];
["Offset of field: BNFileAccessor::read"]
[::std::mem::offset_of!(BNFileAccessor, read) - 16usize];
["Offset of field: BNFileAccessor::write"]
[::std::mem::offset_of!(BNFileAccessor, write) - 24usize];
};
impl Default for BNFileAccessor {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNCustomBinaryView {
pub context: *mut ::std::os::raw::c_void,
pub init:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
pub externalRefTaken:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
pub externalRefReleased:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
pub read: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
dest: *mut ::std::os::raw::c_void,
offset: u64,
len: usize,
) -> usize,
>,
pub write: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
offset: u64,
src: *const ::std::os::raw::c_void,
len: usize,
) -> usize,
>,
pub insert: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
offset: u64,
src: *const ::std::os::raw::c_void,
len: usize,
) -> usize,
>,
pub remove: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64, len: u64) -> usize,
>,
pub getModification: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
offset: u64,
) -> BNModificationStatus,
>,
pub isValidOffset: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> bool,
>,
pub isOffsetReadable: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> bool,
>,
pub isOffsetWritable: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> bool,
>,
pub isOffsetExecutable: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> bool,
>,
pub isOffsetBackedByFile: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> bool,
>,
pub getNextValidOffset: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, offset: u64) -> u64,
>,
pub getStart:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u64>,
pub getLength:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u64>,
pub getEntryPoint:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u64>,
pub isExecutable:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
pub getDefaultEndianness: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> BNEndianness,
>,
pub isRelocatable:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
pub getAddressSize:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
pub save: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
accessor: *mut BNFileAccessor,
) -> bool,
>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNCustomBinaryView"][::std::mem::size_of::<BNCustomBinaryView>() - 192usize];
["Alignment of BNCustomBinaryView"][::std::mem::align_of::<BNCustomBinaryView>() - 8usize];
["Offset of field: BNCustomBinaryView::context"]
[::std::mem::offset_of!(BNCustomBinaryView, context) - 0usize];
["Offset of field: BNCustomBinaryView::init"]
[::std::mem::offset_of!(BNCustomBinaryView, init) - 8usize];
["Offset of field: BNCustomBinaryView::freeObject"]
[::std::mem::offset_of!(BNCustomBinaryView, freeObject) - 16usize];
["Offset of field: BNCustomBinaryView::externalRefTaken"]
[::std::mem::offset_of!(BNCustomBinaryView, externalRefTaken) - 24usize];
["Offset of field: BNCustomBinaryView::externalRefReleased"]
[::std::mem::offset_of!(BNCustomBinaryView, externalRefReleased) - 32usize];
["Offset of field: BNCustomBinaryView::read"]
[::std::mem::offset_of!(BNCustomBinaryView, read) - 40usize];
["Offset of field: BNCustomBinaryView::write"]
[::std::mem::offset_of!(BNCustomBinaryView, write) - 48usize];
["Offset of field: BNCustomBinaryView::insert"]
[::std::mem::offset_of!(BNCustomBinaryView, insert) - 56usize];
["Offset of field: BNCustomBinaryView::remove"]
[::std::mem::offset_of!(BNCustomBinaryView, remove) - 64usize];
["Offset of field: BNCustomBinaryView::getModification"]
[::std::mem::offset_of!(BNCustomBinaryView, getModification) - 72usize];
["Offset of field: BNCustomBinaryView::isValidOffset"]
[::std::mem::offset_of!(BNCustomBinaryView, isValidOffset) - 80usize];
["Offset of field: BNCustomBinaryView::isOffsetReadable"]
[::std::mem::offset_of!(BNCustomBinaryView, isOffsetReadable) - 88usize];
["Offset of field: BNCustomBinaryView::isOffsetWritable"]
[::std::mem::offset_of!(BNCustomBinaryView, isOffsetWritable) - 96usize];
["Offset of field: BNCustomBinaryView::isOffsetExecutable"]
[::std::mem::offset_of!(BNCustomBinaryView, isOffsetExecutable) - 104usize];
["Offset of field: BNCustomBinaryView::isOffsetBackedByFile"]
[::std::mem::offset_of!(BNCustomBinaryView, isOffsetBackedByFile) - 112usize];
["Offset of field: BNCustomBinaryView::getNextValidOffset"]
[::std::mem::offset_of!(BNCustomBinaryView, getNextValidOffset) - 120usize];
["Offset of field: BNCustomBinaryView::getStart"]
[::std::mem::offset_of!(BNCustomBinaryView, getStart) - 128usize];
["Offset of field: BNCustomBinaryView::getLength"]
[::std::mem::offset_of!(BNCustomBinaryView, getLength) - 136usize];
["Offset of field: BNCustomBinaryView::getEntryPoint"]
[::std::mem::offset_of!(BNCustomBinaryView, getEntryPoint) - 144usize];
["Offset of field: BNCustomBinaryView::isExecutable"]
[::std::mem::offset_of!(BNCustomBinaryView, isExecutable) - 152usize];
["Offset of field: BNCustomBinaryView::getDefaultEndianness"]
[::std::mem::offset_of!(BNCustomBinaryView, getDefaultEndianness) - 160usize];
["Offset of field: BNCustomBinaryView::isRelocatable"]
[::std::mem::offset_of!(BNCustomBinaryView, isRelocatable) - 168usize];
["Offset of field: BNCustomBinaryView::getAddressSize"]
[::std::mem::offset_of!(BNCustomBinaryView, getAddressSize) - 176usize];
["Offset of field: BNCustomBinaryView::save"]
[::std::mem::offset_of!(BNCustomBinaryView, save) - 184usize];
};
impl Default for BNCustomBinaryView {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNCustomBinaryViewType {
pub context: *mut ::std::os::raw::c_void,
pub create: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
data: *mut BNBinaryView,
) -> *mut BNBinaryView,
>,
pub parse: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
data: *mut BNBinaryView,
) -> *mut BNBinaryView,
>,
pub isValidForData: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, data: *mut BNBinaryView) -> bool,
>,
pub isDeprecated:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
pub isForceLoadable:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
pub getLoadSettingsForData: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
data: *mut BNBinaryView,
) -> *mut BNSettings,
>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNCustomBinaryViewType"][::std::mem::size_of::<BNCustomBinaryViewType>() - 56usize];
["Alignment of BNCustomBinaryViewType"]
[::std::mem::align_of::<BNCustomBinaryViewType>() - 8usize];
["Offset of field: BNCustomBinaryViewType::context"]
[::std::mem::offset_of!(BNCustomBinaryViewType, context) - 0usize];
["Offset of field: BNCustomBinaryViewType::create"]
[::std::mem::offset_of!(BNCustomBinaryViewType, create) - 8usize];
["Offset of field: BNCustomBinaryViewType::parse"]
[::std::mem::offset_of!(BNCustomBinaryViewType, parse) - 16usize];
["Offset of field: BNCustomBinaryViewType::isValidForData"]
[::std::mem::offset_of!(BNCustomBinaryViewType, isValidForData) - 24usize];
["Offset of field: BNCustomBinaryViewType::isDeprecated"]
[::std::mem::offset_of!(BNCustomBinaryViewType, isDeprecated) - 32usize];
["Offset of field: BNCustomBinaryViewType::isForceLoadable"]
[::std::mem::offset_of!(BNCustomBinaryViewType, isForceLoadable) - 40usize];
["Offset of field: BNCustomBinaryViewType::getLoadSettingsForData"]
[::std::mem::offset_of!(BNCustomBinaryViewType, getLoadSettingsForData) - 48usize];
};
impl Default for BNCustomBinaryViewType {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNTransformParameterInfo {
pub name: *mut ::std::os::raw::c_char,
pub longName: *mut ::std::os::raw::c_char,
#[doc = " Variable length if zero"]
pub fixedLength: usize,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNTransformParameterInfo"]
[::std::mem::size_of::<BNTransformParameterInfo>() - 24usize];
["Alignment of BNTransformParameterInfo"]
[::std::mem::align_of::<BNTransformParameterInfo>() - 8usize];
["Offset of field: BNTransformParameterInfo::name"]
[::std::mem::offset_of!(BNTransformParameterInfo, name) - 0usize];
["Offset of field: BNTransformParameterInfo::longName"]
[::std::mem::offset_of!(BNTransformParameterInfo, longName) - 8usize];
["Offset of field: BNTransformParameterInfo::fixedLength"]
[::std::mem::offset_of!(BNTransformParameterInfo, fixedLength) - 16usize];
};
impl Default for BNTransformParameterInfo {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNTransformParameter {
pub name: *const ::std::os::raw::c_char,
pub value: *mut BNDataBuffer,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNTransformParameter"][::std::mem::size_of::<BNTransformParameter>() - 16usize];
["Alignment of BNTransformParameter"][::std::mem::align_of::<BNTransformParameter>() - 8usize];
["Offset of field: BNTransformParameter::name"]
[::std::mem::offset_of!(BNTransformParameter, name) - 0usize];
["Offset of field: BNTransformParameter::value"]
[::std::mem::offset_of!(BNTransformParameter, value) - 8usize];
};
impl Default for BNTransformParameter {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNCustomTransform {
pub context: *mut ::std::os::raw::c_void,
pub getParameters: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
count: *mut usize,
) -> *mut BNTransformParameterInfo,
>,
pub freeParameters: ::std::option::Option<
unsafe extern "C" fn(params: *mut BNTransformParameterInfo, count: usize),
>,
pub decode: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
input: *mut BNDataBuffer,
output: *mut BNDataBuffer,
params: *mut BNTransformParameter,
paramCount: usize,
) -> bool,
>,
pub encode: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
input: *mut BNDataBuffer,
output: *mut BNDataBuffer,
params: *mut BNTransformParameter,
paramCount: usize,
) -> bool,
>,
pub decodeWithContext: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
context: *mut BNTransformContext,
params: *mut BNTransformParameter,
paramCount: usize,
) -> bool,
>,
pub canDecode: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, input: *mut BNBinaryView) -> bool,
>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNCustomTransform"][::std::mem::size_of::<BNCustomTransform>() - 56usize];
["Alignment of BNCustomTransform"][::std::mem::align_of::<BNCustomTransform>() - 8usize];
["Offset of field: BNCustomTransform::context"]
[::std::mem::offset_of!(BNCustomTransform, context) - 0usize];
["Offset of field: BNCustomTransform::getParameters"]
[::std::mem::offset_of!(BNCustomTransform, getParameters) - 8usize];
["Offset of field: BNCustomTransform::freeParameters"]
[::std::mem::offset_of!(BNCustomTransform, freeParameters) - 16usize];
["Offset of field: BNCustomTransform::decode"]
[::std::mem::offset_of!(BNCustomTransform, decode) - 24usize];
["Offset of field: BNCustomTransform::encode"]
[::std::mem::offset_of!(BNCustomTransform, encode) - 32usize];
["Offset of field: BNCustomTransform::decodeWithContext"]
[::std::mem::offset_of!(BNCustomTransform, decodeWithContext) - 40usize];
["Offset of field: BNCustomTransform::canDecode"]
[::std::mem::offset_of!(BNCustomTransform, canDecode) - 48usize];
};
impl Default for BNCustomTransform {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNInstructionInfo {
pub length: usize,
pub branchCount: usize,
pub archTransitionByTargetAddr: bool,
pub delaySlots: u8,
pub branchType: [BNBranchType; 3usize],
pub branchTarget: [u64; 3usize],
#[doc = " If null, same architecture as instruction"]
pub branchArch: [*mut BNArchitecture; 3usize],
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNInstructionInfo"][::std::mem::size_of::<BNInstructionInfo>() - 72usize];
["Alignment of BNInstructionInfo"][::std::mem::align_of::<BNInstructionInfo>() - 8usize];
["Offset of field: BNInstructionInfo::length"]
[::std::mem::offset_of!(BNInstructionInfo, length) - 0usize];
["Offset of field: BNInstructionInfo::branchCount"]
[::std::mem::offset_of!(BNInstructionInfo, branchCount) - 8usize];
["Offset of field: BNInstructionInfo::archTransitionByTargetAddr"]
[::std::mem::offset_of!(BNInstructionInfo, archTransitionByTargetAddr) - 16usize];
["Offset of field: BNInstructionInfo::delaySlots"]
[::std::mem::offset_of!(BNInstructionInfo, delaySlots) - 17usize];
["Offset of field: BNInstructionInfo::branchType"]
[::std::mem::offset_of!(BNInstructionInfo, branchType) - 18usize];
["Offset of field: BNInstructionInfo::branchTarget"]
[::std::mem::offset_of!(BNInstructionInfo, branchTarget) - 24usize];
["Offset of field: BNInstructionInfo::branchArch"]
[::std::mem::offset_of!(BNInstructionInfo, branchArch) - 48usize];
};
impl Default for BNInstructionInfo {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNRelocationType {
ELFGlobalRelocationType = 0,
ELFCopyRelocationType = 1,
ELFJumpSlotRelocationType = 2,
StandardRelocationType = 3,
IgnoredRelocation = 4,
UnhandledRelocation = 5,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNRelocationInfo {
#[doc = " BinaryNinja Relocation Type"]
pub type_: BNRelocationType,
#[doc = " PC Relative or Absolute (subtract address from relocation)"]
pub pcRelative: bool,
#[doc = " Relative to start of module (Add module base to relocation)"]
pub baseRelative: bool,
#[doc = " Base address for this binary view"]
pub base: u64,
#[doc = " Size of the data to be written"]
pub size: usize,
#[doc = " After addition/subtraction truncate to"]
pub truncateSize: usize,
#[doc = " Base type from relocation entry"]
pub nativeType: u64,
#[doc = " Addend value from relocation entry"]
pub addend: usize,
#[doc = " Addend should be subtracted"]
pub hasSign: bool,
#[doc = " Addend should be read from the BinaryView"]
pub implicitAddend: bool,
#[doc = " Relocation entry points to external symbol"]
pub external: bool,
#[doc = " Index into symbol table"]
pub symbolIndex: usize,
#[doc = " Index into the section table"]
pub sectionIndex: usize,
#[doc = " Absolute address or segment offset"]
pub address: u64,
#[doc = " Target (set automatically)"]
pub target: u64,
#[doc = " This relocation is effecting data not code"]
pub dataRelocation: bool,
pub relocationDataCache: [u8; 8usize],
#[doc = " Link to relocation another related relocation"]
pub prev: *mut BNRelocationInfo,
#[doc = " Link to relocation another related relocation"]
pub next: *mut BNRelocationInfo,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNRelocationInfo"][::std::mem::size_of::<BNRelocationInfo>() - 120usize];
["Alignment of BNRelocationInfo"][::std::mem::align_of::<BNRelocationInfo>() - 8usize];
["Offset of field: BNRelocationInfo::type_"]
[::std::mem::offset_of!(BNRelocationInfo, type_) - 0usize];
["Offset of field: BNRelocationInfo::pcRelative"]
[::std::mem::offset_of!(BNRelocationInfo, pcRelative) - 1usize];
["Offset of field: BNRelocationInfo::baseRelative"]
[::std::mem::offset_of!(BNRelocationInfo, baseRelative) - 2usize];
["Offset of field: BNRelocationInfo::base"]
[::std::mem::offset_of!(BNRelocationInfo, base) - 8usize];
["Offset of field: BNRelocationInfo::size"]
[::std::mem::offset_of!(BNRelocationInfo, size) - 16usize];
["Offset of field: BNRelocationInfo::truncateSize"]
[::std::mem::offset_of!(BNRelocationInfo, truncateSize) - 24usize];
["Offset of field: BNRelocationInfo::nativeType"]
[::std::mem::offset_of!(BNRelocationInfo, nativeType) - 32usize];
["Offset of field: BNRelocationInfo::addend"]
[::std::mem::offset_of!(BNRelocationInfo, addend) - 40usize];
["Offset of field: BNRelocationInfo::hasSign"]
[::std::mem::offset_of!(BNRelocationInfo, hasSign) - 48usize];
["Offset of field: BNRelocationInfo::implicitAddend"]
[::std::mem::offset_of!(BNRelocationInfo, implicitAddend) - 49usize];
["Offset of field: BNRelocationInfo::external"]
[::std::mem::offset_of!(BNRelocationInfo, external) - 50usize];
["Offset of field: BNRelocationInfo::symbolIndex"]
[::std::mem::offset_of!(BNRelocationInfo, symbolIndex) - 56usize];
["Offset of field: BNRelocationInfo::sectionIndex"]
[::std::mem::offset_of!(BNRelocationInfo, sectionIndex) - 64usize];
["Offset of field: BNRelocationInfo::address"]
[::std::mem::offset_of!(BNRelocationInfo, address) - 72usize];
["Offset of field: BNRelocationInfo::target"]
[::std::mem::offset_of!(BNRelocationInfo, target) - 80usize];
["Offset of field: BNRelocationInfo::dataRelocation"]
[::std::mem::offset_of!(BNRelocationInfo, dataRelocation) - 88usize];
["Offset of field: BNRelocationInfo::relocationDataCache"]
[::std::mem::offset_of!(BNRelocationInfo, relocationDataCache) - 89usize];
["Offset of field: BNRelocationInfo::prev"]
[::std::mem::offset_of!(BNRelocationInfo, prev) - 104usize];
["Offset of field: BNRelocationInfo::next"]
[::std::mem::offset_of!(BNRelocationInfo, next) - 112usize];
};
impl Default for BNRelocationInfo {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNInstructionTextToken {
pub type_: BNInstructionTextTokenType,
pub text: *mut ::std::os::raw::c_char,
pub value: u64,
pub width: u64,
pub size: usize,
pub operand: usize,
pub context: BNInstructionTextTokenContext,
pub confidence: u8,
pub address: u64,
pub typeNames: *mut *mut ::std::os::raw::c_char,
pub namesCount: usize,
pub exprIndex: usize,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNInstructionTextToken"][::std::mem::size_of::<BNInstructionTextToken>() - 88usize];
["Alignment of BNInstructionTextToken"]
[::std::mem::align_of::<BNInstructionTextToken>() - 8usize];
["Offset of field: BNInstructionTextToken::type_"]
[::std::mem::offset_of!(BNInstructionTextToken, type_) - 0usize];
["Offset of field: BNInstructionTextToken::text"]
[::std::mem::offset_of!(BNInstructionTextToken, text) - 8usize];
["Offset of field: BNInstructionTextToken::value"]
[::std::mem::offset_of!(BNInstructionTextToken, value) - 16usize];
["Offset of field: BNInstructionTextToken::width"]
[::std::mem::offset_of!(BNInstructionTextToken, width) - 24usize];
["Offset of field: BNInstructionTextToken::size"]
[::std::mem::offset_of!(BNInstructionTextToken, size) - 32usize];
["Offset of field: BNInstructionTextToken::operand"]
[::std::mem::offset_of!(BNInstructionTextToken, operand) - 40usize];
["Offset of field: BNInstructionTextToken::context"]
[::std::mem::offset_of!(BNInstructionTextToken, context) - 48usize];
["Offset of field: BNInstructionTextToken::confidence"]
[::std::mem::offset_of!(BNInstructionTextToken, confidence) - 49usize];
["Offset of field: BNInstructionTextToken::address"]
[::std::mem::offset_of!(BNInstructionTextToken, address) - 56usize];
["Offset of field: BNInstructionTextToken::typeNames"]
[::std::mem::offset_of!(BNInstructionTextToken, typeNames) - 64usize];
["Offset of field: BNInstructionTextToken::namesCount"]
[::std::mem::offset_of!(BNInstructionTextToken, namesCount) - 72usize];
["Offset of field: BNInstructionTextToken::exprIndex"]
[::std::mem::offset_of!(BNInstructionTextToken, exprIndex) - 80usize];
};
impl Default for BNInstructionTextToken {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNInstructionTextLine {
pub tokens: *mut BNInstructionTextToken,
pub count: usize,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNInstructionTextLine"][::std::mem::size_of::<BNInstructionTextLine>() - 16usize];
["Alignment of BNInstructionTextLine"]
[::std::mem::align_of::<BNInstructionTextLine>() - 8usize];
["Offset of field: BNInstructionTextLine::tokens"]
[::std::mem::offset_of!(BNInstructionTextLine, tokens) - 0usize];
["Offset of field: BNInstructionTextLine::count"]
[::std::mem::offset_of!(BNInstructionTextLine, count) - 8usize];
};
impl Default for BNInstructionTextLine {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNTypeDefinitionLineType {
TypedefLineType = 0,
StructDefinitionLineType = 1,
StructFieldLineType = 2,
StructDefinitionEndLineType = 3,
EnumDefinitionLineType = 4,
EnumMemberLineType = 5,
EnumDefinitionEndLineType = 6,
PaddingLineType = 7,
UndefinedXrefLineType = 8,
CollapsedPaddingLineType = 9,
EmptyLineType = 10,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNTypeDefinitionLine {
pub lineType: BNTypeDefinitionLineType,
pub tokens: *mut BNInstructionTextToken,
pub count: usize,
pub type_: *mut BNType,
pub parentType: *mut BNType,
pub rootType: *mut BNType,
pub rootTypeName: *mut ::std::os::raw::c_char,
pub baseType: *mut BNNamedTypeReference,
pub baseOffset: u64,
pub offset: u64,
pub fieldIndex: usize,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNTypeDefinitionLine"][::std::mem::size_of::<BNTypeDefinitionLine>() - 88usize];
["Alignment of BNTypeDefinitionLine"][::std::mem::align_of::<BNTypeDefinitionLine>() - 8usize];
["Offset of field: BNTypeDefinitionLine::lineType"]
[::std::mem::offset_of!(BNTypeDefinitionLine, lineType) - 0usize];
["Offset of field: BNTypeDefinitionLine::tokens"]
[::std::mem::offset_of!(BNTypeDefinitionLine, tokens) - 8usize];
["Offset of field: BNTypeDefinitionLine::count"]
[::std::mem::offset_of!(BNTypeDefinitionLine, count) - 16usize];
["Offset of field: BNTypeDefinitionLine::type_"]
[::std::mem::offset_of!(BNTypeDefinitionLine, type_) - 24usize];
["Offset of field: BNTypeDefinitionLine::parentType"]
[::std::mem::offset_of!(BNTypeDefinitionLine, parentType) - 32usize];
["Offset of field: BNTypeDefinitionLine::rootType"]
[::std::mem::offset_of!(BNTypeDefinitionLine, rootType) - 40usize];
["Offset of field: BNTypeDefinitionLine::rootTypeName"]
[::std::mem::offset_of!(BNTypeDefinitionLine, rootTypeName) - 48usize];
["Offset of field: BNTypeDefinitionLine::baseType"]
[::std::mem::offset_of!(BNTypeDefinitionLine, baseType) - 56usize];
["Offset of field: BNTypeDefinitionLine::baseOffset"]
[::std::mem::offset_of!(BNTypeDefinitionLine, baseOffset) - 64usize];
["Offset of field: BNTypeDefinitionLine::offset"]
[::std::mem::offset_of!(BNTypeDefinitionLine, offset) - 72usize];
["Offset of field: BNTypeDefinitionLine::fieldIndex"]
[::std::mem::offset_of!(BNTypeDefinitionLine, fieldIndex) - 80usize];
};
impl Default for BNTypeDefinitionLine {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNFlagConditionForSemanticClass {
pub semanticClass: u32,
pub condition: BNLowLevelILFlagCondition,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNFlagConditionForSemanticClass"]
[::std::mem::size_of::<BNFlagConditionForSemanticClass>() - 8usize];
["Alignment of BNFlagConditionForSemanticClass"]
[::std::mem::align_of::<BNFlagConditionForSemanticClass>() - 4usize];
["Offset of field: BNFlagConditionForSemanticClass::semanticClass"]
[::std::mem::offset_of!(BNFlagConditionForSemanticClass, semanticClass) - 0usize];
["Offset of field: BNFlagConditionForSemanticClass::condition"]
[::std::mem::offset_of!(BNFlagConditionForSemanticClass, condition) - 4usize];
};
impl Default for BNFlagConditionForSemanticClass {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNNameAndType {
pub name: *mut ::std::os::raw::c_char,
pub type_: *mut BNType,
pub typeConfidence: u8,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNNameAndType"][::std::mem::size_of::<BNNameAndType>() - 24usize];
["Alignment of BNNameAndType"][::std::mem::align_of::<BNNameAndType>() - 8usize];
["Offset of field: BNNameAndType::name"][::std::mem::offset_of!(BNNameAndType, name) - 0usize];
["Offset of field: BNNameAndType::type_"]
[::std::mem::offset_of!(BNNameAndType, type_) - 8usize];
["Offset of field: BNNameAndType::typeConfidence"]
[::std::mem::offset_of!(BNNameAndType, typeConfidence) - 16usize];
};
impl Default for BNNameAndType {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNTypeWithConfidence {
pub type_: *mut BNType,
pub confidence: u8,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNTypeWithConfidence"][::std::mem::size_of::<BNTypeWithConfidence>() - 16usize];
["Alignment of BNTypeWithConfidence"][::std::mem::align_of::<BNTypeWithConfidence>() - 8usize];
["Offset of field: BNTypeWithConfidence::type_"]
[::std::mem::offset_of!(BNTypeWithConfidence, type_) - 0usize];
["Offset of field: BNTypeWithConfidence::confidence"]
[::std::mem::offset_of!(BNTypeWithConfidence, confidence) - 8usize];
};
impl Default for BNTypeWithConfidence {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNFunctionAnalysisSkipOverride {
DefaultFunctionAnalysisSkip = 0,
NeverSkipFunctionAnalysis = 1,
AlwaysSkipFunctionAnalysis = 2,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNBasicBlockAnalysisContext {
pub function: *mut BNFunction,
#[doc = " IN"]
pub analysisSkipOverride: BNFunctionAnalysisSkipOverride,
pub guidedAnalysisMode: bool,
pub triggerGuidedOnInvalidInstruction: bool,
pub translateTailCalls: bool,
pub disallowBranchToString: bool,
pub maxFunctionSize: u64,
pub indirectBranchesCount: usize,
pub indirectBranches: *mut BNIndirectBranchInfo,
pub indirectNoReturnCallsCount: usize,
pub indirectNoReturnCalls: *mut BNArchitectureAndAddress,
#[doc = " OUT; can be set directly"]
pub maxSizeReached: bool,
#[doc = " IN *and* OUT"]
pub contextualFunctionReturnCount: usize,
pub contextualFunctionReturnLocations: *mut BNArchitectureAndAddress,
pub contextualFunctionReturnValues: *mut bool,
#[doc = " OUT"]
pub directRefCount: usize,
pub directRefSources: *mut BNArchitectureAndAddress,
pub directRefTargets: *mut u64,
pub directNoReturnCallsCount: usize,
pub directNoReturnCalls: *mut BNArchitectureAndAddress,
pub haltedDisassemblyAddressesCount: usize,
pub haltedDisassemblyAddresses: *mut BNArchitectureAndAddress,
pub inlinedUnresolvedIndirectBranchCount: usize,
pub inlinedUnresolvedIndirectBranches: *mut BNArchitectureAndAddress,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNBasicBlockAnalysisContext"]
[::std::mem::size_of::<BNBasicBlockAnalysisContext>() - 160usize];
["Alignment of BNBasicBlockAnalysisContext"]
[::std::mem::align_of::<BNBasicBlockAnalysisContext>() - 8usize];
["Offset of field: BNBasicBlockAnalysisContext::function"]
[::std::mem::offset_of!(BNBasicBlockAnalysisContext, function) - 0usize];
["Offset of field: BNBasicBlockAnalysisContext::analysisSkipOverride"]
[::std::mem::offset_of!(BNBasicBlockAnalysisContext, analysisSkipOverride) - 8usize];
["Offset of field: BNBasicBlockAnalysisContext::guidedAnalysisMode"]
[::std::mem::offset_of!(BNBasicBlockAnalysisContext, guidedAnalysisMode) - 9usize];
["Offset of field: BNBasicBlockAnalysisContext::triggerGuidedOnInvalidInstruction"][::std::mem::offset_of!(
BNBasicBlockAnalysisContext,
triggerGuidedOnInvalidInstruction
)
- 10usize];
["Offset of field: BNBasicBlockAnalysisContext::translateTailCalls"]
[::std::mem::offset_of!(BNBasicBlockAnalysisContext, translateTailCalls) - 11usize];
["Offset of field: BNBasicBlockAnalysisContext::disallowBranchToString"]
[::std::mem::offset_of!(BNBasicBlockAnalysisContext, disallowBranchToString) - 12usize];
["Offset of field: BNBasicBlockAnalysisContext::maxFunctionSize"]
[::std::mem::offset_of!(BNBasicBlockAnalysisContext, maxFunctionSize) - 16usize];
["Offset of field: BNBasicBlockAnalysisContext::indirectBranchesCount"]
[::std::mem::offset_of!(BNBasicBlockAnalysisContext, indirectBranchesCount) - 24usize];
["Offset of field: BNBasicBlockAnalysisContext::indirectBranches"]
[::std::mem::offset_of!(BNBasicBlockAnalysisContext, indirectBranches) - 32usize];
["Offset of field: BNBasicBlockAnalysisContext::indirectNoReturnCallsCount"]
[::std::mem::offset_of!(BNBasicBlockAnalysisContext, indirectNoReturnCallsCount) - 40usize];
["Offset of field: BNBasicBlockAnalysisContext::indirectNoReturnCalls"]
[::std::mem::offset_of!(BNBasicBlockAnalysisContext, indirectNoReturnCalls) - 48usize];
["Offset of field: BNBasicBlockAnalysisContext::maxSizeReached"]
[::std::mem::offset_of!(BNBasicBlockAnalysisContext, maxSizeReached) - 56usize];
["Offset of field: BNBasicBlockAnalysisContext::contextualFunctionReturnCount"][::std::mem::offset_of!(
BNBasicBlockAnalysisContext,
contextualFunctionReturnCount
) - 64usize];
["Offset of field: BNBasicBlockAnalysisContext::contextualFunctionReturnLocations"][::std::mem::offset_of!(
BNBasicBlockAnalysisContext,
contextualFunctionReturnLocations
)
- 72usize];
["Offset of field: BNBasicBlockAnalysisContext::contextualFunctionReturnValues"][::std::mem::offset_of!(
BNBasicBlockAnalysisContext,
contextualFunctionReturnValues
) - 80usize];
["Offset of field: BNBasicBlockAnalysisContext::directRefCount"]
[::std::mem::offset_of!(BNBasicBlockAnalysisContext, directRefCount) - 88usize];
["Offset of field: BNBasicBlockAnalysisContext::directRefSources"]
[::std::mem::offset_of!(BNBasicBlockAnalysisContext, directRefSources) - 96usize];
["Offset of field: BNBasicBlockAnalysisContext::directRefTargets"]
[::std::mem::offset_of!(BNBasicBlockAnalysisContext, directRefTargets) - 104usize];
["Offset of field: BNBasicBlockAnalysisContext::directNoReturnCallsCount"]
[::std::mem::offset_of!(BNBasicBlockAnalysisContext, directNoReturnCallsCount) - 112usize];
["Offset of field: BNBasicBlockAnalysisContext::directNoReturnCalls"]
[::std::mem::offset_of!(BNBasicBlockAnalysisContext, directNoReturnCalls) - 120usize];
["Offset of field: BNBasicBlockAnalysisContext::haltedDisassemblyAddressesCount"][::std::mem::offset_of!(
BNBasicBlockAnalysisContext,
haltedDisassemblyAddressesCount
) - 128usize];
["Offset of field: BNBasicBlockAnalysisContext::haltedDisassemblyAddresses"][::std::mem::offset_of!(
BNBasicBlockAnalysisContext,
haltedDisassemblyAddresses
) - 136usize];
["Offset of field: BNBasicBlockAnalysisContext::inlinedUnresolvedIndirectBranchCount"][::std::mem::offset_of!(
BNBasicBlockAnalysisContext,
inlinedUnresolvedIndirectBranchCount
)
- 144usize];
["Offset of field: BNBasicBlockAnalysisContext::inlinedUnresolvedIndirectBranches"][::std::mem::offset_of!(
BNBasicBlockAnalysisContext,
inlinedUnresolvedIndirectBranches
)
- 152usize];
};
impl Default for BNBasicBlockAnalysisContext {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNCustomArchitecture {
pub context: *mut ::std::os::raw::c_void,
pub init: ::std::option::Option<
unsafe extern "C" fn(context: *mut ::std::os::raw::c_void, obj: *mut BNArchitecture),
>,
pub getEndianness: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> BNEndianness,
>,
pub getAddressSize:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
pub getDefaultIntegerSize:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
pub getInstructionAlignment:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
pub getMaxInstructionLength:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
pub getOpcodeDisplayLength:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
pub getAssociatedArchitectureByAddress: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
addr: *mut u64,
) -> *mut BNArchitecture,
>,
pub getInstructionInfo: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
data: *const u8,
addr: u64,
maxLen: usize,
result: *mut BNInstructionInfo,
) -> bool,
>,
pub getInstructionText: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
data: *const u8,
addr: u64,
len: *mut usize,
result: *mut *mut BNInstructionTextToken,
count: *mut usize,
) -> bool,
>,
pub freeInstructionText: ::std::option::Option<
unsafe extern "C" fn(tokens: *mut BNInstructionTextToken, count: usize),
>,
pub getInstructionLowLevelIL: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
data: *const u8,
addr: u64,
len: *mut usize,
il: *mut BNLowLevelILFunction,
) -> bool,
>,
pub analyzeBasicBlocks: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
function: *mut BNFunction,
context: *mut BNBasicBlockAnalysisContext,
),
>,
pub getRegisterName: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
reg: u32,
) -> *mut ::std::os::raw::c_char,
>,
pub getFlagName: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
flag: u32,
) -> *mut ::std::os::raw::c_char,
>,
pub getFlagWriteTypeName: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
flags: u32,
) -> *mut ::std::os::raw::c_char,
>,
pub getSemanticFlagClassName: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
semClass: u32,
) -> *mut ::std::os::raw::c_char,
>,
pub getSemanticFlagGroupName: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
semGroup: u32,
) -> *mut ::std::os::raw::c_char,
>,
pub getFullWidthRegisters: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
>,
pub getAllRegisters: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
>,
pub getAllFlags: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
>,
pub getAllFlagWriteTypes: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
>,
pub getAllSemanticFlagClasses: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
>,
pub getAllSemanticFlagGroups: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
>,
pub getFlagRole: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
flag: u32,
semClass: u32,
) -> BNFlagRole,
>,
pub getFlagsRequiredForFlagCondition: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
cond: BNLowLevelILFlagCondition,
semClass: u32,
count: *mut usize,
) -> *mut u32,
>,
pub getFlagsRequiredForSemanticFlagGroup: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
semGroup: u32,
count: *mut usize,
) -> *mut u32,
>,
pub getFlagConditionsForSemanticFlagGroup: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
semGroup: u32,
count: *mut usize,
) -> *mut BNFlagConditionForSemanticClass,
>,
pub freeFlagConditionsForSemanticFlagGroup: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
conditions: *mut BNFlagConditionForSemanticClass,
count: usize,
),
>,
pub getFlagsWrittenByFlagWriteType: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
writeType: u32,
count: *mut usize,
) -> *mut u32,
>,
pub getSemanticClassForFlagWriteType: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, writeType: u32) -> u32,
>,
pub getFlagWriteLowLevelIL: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
op: BNLowLevelILOperation,
size: usize,
flagWriteType: u32,
flag: u32,
operands: *mut BNRegisterOrConstant,
operandCount: usize,
il: *mut BNLowLevelILFunction,
) -> usize,
>,
pub getFlagConditionLowLevelIL: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
cond: BNLowLevelILFlagCondition,
semClass: u32,
il: *mut BNLowLevelILFunction,
) -> usize,
>,
pub getSemanticFlagGroupLowLevelIL: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
semGroup: u32,
il: *mut BNLowLevelILFunction,
) -> usize,
>,
pub freeRegisterList: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, regs: *mut u32, count: usize),
>,
pub getRegisterInfo: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
reg: u32,
result: *mut BNRegisterInfo,
),
>,
pub getStackPointerRegister:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
pub getLinkRegister:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
pub getGlobalRegisters: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
>,
pub getSystemRegisters: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
>,
pub getRegisterStackName: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
regStack: u32,
) -> *mut ::std::os::raw::c_char,
>,
pub getAllRegisterStacks: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
>,
pub getRegisterStackInfo: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
regStack: u32,
result: *mut BNRegisterStackInfo,
),
>,
pub getIntrinsicClass: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, intrinsic: u32) -> BNIntrinsicClass,
>,
pub getIntrinsicName: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
intrinsic: u32,
) -> *mut ::std::os::raw::c_char,
>,
pub getAllIntrinsics: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
>,
pub getIntrinsicInputs: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
intrinsic: u32,
count: *mut usize,
) -> *mut BNNameAndType,
>,
pub freeNameAndTypeList: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
nt: *mut BNNameAndType,
count: usize,
),
>,
pub getIntrinsicOutputs: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
intrinsic: u32,
count: *mut usize,
) -> *mut BNTypeWithConfidence,
>,
pub freeTypeList: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
types: *mut BNTypeWithConfidence,
count: usize,
),
>,
pub canAssemble:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
pub assemble: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
code: *const ::std::os::raw::c_char,
addr: u64,
result: *mut BNDataBuffer,
errors: *mut *mut ::std::os::raw::c_char,
) -> bool,
>,
pub isNeverBranchPatchAvailable: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
data: *const u8,
addr: u64,
len: usize,
) -> bool,
>,
pub isAlwaysBranchPatchAvailable: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
data: *const u8,
addr: u64,
len: usize,
) -> bool,
>,
pub isInvertBranchPatchAvailable: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
data: *const u8,
addr: u64,
len: usize,
) -> bool,
>,
pub isSkipAndReturnZeroPatchAvailable: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
data: *const u8,
addr: u64,
len: usize,
) -> bool,
>,
pub isSkipAndReturnValuePatchAvailable: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
data: *const u8,
addr: u64,
len: usize,
) -> bool,
>,
pub convertToNop: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
data: *mut u8,
addr: u64,
len: usize,
) -> bool,
>,
pub alwaysBranch: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
data: *mut u8,
addr: u64,
len: usize,
) -> bool,
>,
pub invertBranch: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
data: *mut u8,
addr: u64,
len: usize,
) -> bool,
>,
pub skipAndReturnValue: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
data: *mut u8,
addr: u64,
len: usize,
value: u64,
) -> bool,
>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNCustomArchitecture"][::std::mem::size_of::<BNCustomArchitecture>() - 496usize];
["Alignment of BNCustomArchitecture"][::std::mem::align_of::<BNCustomArchitecture>() - 8usize];
["Offset of field: BNCustomArchitecture::context"]
[::std::mem::offset_of!(BNCustomArchitecture, context) - 0usize];
["Offset of field: BNCustomArchitecture::init"]
[::std::mem::offset_of!(BNCustomArchitecture, init) - 8usize];
["Offset of field: BNCustomArchitecture::getEndianness"]
[::std::mem::offset_of!(BNCustomArchitecture, getEndianness) - 16usize];
["Offset of field: BNCustomArchitecture::getAddressSize"]
[::std::mem::offset_of!(BNCustomArchitecture, getAddressSize) - 24usize];
["Offset of field: BNCustomArchitecture::getDefaultIntegerSize"]
[::std::mem::offset_of!(BNCustomArchitecture, getDefaultIntegerSize) - 32usize];
["Offset of field: BNCustomArchitecture::getInstructionAlignment"]
[::std::mem::offset_of!(BNCustomArchitecture, getInstructionAlignment) - 40usize];
["Offset of field: BNCustomArchitecture::getMaxInstructionLength"]
[::std::mem::offset_of!(BNCustomArchitecture, getMaxInstructionLength) - 48usize];
["Offset of field: BNCustomArchitecture::getOpcodeDisplayLength"]
[::std::mem::offset_of!(BNCustomArchitecture, getOpcodeDisplayLength) - 56usize];
["Offset of field: BNCustomArchitecture::getAssociatedArchitectureByAddress"][::std::mem::offset_of!(
BNCustomArchitecture,
getAssociatedArchitectureByAddress
) - 64usize];
["Offset of field: BNCustomArchitecture::getInstructionInfo"]
[::std::mem::offset_of!(BNCustomArchitecture, getInstructionInfo) - 72usize];
["Offset of field: BNCustomArchitecture::getInstructionText"]
[::std::mem::offset_of!(BNCustomArchitecture, getInstructionText) - 80usize];
["Offset of field: BNCustomArchitecture::freeInstructionText"]
[::std::mem::offset_of!(BNCustomArchitecture, freeInstructionText) - 88usize];
["Offset of field: BNCustomArchitecture::getInstructionLowLevelIL"]
[::std::mem::offset_of!(BNCustomArchitecture, getInstructionLowLevelIL) - 96usize];
["Offset of field: BNCustomArchitecture::analyzeBasicBlocks"]
[::std::mem::offset_of!(BNCustomArchitecture, analyzeBasicBlocks) - 104usize];
["Offset of field: BNCustomArchitecture::getRegisterName"]
[::std::mem::offset_of!(BNCustomArchitecture, getRegisterName) - 112usize];
["Offset of field: BNCustomArchitecture::getFlagName"]
[::std::mem::offset_of!(BNCustomArchitecture, getFlagName) - 120usize];
["Offset of field: BNCustomArchitecture::getFlagWriteTypeName"]
[::std::mem::offset_of!(BNCustomArchitecture, getFlagWriteTypeName) - 128usize];
["Offset of field: BNCustomArchitecture::getSemanticFlagClassName"]
[::std::mem::offset_of!(BNCustomArchitecture, getSemanticFlagClassName) - 136usize];
["Offset of field: BNCustomArchitecture::getSemanticFlagGroupName"]
[::std::mem::offset_of!(BNCustomArchitecture, getSemanticFlagGroupName) - 144usize];
["Offset of field: BNCustomArchitecture::getFullWidthRegisters"]
[::std::mem::offset_of!(BNCustomArchitecture, getFullWidthRegisters) - 152usize];
["Offset of field: BNCustomArchitecture::getAllRegisters"]
[::std::mem::offset_of!(BNCustomArchitecture, getAllRegisters) - 160usize];
["Offset of field: BNCustomArchitecture::getAllFlags"]
[::std::mem::offset_of!(BNCustomArchitecture, getAllFlags) - 168usize];
["Offset of field: BNCustomArchitecture::getAllFlagWriteTypes"]
[::std::mem::offset_of!(BNCustomArchitecture, getAllFlagWriteTypes) - 176usize];
["Offset of field: BNCustomArchitecture::getAllSemanticFlagClasses"]
[::std::mem::offset_of!(BNCustomArchitecture, getAllSemanticFlagClasses) - 184usize];
["Offset of field: BNCustomArchitecture::getAllSemanticFlagGroups"]
[::std::mem::offset_of!(BNCustomArchitecture, getAllSemanticFlagGroups) - 192usize];
["Offset of field: BNCustomArchitecture::getFlagRole"]
[::std::mem::offset_of!(BNCustomArchitecture, getFlagRole) - 200usize];
["Offset of field: BNCustomArchitecture::getFlagsRequiredForFlagCondition"]
[::std::mem::offset_of!(BNCustomArchitecture, getFlagsRequiredForFlagCondition) - 208usize];
["Offset of field: BNCustomArchitecture::getFlagsRequiredForSemanticFlagGroup"][::std::mem::offset_of!(
BNCustomArchitecture,
getFlagsRequiredForSemanticFlagGroup
) - 216usize];
["Offset of field: BNCustomArchitecture::getFlagConditionsForSemanticFlagGroup"][::std::mem::offset_of!(
BNCustomArchitecture,
getFlagConditionsForSemanticFlagGroup
) - 224usize];
["Offset of field: BNCustomArchitecture::freeFlagConditionsForSemanticFlagGroup"][::std::mem::offset_of!(
BNCustomArchitecture,
freeFlagConditionsForSemanticFlagGroup
) - 232usize];
["Offset of field: BNCustomArchitecture::getFlagsWrittenByFlagWriteType"]
[::std::mem::offset_of!(BNCustomArchitecture, getFlagsWrittenByFlagWriteType) - 240usize];
["Offset of field: BNCustomArchitecture::getSemanticClassForFlagWriteType"]
[::std::mem::offset_of!(BNCustomArchitecture, getSemanticClassForFlagWriteType) - 248usize];
["Offset of field: BNCustomArchitecture::getFlagWriteLowLevelIL"]
[::std::mem::offset_of!(BNCustomArchitecture, getFlagWriteLowLevelIL) - 256usize];
["Offset of field: BNCustomArchitecture::getFlagConditionLowLevelIL"]
[::std::mem::offset_of!(BNCustomArchitecture, getFlagConditionLowLevelIL) - 264usize];
["Offset of field: BNCustomArchitecture::getSemanticFlagGroupLowLevelIL"]
[::std::mem::offset_of!(BNCustomArchitecture, getSemanticFlagGroupLowLevelIL) - 272usize];
["Offset of field: BNCustomArchitecture::freeRegisterList"]
[::std::mem::offset_of!(BNCustomArchitecture, freeRegisterList) - 280usize];
["Offset of field: BNCustomArchitecture::getRegisterInfo"]
[::std::mem::offset_of!(BNCustomArchitecture, getRegisterInfo) - 288usize];
["Offset of field: BNCustomArchitecture::getStackPointerRegister"]
[::std::mem::offset_of!(BNCustomArchitecture, getStackPointerRegister) - 296usize];
["Offset of field: BNCustomArchitecture::getLinkRegister"]
[::std::mem::offset_of!(BNCustomArchitecture, getLinkRegister) - 304usize];
["Offset of field: BNCustomArchitecture::getGlobalRegisters"]
[::std::mem::offset_of!(BNCustomArchitecture, getGlobalRegisters) - 312usize];
["Offset of field: BNCustomArchitecture::getSystemRegisters"]
[::std::mem::offset_of!(BNCustomArchitecture, getSystemRegisters) - 320usize];
["Offset of field: BNCustomArchitecture::getRegisterStackName"]
[::std::mem::offset_of!(BNCustomArchitecture, getRegisterStackName) - 328usize];
["Offset of field: BNCustomArchitecture::getAllRegisterStacks"]
[::std::mem::offset_of!(BNCustomArchitecture, getAllRegisterStacks) - 336usize];
["Offset of field: BNCustomArchitecture::getRegisterStackInfo"]
[::std::mem::offset_of!(BNCustomArchitecture, getRegisterStackInfo) - 344usize];
["Offset of field: BNCustomArchitecture::getIntrinsicClass"]
[::std::mem::offset_of!(BNCustomArchitecture, getIntrinsicClass) - 352usize];
["Offset of field: BNCustomArchitecture::getIntrinsicName"]
[::std::mem::offset_of!(BNCustomArchitecture, getIntrinsicName) - 360usize];
["Offset of field: BNCustomArchitecture::getAllIntrinsics"]
[::std::mem::offset_of!(BNCustomArchitecture, getAllIntrinsics) - 368usize];
["Offset of field: BNCustomArchitecture::getIntrinsicInputs"]
[::std::mem::offset_of!(BNCustomArchitecture, getIntrinsicInputs) - 376usize];
["Offset of field: BNCustomArchitecture::freeNameAndTypeList"]
[::std::mem::offset_of!(BNCustomArchitecture, freeNameAndTypeList) - 384usize];
["Offset of field: BNCustomArchitecture::getIntrinsicOutputs"]
[::std::mem::offset_of!(BNCustomArchitecture, getIntrinsicOutputs) - 392usize];
["Offset of field: BNCustomArchitecture::freeTypeList"]
[::std::mem::offset_of!(BNCustomArchitecture, freeTypeList) - 400usize];
["Offset of field: BNCustomArchitecture::canAssemble"]
[::std::mem::offset_of!(BNCustomArchitecture, canAssemble) - 408usize];
["Offset of field: BNCustomArchitecture::assemble"]
[::std::mem::offset_of!(BNCustomArchitecture, assemble) - 416usize];
["Offset of field: BNCustomArchitecture::isNeverBranchPatchAvailable"]
[::std::mem::offset_of!(BNCustomArchitecture, isNeverBranchPatchAvailable) - 424usize];
["Offset of field: BNCustomArchitecture::isAlwaysBranchPatchAvailable"]
[::std::mem::offset_of!(BNCustomArchitecture, isAlwaysBranchPatchAvailable) - 432usize];
["Offset of field: BNCustomArchitecture::isInvertBranchPatchAvailable"]
[::std::mem::offset_of!(BNCustomArchitecture, isInvertBranchPatchAvailable) - 440usize];
["Offset of field: BNCustomArchitecture::isSkipAndReturnZeroPatchAvailable"][::std::mem::offset_of!(
BNCustomArchitecture,
isSkipAndReturnZeroPatchAvailable
) - 448usize];
["Offset of field: BNCustomArchitecture::isSkipAndReturnValuePatchAvailable"][::std::mem::offset_of!(
BNCustomArchitecture,
isSkipAndReturnValuePatchAvailable
) - 456usize];
["Offset of field: BNCustomArchitecture::convertToNop"]
[::std::mem::offset_of!(BNCustomArchitecture, convertToNop) - 464usize];
["Offset of field: BNCustomArchitecture::alwaysBranch"]
[::std::mem::offset_of!(BNCustomArchitecture, alwaysBranch) - 472usize];
["Offset of field: BNCustomArchitecture::invertBranch"]
[::std::mem::offset_of!(BNCustomArchitecture, invertBranch) - 480usize];
["Offset of field: BNCustomArchitecture::skipAndReturnValue"]
[::std::mem::offset_of!(BNCustomArchitecture, skipAndReturnValue) - 488usize];
};
impl Default for BNCustomArchitecture {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNCustomPlatform {
pub context: *mut ::std::os::raw::c_void,
pub init: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, obj: *mut BNPlatform),
>,
pub viewInit: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
>,
pub getGlobalRegisters: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
>,
pub freeRegisterList: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, regs: *mut u32, len: usize),
>,
pub getGlobalRegisterType: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, reg: u32) -> *mut BNType,
>,
pub getAddressSize:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> usize>,
pub adjustTypeParserInput: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
parser: *mut BNTypeParser,
argumentsIn: *const *const ::std::os::raw::c_char,
argumentsLenIn: usize,
sourceFileNamesIn: *const *const ::std::os::raw::c_char,
sourceFileValuesIn: *const *const ::std::os::raw::c_char,
sourceFilesLenIn: usize,
argumentsOut: *mut *mut *mut ::std::os::raw::c_char,
argumentsLenOut: *mut usize,
sourceFileNamesOut: *mut *mut *mut ::std::os::raw::c_char,
sourceFileValuesOut: *mut *mut *mut ::std::os::raw::c_char,
sourceFilesLenOut: *mut usize,
),
>,
pub freeTypeParserInput: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
arguments: *mut *mut ::std::os::raw::c_char,
argumentsLen: usize,
sourceFileNames: *mut *mut ::std::os::raw::c_char,
sourceFileValues: *mut *mut ::std::os::raw::c_char,
sourceFilesLen: usize,
),
>,
pub getFallbackEnabled:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNCustomPlatform"][::std::mem::size_of::<BNCustomPlatform>() - 80usize];
["Alignment of BNCustomPlatform"][::std::mem::align_of::<BNCustomPlatform>() - 8usize];
["Offset of field: BNCustomPlatform::context"]
[::std::mem::offset_of!(BNCustomPlatform, context) - 0usize];
["Offset of field: BNCustomPlatform::init"]
[::std::mem::offset_of!(BNCustomPlatform, init) - 8usize];
["Offset of field: BNCustomPlatform::viewInit"]
[::std::mem::offset_of!(BNCustomPlatform, viewInit) - 16usize];
["Offset of field: BNCustomPlatform::getGlobalRegisters"]
[::std::mem::offset_of!(BNCustomPlatform, getGlobalRegisters) - 24usize];
["Offset of field: BNCustomPlatform::freeRegisterList"]
[::std::mem::offset_of!(BNCustomPlatform, freeRegisterList) - 32usize];
["Offset of field: BNCustomPlatform::getGlobalRegisterType"]
[::std::mem::offset_of!(BNCustomPlatform, getGlobalRegisterType) - 40usize];
["Offset of field: BNCustomPlatform::getAddressSize"]
[::std::mem::offset_of!(BNCustomPlatform, getAddressSize) - 48usize];
["Offset of field: BNCustomPlatform::adjustTypeParserInput"]
[::std::mem::offset_of!(BNCustomPlatform, adjustTypeParserInput) - 56usize];
["Offset of field: BNCustomPlatform::freeTypeParserInput"]
[::std::mem::offset_of!(BNCustomPlatform, freeTypeParserInput) - 64usize];
["Offset of field: BNCustomPlatform::getFallbackEnabled"]
[::std::mem::offset_of!(BNCustomPlatform, getFallbackEnabled) - 72usize];
};
impl Default for BNCustomPlatform {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNBasicBlockEdge {
pub type_: BNBranchType,
pub target: *mut BNBasicBlock,
pub backEdge: bool,
pub fallThrough: bool,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNBasicBlockEdge"][::std::mem::size_of::<BNBasicBlockEdge>() - 24usize];
["Alignment of BNBasicBlockEdge"][::std::mem::align_of::<BNBasicBlockEdge>() - 8usize];
["Offset of field: BNBasicBlockEdge::type_"]
[::std::mem::offset_of!(BNBasicBlockEdge, type_) - 0usize];
["Offset of field: BNBasicBlockEdge::target"]
[::std::mem::offset_of!(BNBasicBlockEdge, target) - 8usize];
["Offset of field: BNBasicBlockEdge::backEdge"]
[::std::mem::offset_of!(BNBasicBlockEdge, backEdge) - 16usize];
["Offset of field: BNBasicBlockEdge::fallThrough"]
[::std::mem::offset_of!(BNBasicBlockEdge, fallThrough) - 17usize];
};
impl Default for BNBasicBlockEdge {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNPendingBasicBlockEdge {
pub type_: BNBranchType,
pub arch: *mut BNArchitecture,
pub target: u64,
pub fallThrough: bool,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNPendingBasicBlockEdge"][::std::mem::size_of::<BNPendingBasicBlockEdge>() - 32usize];
["Alignment of BNPendingBasicBlockEdge"]
[::std::mem::align_of::<BNPendingBasicBlockEdge>() - 8usize];
["Offset of field: BNPendingBasicBlockEdge::type_"]
[::std::mem::offset_of!(BNPendingBasicBlockEdge, type_) - 0usize];
["Offset of field: BNPendingBasicBlockEdge::arch"]
[::std::mem::offset_of!(BNPendingBasicBlockEdge, arch) - 8usize];
["Offset of field: BNPendingBasicBlockEdge::target"]
[::std::mem::offset_of!(BNPendingBasicBlockEdge, target) - 16usize];
["Offset of field: BNPendingBasicBlockEdge::fallThrough"]
[::std::mem::offset_of!(BNPendingBasicBlockEdge, fallThrough) - 24usize];
};
impl Default for BNPendingBasicBlockEdge {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct BNPoint {
pub x: f32,
pub y: f32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNPoint"][::std::mem::size_of::<BNPoint>() - 8usize];
["Alignment of BNPoint"][::std::mem::align_of::<BNPoint>() - 4usize];
["Offset of field: BNPoint::x"][::std::mem::offset_of!(BNPoint, x) - 0usize];
["Offset of field: BNPoint::y"][::std::mem::offset_of!(BNPoint, y) - 4usize];
};
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNThemeColor {
#[doc = " Hex dump colors"]
AddressColor = 0,
#[doc = " Hex dump colors"]
ModifiedColor = 1,
#[doc = " Hex dump colors"]
InsertedColor = 2,
#[doc = " Hex dump colors"]
NotPresentColor = 3,
#[doc = " Hex dump colors"]
SelectionColor = 4,
#[doc = " Hex dump colors"]
OutlineColor = 5,
#[doc = " Hex dump colors"]
BackgroundHighlightDarkColor = 6,
#[doc = " Hex dump colors"]
BackgroundHighlightLightColor = 7,
#[doc = " Hex dump colors"]
BoldBackgroundHighlightDarkColor = 8,
#[doc = " Hex dump colors"]
BoldBackgroundHighlightLightColor = 9,
#[doc = " Hex dump colors"]
AlphanumericHighlightColor = 10,
#[doc = " Hex dump colors"]
PrintableHighlightColor = 11,
#[doc = " Graph colors"]
GraphBackgroundDarkColor = 12,
#[doc = " Graph colors"]
GraphBackgroundLightColor = 13,
#[doc = " Graph colors"]
GraphNodeDarkColor = 14,
#[doc = " Graph colors"]
GraphNodeLightColor = 15,
#[doc = " Graph colors"]
GraphNodeOutlineColor = 16,
#[doc = " Graph colors"]
GraphNodeShadowColor = 17,
#[doc = " Graph colors"]
GraphEntryNodeIndicatorColor = 18,
#[doc = " Graph colors"]
GraphExitNodeIndicatorColor = 19,
#[doc = " Graph colors"]
GraphExitNoreturnNodeIndicatorColor = 20,
#[doc = " Graph colors"]
TrueBranchColor = 21,
#[doc = " Graph colors"]
FalseBranchColor = 22,
#[doc = " Graph colors"]
UnconditionalBranchColor = 23,
#[doc = " Graph colors"]
AltTrueBranchColor = 24,
#[doc = " Graph colors"]
AltFalseBranchColor = 25,
#[doc = " Graph colors"]
AltUnconditionalBranchColor = 26,
#[doc = " Disassembly colors"]
InstructionColor = 27,
#[doc = " Disassembly colors"]
RegisterColor = 28,
#[doc = " Disassembly colors"]
NumberColor = 29,
#[doc = " Disassembly colors"]
CodeSymbolColor = 30,
#[doc = " Disassembly colors"]
DataSymbolColor = 31,
#[doc = " Disassembly colors"]
LocalVariableColor = 32,
#[doc = " Disassembly colors"]
StackVariableColor = 33,
#[doc = " Disassembly colors"]
ImportColor = 34,
#[doc = " Disassembly colors"]
ExportColor = 35,
#[doc = " Disassembly colors"]
InstructionHighlightColor = 36,
#[doc = " Disassembly colors"]
RelatedInstructionHighlightColor = 37,
#[doc = " Disassembly colors"]
TokenHighlightColor = 38,
#[doc = " Disassembly colors"]
TokenSelectionColor = 39,
#[doc = " Disassembly colors"]
AnnotationColor = 40,
#[doc = " Disassembly colors"]
OpcodeColor = 41,
#[doc = " Disassembly colors"]
LinearDisassemblyFunctionHeaderColor = 42,
#[doc = " Disassembly colors"]
LinearDisassemblyBlockColor = 43,
#[doc = " Disassembly colors"]
LinearDisassemblyNoteColor = 44,
#[doc = " Disassembly colors"]
LinearDisassemblySeparatorColor = 45,
#[doc = " Disassembly colors"]
LinearDisassemblyCodeFoldColor = 46,
#[doc = " Disassembly colors"]
StringColor = 47,
#[doc = " Disassembly colors"]
TypeNameColor = 48,
#[doc = " Disassembly colors"]
FieldNameColor = 49,
#[doc = " Disassembly colors"]
KeywordColor = 50,
#[doc = " Disassembly colors"]
UncertainColor = 51,
#[doc = " Disassembly colors"]
NameSpaceColor = 52,
#[doc = " Disassembly colors"]
NameSpaceSeparatorColor = 53,
#[doc = " Disassembly colors"]
GotoLabelColor = 54,
#[doc = " Disassembly colors"]
CommentColor = 55,
#[doc = " Disassembly colors"]
OperationColor = 56,
#[doc = " Disassembly colors"]
BaseStructureNameColor = 57,
#[doc = " Disassembly colors"]
IndentationLineColor = 58,
#[doc = " Disassembly colors"]
IndentationLineHighlightColor = 59,
#[doc = " Script console colors"]
ScriptConsoleOutputColor = 60,
#[doc = " Script console colors"]
ScriptConsoleWarningColor = 61,
#[doc = " Script console colors"]
ScriptConsoleErrorColor = 62,
#[doc = " Script console colors"]
ScriptConsoleEchoColor = 63,
#[doc = " Highlighting colors"]
BlueStandardHighlightColor = 64,
#[doc = " Highlighting colors"]
GreenStandardHighlightColor = 65,
#[doc = " Highlighting colors"]
CyanStandardHighlightColor = 66,
#[doc = " Highlighting colors"]
RedStandardHighlightColor = 67,
#[doc = " Highlighting colors"]
MagentaStandardHighlightColor = 68,
#[doc = " Highlighting colors"]
YellowStandardHighlightColor = 69,
#[doc = " Highlighting colors"]
OrangeStandardHighlightColor = 70,
#[doc = " Highlighting colors"]
WhiteStandardHighlightColor = 71,
#[doc = " Highlighting colors"]
BlackStandardHighlightColor = 72,
#[doc = " MiniGraph"]
MiniGraphOverlayColor = 73,
#[doc = " FeatureMap"]
FeatureMapBaseColor = 74,
#[doc = " FeatureMap"]
FeatureMapNavLineColor = 75,
#[doc = " FeatureMap"]
FeatureMapNavHighlightColor = 76,
#[doc = " FeatureMap"]
FeatureMapDataVariableColor = 77,
#[doc = " FeatureMap"]
FeatureMapAsciiStringColor = 78,
#[doc = " FeatureMap"]
FeatureMapUnicodeStringColor = 79,
#[doc = " FeatureMap"]
FeatureMapFunctionColor = 80,
#[doc = " FeatureMap"]
FeatureMapImportColor = 81,
#[doc = " FeatureMap"]
FeatureMapExternColor = 82,
#[doc = " FeatureMap"]
FeatureMapLibraryColor = 83,
#[doc = " Sidebar colors"]
SidebarBackgroundColor = 84,
#[doc = " Sidebar colors"]
SidebarInactiveIconColor = 85,
#[doc = " Sidebar colors"]
SidebarHoverIconColor = 86,
#[doc = " Sidebar colors"]
SidebarActiveIconColor = 87,
#[doc = " Sidebar colors"]
SidebarFocusedIconColor = 88,
#[doc = " Sidebar colors"]
SidebarHoverBackgroundColor = 89,
#[doc = " Sidebar colors"]
SidebarActiveBackgroundColor = 90,
#[doc = " Sidebar colors"]
SidebarFocusedBackgroundColor = 91,
#[doc = " Sidebar colors"]
SidebarActiveIndicatorLineColor = 92,
#[doc = " Deprecated, has no effect (paints as QPalette::Window)"]
SidebarHeaderBackgroundColor = 93,
SidebarHeaderTextColor = 94,
SidebarWidgetBackgroundColor = 95,
#[doc = " Pane colors"]
ActivePaneBackgroundColor = 96,
#[doc = " Pane colors"]
InactivePaneBackgroundColor = 97,
#[doc = " Pane colors"]
FocusedPaneBackgroundColor = 98,
#[doc = " Tab colors"]
TabBarTabActiveColor = 99,
#[doc = " Tab colors"]
TabBarTabHoverColor = 100,
#[doc = " Tab colors"]
TabBarTabInactiveColor = 101,
#[doc = " Tab colors"]
TabBarTabBorderColor = 102,
#[doc = " Tab colors"]
TabBarTabGlowColor = 103,
#[doc = " Status colors"]
StatusBarServerConnectedColor = 104,
#[doc = " Status colors"]
StatusBarServerDisconnectedColor = 105,
#[doc = " Status colors"]
StatusBarServerWarningColor = 106,
#[doc = " Status colors"]
StatusBarProjectColor = 107,
#[doc = " Brace colors"]
BraceOption1Color = 108,
#[doc = " Brace colors"]
BraceOption2Color = 109,
#[doc = " Brace colors"]
BraceOption3Color = 110,
#[doc = " Brace colors"]
BraceOption4Color = 111,
#[doc = " Brace colors"]
BraceOption5Color = 112,
#[doc = " Brace colors"]
BraceOption6Color = 113,
#[doc = " Type class colors"]
VoidTypeColor = 114,
#[doc = " Type class colors"]
StructureTypeColor = 115,
#[doc = " Type class colors"]
EnumerationTypeColor = 116,
#[doc = " Type class colors"]
FunctionTypeColor = 117,
#[doc = " Type class colors"]
BoolTypeColor = 118,
#[doc = " Type class colors"]
IntegerTypeColor = 119,
#[doc = " Type class colors"]
FloatTypeColor = 120,
#[doc = " Type class colors"]
PointerTypeColor = 121,
#[doc = " Type class colors"]
ArrayTypeColor = 122,
#[doc = " Type class colors"]
VarArgsTypeColor = 123,
#[doc = " Type class colors"]
ValueTypeColor = 124,
#[doc = " Type class colors"]
NamedTypeReferenceColor = 125,
#[doc = " Type class colors"]
WideCharTypeColor = 126,
}
#[repr(u8)]
#[doc = " The following edge styles map to Qt's Qt::PenStyle enumeration"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNEdgePenStyle {
#[doc = " no line at all."]
NoPen = 0,
#[doc = " A plain line (default)"]
SolidLine = 1,
#[doc = " Dashes separated by a few pixels."]
DashLine = 2,
#[doc = " Dots separated by a few pixels."]
DotLine = 3,
#[doc = " Alternate dots and dashes."]
DashDotLine = 4,
#[doc = " One dash, two dots, one dash, two dots."]
DashDotDotLine = 5,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNEdgeStyle {
pub style: BNEdgePenStyle,
pub width: usize,
pub color: BNThemeColor,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNEdgeStyle"][::std::mem::size_of::<BNEdgeStyle>() - 24usize];
["Alignment of BNEdgeStyle"][::std::mem::align_of::<BNEdgeStyle>() - 8usize];
["Offset of field: BNEdgeStyle::style"][::std::mem::offset_of!(BNEdgeStyle, style) - 0usize];
["Offset of field: BNEdgeStyle::width"][::std::mem::offset_of!(BNEdgeStyle, width) - 8usize];
["Offset of field: BNEdgeStyle::color"][::std::mem::offset_of!(BNEdgeStyle, color) - 16usize];
};
impl Default for BNEdgeStyle {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNFlowGraphEdge {
pub type_: BNBranchType,
pub target: *mut BNFlowGraphNode,
pub points: *mut BNPoint,
pub pointCount: usize,
pub backEdge: bool,
pub style: BNEdgeStyle,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNFlowGraphEdge"][::std::mem::size_of::<BNFlowGraphEdge>() - 64usize];
["Alignment of BNFlowGraphEdge"][::std::mem::align_of::<BNFlowGraphEdge>() - 8usize];
["Offset of field: BNFlowGraphEdge::type_"]
[::std::mem::offset_of!(BNFlowGraphEdge, type_) - 0usize];
["Offset of field: BNFlowGraphEdge::target"]
[::std::mem::offset_of!(BNFlowGraphEdge, target) - 8usize];
["Offset of field: BNFlowGraphEdge::points"]
[::std::mem::offset_of!(BNFlowGraphEdge, points) - 16usize];
["Offset of field: BNFlowGraphEdge::pointCount"]
[::std::mem::offset_of!(BNFlowGraphEdge, pointCount) - 24usize];
["Offset of field: BNFlowGraphEdge::backEdge"]
[::std::mem::offset_of!(BNFlowGraphEdge, backEdge) - 32usize];
["Offset of field: BNFlowGraphEdge::style"]
[::std::mem::offset_of!(BNFlowGraphEdge, style) - 40usize];
};
impl Default for BNFlowGraphEdge {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNHighlightColorStyle {
StandardHighlightColor = 0,
MixedHighlightColor = 1,
CustomHighlightColor = 2,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNHighlightStandardColor {
NoHighlightColor = 0,
BlueHighlightColor = 1,
GreenHighlightColor = 2,
CyanHighlightColor = 3,
RedHighlightColor = 4,
MagentaHighlightColor = 5,
YellowHighlightColor = 6,
OrangeHighlightColor = 7,
WhiteHighlightColor = 8,
BlackHighlightColor = 9,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNHighlightColor {
pub style: BNHighlightColorStyle,
pub color: BNHighlightStandardColor,
pub mixColor: BNHighlightStandardColor,
pub mix: u8,
pub r: u8,
pub g: u8,
pub b: u8,
pub alpha: u8,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNHighlightColor"][::std::mem::size_of::<BNHighlightColor>() - 8usize];
["Alignment of BNHighlightColor"][::std::mem::align_of::<BNHighlightColor>() - 1usize];
["Offset of field: BNHighlightColor::style"]
[::std::mem::offset_of!(BNHighlightColor, style) - 0usize];
["Offset of field: BNHighlightColor::color"]
[::std::mem::offset_of!(BNHighlightColor, color) - 1usize];
["Offset of field: BNHighlightColor::mixColor"]
[::std::mem::offset_of!(BNHighlightColor, mixColor) - 2usize];
["Offset of field: BNHighlightColor::mix"]
[::std::mem::offset_of!(BNHighlightColor, mix) - 3usize];
["Offset of field: BNHighlightColor::r"][::std::mem::offset_of!(BNHighlightColor, r) - 4usize];
["Offset of field: BNHighlightColor::g"][::std::mem::offset_of!(BNHighlightColor, g) - 5usize];
["Offset of field: BNHighlightColor::b"][::std::mem::offset_of!(BNHighlightColor, b) - 6usize];
["Offset of field: BNHighlightColor::alpha"]
[::std::mem::offset_of!(BNHighlightColor, alpha) - 7usize];
};
impl Default for BNHighlightColor {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNDisassemblyTextLineTypeInfo {
pub hasTypeInfo: bool,
pub parentType: *mut BNType,
pub fieldIndex: usize,
pub offset: u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNDisassemblyTextLineTypeInfo"]
[::std::mem::size_of::<BNDisassemblyTextLineTypeInfo>() - 32usize];
["Alignment of BNDisassemblyTextLineTypeInfo"]
[::std::mem::align_of::<BNDisassemblyTextLineTypeInfo>() - 8usize];
["Offset of field: BNDisassemblyTextLineTypeInfo::hasTypeInfo"]
[::std::mem::offset_of!(BNDisassemblyTextLineTypeInfo, hasTypeInfo) - 0usize];
["Offset of field: BNDisassemblyTextLineTypeInfo::parentType"]
[::std::mem::offset_of!(BNDisassemblyTextLineTypeInfo, parentType) - 8usize];
["Offset of field: BNDisassemblyTextLineTypeInfo::fieldIndex"]
[::std::mem::offset_of!(BNDisassemblyTextLineTypeInfo, fieldIndex) - 16usize];
["Offset of field: BNDisassemblyTextLineTypeInfo::offset"]
[::std::mem::offset_of!(BNDisassemblyTextLineTypeInfo, offset) - 24usize];
};
impl Default for BNDisassemblyTextLineTypeInfo {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNDisassemblyTextLine {
pub addr: u64,
pub instrIndex: usize,
pub tokens: *mut BNInstructionTextToken,
pub count: usize,
pub highlight: BNHighlightColor,
pub tags: *mut *mut BNTag,
pub tagCount: usize,
pub typeInfo: BNDisassemblyTextLineTypeInfo,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNDisassemblyTextLine"][::std::mem::size_of::<BNDisassemblyTextLine>() - 88usize];
["Alignment of BNDisassemblyTextLine"]
[::std::mem::align_of::<BNDisassemblyTextLine>() - 8usize];
["Offset of field: BNDisassemblyTextLine::addr"]
[::std::mem::offset_of!(BNDisassemblyTextLine, addr) - 0usize];
["Offset of field: BNDisassemblyTextLine::instrIndex"]
[::std::mem::offset_of!(BNDisassemblyTextLine, instrIndex) - 8usize];
["Offset of field: BNDisassemblyTextLine::tokens"]
[::std::mem::offset_of!(BNDisassemblyTextLine, tokens) - 16usize];
["Offset of field: BNDisassemblyTextLine::count"]
[::std::mem::offset_of!(BNDisassemblyTextLine, count) - 24usize];
["Offset of field: BNDisassemblyTextLine::highlight"]
[::std::mem::offset_of!(BNDisassemblyTextLine, highlight) - 32usize];
["Offset of field: BNDisassemblyTextLine::tags"]
[::std::mem::offset_of!(BNDisassemblyTextLine, tags) - 40usize];
["Offset of field: BNDisassemblyTextLine::tagCount"]
[::std::mem::offset_of!(BNDisassemblyTextLine, tagCount) - 48usize];
["Offset of field: BNDisassemblyTextLine::typeInfo"]
[::std::mem::offset_of!(BNDisassemblyTextLine, typeInfo) - 56usize];
};
impl Default for BNDisassemblyTextLine {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNLinearDisassemblyLine {
pub type_: BNLinearDisassemblyLineType,
pub function: *mut BNFunction,
pub block: *mut BNBasicBlock,
pub contents: BNDisassemblyTextLine,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNLinearDisassemblyLine"]
[::std::mem::size_of::<BNLinearDisassemblyLine>() - 112usize];
["Alignment of BNLinearDisassemblyLine"]
[::std::mem::align_of::<BNLinearDisassemblyLine>() - 8usize];
["Offset of field: BNLinearDisassemblyLine::type_"]
[::std::mem::offset_of!(BNLinearDisassemblyLine, type_) - 0usize];
["Offset of field: BNLinearDisassemblyLine::function"]
[::std::mem::offset_of!(BNLinearDisassemblyLine, function) - 8usize];
["Offset of field: BNLinearDisassemblyLine::block"]
[::std::mem::offset_of!(BNLinearDisassemblyLine, block) - 16usize];
["Offset of field: BNLinearDisassemblyLine::contents"]
[::std::mem::offset_of!(BNLinearDisassemblyLine, contents) - 24usize];
};
impl Default for BNLinearDisassemblyLine {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNReferenceSource {
pub func: *mut BNFunction,
pub arch: *mut BNArchitecture,
pub addr: u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNReferenceSource"][::std::mem::size_of::<BNReferenceSource>() - 24usize];
["Alignment of BNReferenceSource"][::std::mem::align_of::<BNReferenceSource>() - 8usize];
["Offset of field: BNReferenceSource::func"]
[::std::mem::offset_of!(BNReferenceSource, func) - 0usize];
["Offset of field: BNReferenceSource::arch"]
[::std::mem::offset_of!(BNReferenceSource, arch) - 8usize];
["Offset of field: BNReferenceSource::addr"]
[::std::mem::offset_of!(BNReferenceSource, addr) - 16usize];
};
impl Default for BNReferenceSource {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNTypeFieldReference {
pub func: *mut BNFunction,
pub arch: *mut BNArchitecture,
pub addr: u64,
pub size: usize,
pub incomingType: BNTypeWithConfidence,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNTypeFieldReference"][::std::mem::size_of::<BNTypeFieldReference>() - 48usize];
["Alignment of BNTypeFieldReference"][::std::mem::align_of::<BNTypeFieldReference>() - 8usize];
["Offset of field: BNTypeFieldReference::func"]
[::std::mem::offset_of!(BNTypeFieldReference, func) - 0usize];
["Offset of field: BNTypeFieldReference::arch"]
[::std::mem::offset_of!(BNTypeFieldReference, arch) - 8usize];
["Offset of field: BNTypeFieldReference::addr"]
[::std::mem::offset_of!(BNTypeFieldReference, addr) - 16usize];
["Offset of field: BNTypeFieldReference::size"]
[::std::mem::offset_of!(BNTypeFieldReference, size) - 24usize];
["Offset of field: BNTypeFieldReference::incomingType"]
[::std::mem::offset_of!(BNTypeFieldReference, incomingType) - 32usize];
};
impl Default for BNTypeFieldReference {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNILReferenceSource {
pub func: *mut BNFunction,
pub arch: *mut BNArchitecture,
pub addr: u64,
pub type_: BNFunctionGraphType,
pub exprId: usize,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNILReferenceSource"][::std::mem::size_of::<BNILReferenceSource>() - 40usize];
["Alignment of BNILReferenceSource"][::std::mem::align_of::<BNILReferenceSource>() - 8usize];
["Offset of field: BNILReferenceSource::func"]
[::std::mem::offset_of!(BNILReferenceSource, func) - 0usize];
["Offset of field: BNILReferenceSource::arch"]
[::std::mem::offset_of!(BNILReferenceSource, arch) - 8usize];
["Offset of field: BNILReferenceSource::addr"]
[::std::mem::offset_of!(BNILReferenceSource, addr) - 16usize];
["Offset of field: BNILReferenceSource::type_"]
[::std::mem::offset_of!(BNILReferenceSource, type_) - 24usize];
["Offset of field: BNILReferenceSource::exprId"]
[::std::mem::offset_of!(BNILReferenceSource, exprId) - 32usize];
};
impl Default for BNILReferenceSource {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNTypeFieldReferenceSizeInfo {
pub offset: u64,
pub sizes: *mut usize,
pub count: usize,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNTypeFieldReferenceSizeInfo"]
[::std::mem::size_of::<BNTypeFieldReferenceSizeInfo>() - 24usize];
["Alignment of BNTypeFieldReferenceSizeInfo"]
[::std::mem::align_of::<BNTypeFieldReferenceSizeInfo>() - 8usize];
["Offset of field: BNTypeFieldReferenceSizeInfo::offset"]
[::std::mem::offset_of!(BNTypeFieldReferenceSizeInfo, offset) - 0usize];
["Offset of field: BNTypeFieldReferenceSizeInfo::sizes"]
[::std::mem::offset_of!(BNTypeFieldReferenceSizeInfo, sizes) - 8usize];
["Offset of field: BNTypeFieldReferenceSizeInfo::count"]
[::std::mem::offset_of!(BNTypeFieldReferenceSizeInfo, count) - 16usize];
};
impl Default for BNTypeFieldReferenceSizeInfo {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNTypeFieldReferenceTypeInfo {
pub offset: u64,
pub types: *mut BNTypeWithConfidence,
pub count: usize,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNTypeFieldReferenceTypeInfo"]
[::std::mem::size_of::<BNTypeFieldReferenceTypeInfo>() - 24usize];
["Alignment of BNTypeFieldReferenceTypeInfo"]
[::std::mem::align_of::<BNTypeFieldReferenceTypeInfo>() - 8usize];
["Offset of field: BNTypeFieldReferenceTypeInfo::offset"]
[::std::mem::offset_of!(BNTypeFieldReferenceTypeInfo, offset) - 0usize];
["Offset of field: BNTypeFieldReferenceTypeInfo::types"]
[::std::mem::offset_of!(BNTypeFieldReferenceTypeInfo, types) - 8usize];
["Offset of field: BNTypeFieldReferenceTypeInfo::count"]
[::std::mem::offset_of!(BNTypeFieldReferenceTypeInfo, count) - 16usize];
};
impl Default for BNTypeFieldReferenceTypeInfo {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNVariableReferenceSource {
pub var: BNVariable,
pub source: BNILReferenceSource,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNVariableReferenceSource"]
[::std::mem::size_of::<BNVariableReferenceSource>() - 56usize];
["Alignment of BNVariableReferenceSource"]
[::std::mem::align_of::<BNVariableReferenceSource>() - 8usize];
["Offset of field: BNVariableReferenceSource::var"]
[::std::mem::offset_of!(BNVariableReferenceSource, var) - 0usize];
["Offset of field: BNVariableReferenceSource::source"]
[::std::mem::offset_of!(BNVariableReferenceSource, source) - 16usize];
};
impl Default for BNVariableReferenceSource {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(u8)]
#[doc = " This describes how a type is referenced"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNTypeReferenceType {
#[doc = " Type A contains type B"]
DirectTypeReferenceType = 0,
#[doc = " All other cases, e.g., type A contains a pointer to type B"]
IndirectTypeReferenceType = 1,
#[doc = " The nature of the reference is unknown"]
UnknownTypeReferenceType = 2,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNTypeReferenceSource {
pub name: BNQualifiedName,
pub offset: u64,
pub type_: BNTypeReferenceType,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNTypeReferenceSource"][::std::mem::size_of::<BNTypeReferenceSource>() - 40usize];
["Alignment of BNTypeReferenceSource"]
[::std::mem::align_of::<BNTypeReferenceSource>() - 8usize];
["Offset of field: BNTypeReferenceSource::name"]
[::std::mem::offset_of!(BNTypeReferenceSource, name) - 0usize];
["Offset of field: BNTypeReferenceSource::offset"]
[::std::mem::offset_of!(BNTypeReferenceSource, offset) - 24usize];
["Offset of field: BNTypeReferenceSource::type_"]
[::std::mem::offset_of!(BNTypeReferenceSource, type_) - 32usize];
};
impl Default for BNTypeReferenceSource {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNTagTypeType {
UserTagType = 0,
NotificationTagType = 1,
BookmarksTagType = 2,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNTagReferenceType {
AddressTagReference = 0,
FunctionTagReference = 1,
DataTagReference = 2,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNTagReference {
pub refType: BNTagReferenceType,
pub autoDefined: bool,
pub tag: *mut BNTag,
pub arch: *mut BNArchitecture,
pub func: *mut BNFunction,
pub addr: u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNTagReference"][::std::mem::size_of::<BNTagReference>() - 40usize];
["Alignment of BNTagReference"][::std::mem::align_of::<BNTagReference>() - 8usize];
["Offset of field: BNTagReference::refType"]
[::std::mem::offset_of!(BNTagReference, refType) - 0usize];
["Offset of field: BNTagReference::autoDefined"]
[::std::mem::offset_of!(BNTagReference, autoDefined) - 1usize];
["Offset of field: BNTagReference::tag"][::std::mem::offset_of!(BNTagReference, tag) - 8usize];
["Offset of field: BNTagReference::arch"]
[::std::mem::offset_of!(BNTagReference, arch) - 16usize];
["Offset of field: BNTagReference::func"]
[::std::mem::offset_of!(BNTagReference, func) - 24usize];
["Offset of field: BNTagReference::addr"]
[::std::mem::offset_of!(BNTagReference, addr) - 32usize];
};
impl Default for BNTagReference {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNCallingConventionWithConfidence {
pub convention: *mut BNCallingConvention,
pub confidence: u8,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNCallingConventionWithConfidence"]
[::std::mem::size_of::<BNCallingConventionWithConfidence>() - 16usize];
["Alignment of BNCallingConventionWithConfidence"]
[::std::mem::align_of::<BNCallingConventionWithConfidence>() - 8usize];
["Offset of field: BNCallingConventionWithConfidence::convention"]
[::std::mem::offset_of!(BNCallingConventionWithConfidence, convention) - 0usize];
["Offset of field: BNCallingConventionWithConfidence::confidence"]
[::std::mem::offset_of!(BNCallingConventionWithConfidence, confidence) - 8usize];
};
impl Default for BNCallingConventionWithConfidence {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct BNBoolWithConfidence {
pub value: bool,
pub confidence: u8,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNBoolWithConfidence"][::std::mem::size_of::<BNBoolWithConfidence>() - 2usize];
["Alignment of BNBoolWithConfidence"][::std::mem::align_of::<BNBoolWithConfidence>() - 1usize];
["Offset of field: BNBoolWithConfidence::value"]
[::std::mem::offset_of!(BNBoolWithConfidence, value) - 0usize];
["Offset of field: BNBoolWithConfidence::confidence"]
[::std::mem::offset_of!(BNBoolWithConfidence, confidence) - 1usize];
};
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct BNOffsetWithConfidence {
pub value: i64,
pub confidence: u8,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNOffsetWithConfidence"][::std::mem::size_of::<BNOffsetWithConfidence>() - 16usize];
["Alignment of BNOffsetWithConfidence"]
[::std::mem::align_of::<BNOffsetWithConfidence>() - 8usize];
["Offset of field: BNOffsetWithConfidence::value"]
[::std::mem::offset_of!(BNOffsetWithConfidence, value) - 0usize];
["Offset of field: BNOffsetWithConfidence::confidence"]
[::std::mem::offset_of!(BNOffsetWithConfidence, confidence) - 8usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNParameterVariablesWithConfidence {
pub vars: *mut BNVariable,
pub count: usize,
pub confidence: u8,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNParameterVariablesWithConfidence"]
[::std::mem::size_of::<BNParameterVariablesWithConfidence>() - 24usize];
["Alignment of BNParameterVariablesWithConfidence"]
[::std::mem::align_of::<BNParameterVariablesWithConfidence>() - 8usize];
["Offset of field: BNParameterVariablesWithConfidence::vars"]
[::std::mem::offset_of!(BNParameterVariablesWithConfidence, vars) - 0usize];
["Offset of field: BNParameterVariablesWithConfidence::count"]
[::std::mem::offset_of!(BNParameterVariablesWithConfidence, count) - 8usize];
["Offset of field: BNParameterVariablesWithConfidence::confidence"]
[::std::mem::offset_of!(BNParameterVariablesWithConfidence, confidence) - 16usize];
};
impl Default for BNParameterVariablesWithConfidence {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNRegisterSetWithConfidence {
pub regs: *mut u32,
pub count: usize,
pub confidence: u8,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNRegisterSetWithConfidence"]
[::std::mem::size_of::<BNRegisterSetWithConfidence>() - 24usize];
["Alignment of BNRegisterSetWithConfidence"]
[::std::mem::align_of::<BNRegisterSetWithConfidence>() - 8usize];
["Offset of field: BNRegisterSetWithConfidence::regs"]
[::std::mem::offset_of!(BNRegisterSetWithConfidence, regs) - 0usize];
["Offset of field: BNRegisterSetWithConfidence::count"]
[::std::mem::offset_of!(BNRegisterSetWithConfidence, count) - 8usize];
["Offset of field: BNRegisterSetWithConfidence::confidence"]
[::std::mem::offset_of!(BNRegisterSetWithConfidence, confidence) - 16usize];
};
impl Default for BNRegisterSetWithConfidence {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNFunctionParameter {
pub name: *mut ::std::os::raw::c_char,
pub type_: *mut BNType,
pub typeConfidence: u8,
pub defaultLocation: bool,
pub location: BNVariable,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNFunctionParameter"][::std::mem::size_of::<BNFunctionParameter>() - 40usize];
["Alignment of BNFunctionParameter"][::std::mem::align_of::<BNFunctionParameter>() - 8usize];
["Offset of field: BNFunctionParameter::name"]
[::std::mem::offset_of!(BNFunctionParameter, name) - 0usize];
["Offset of field: BNFunctionParameter::type_"]
[::std::mem::offset_of!(BNFunctionParameter, type_) - 8usize];
["Offset of field: BNFunctionParameter::typeConfidence"]
[::std::mem::offset_of!(BNFunctionParameter, typeConfidence) - 16usize];
["Offset of field: BNFunctionParameter::defaultLocation"]
[::std::mem::offset_of!(BNFunctionParameter, defaultLocation) - 17usize];
["Offset of field: BNFunctionParameter::location"]
[::std::mem::offset_of!(BNFunctionParameter, location) - 24usize];
};
impl Default for BNFunctionParameter {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNQualifiedNameAndType {
pub name: BNQualifiedName,
pub type_: *mut BNType,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNQualifiedNameAndType"][::std::mem::size_of::<BNQualifiedNameAndType>() - 32usize];
["Alignment of BNQualifiedNameAndType"]
[::std::mem::align_of::<BNQualifiedNameAndType>() - 8usize];
["Offset of field: BNQualifiedNameAndType::name"]
[::std::mem::offset_of!(BNQualifiedNameAndType, name) - 0usize];
["Offset of field: BNQualifiedNameAndType::type_"]
[::std::mem::offset_of!(BNQualifiedNameAndType, type_) - 24usize];
};
impl Default for BNQualifiedNameAndType {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNQualifiedNameTypeAndId {
pub name: BNQualifiedName,
pub id: *mut ::std::os::raw::c_char,
pub type_: *mut BNType,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNQualifiedNameTypeAndId"]
[::std::mem::size_of::<BNQualifiedNameTypeAndId>() - 40usize];
["Alignment of BNQualifiedNameTypeAndId"]
[::std::mem::align_of::<BNQualifiedNameTypeAndId>() - 8usize];
["Offset of field: BNQualifiedNameTypeAndId::name"]
[::std::mem::offset_of!(BNQualifiedNameTypeAndId, name) - 0usize];
["Offset of field: BNQualifiedNameTypeAndId::id"]
[::std::mem::offset_of!(BNQualifiedNameTypeAndId, id) - 24usize];
["Offset of field: BNQualifiedNameTypeAndId::type_"]
[::std::mem::offset_of!(BNQualifiedNameTypeAndId, type_) - 32usize];
};
impl Default for BNQualifiedNameTypeAndId {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNStructureMember {
pub type_: *mut BNType,
pub name: *mut ::std::os::raw::c_char,
pub offset: u64,
pub typeConfidence: u8,
pub access: BNMemberAccess,
pub scope: BNMemberScope,
pub bitPosition: u8,
pub bitWidth: u8,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNStructureMember"][::std::mem::size_of::<BNStructureMember>() - 32usize];
["Alignment of BNStructureMember"][::std::mem::align_of::<BNStructureMember>() - 8usize];
["Offset of field: BNStructureMember::type_"]
[::std::mem::offset_of!(BNStructureMember, type_) - 0usize];
["Offset of field: BNStructureMember::name"]
[::std::mem::offset_of!(BNStructureMember, name) - 8usize];
["Offset of field: BNStructureMember::offset"]
[::std::mem::offset_of!(BNStructureMember, offset) - 16usize];
["Offset of field: BNStructureMember::typeConfidence"]
[::std::mem::offset_of!(BNStructureMember, typeConfidence) - 24usize];
["Offset of field: BNStructureMember::access"]
[::std::mem::offset_of!(BNStructureMember, access) - 25usize];
["Offset of field: BNStructureMember::scope"]
[::std::mem::offset_of!(BNStructureMember, scope) - 26usize];
["Offset of field: BNStructureMember::bitPosition"]
[::std::mem::offset_of!(BNStructureMember, bitPosition) - 27usize];
["Offset of field: BNStructureMember::bitWidth"]
[::std::mem::offset_of!(BNStructureMember, bitWidth) - 28usize];
};
impl Default for BNStructureMember {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNInheritedStructureMember {
pub base: *mut BNNamedTypeReference,
pub baseOffset: u64,
pub member: BNStructureMember,
pub memberIndex: usize,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNInheritedStructureMember"]
[::std::mem::size_of::<BNInheritedStructureMember>() - 56usize];
["Alignment of BNInheritedStructureMember"]
[::std::mem::align_of::<BNInheritedStructureMember>() - 8usize];
["Offset of field: BNInheritedStructureMember::base"]
[::std::mem::offset_of!(BNInheritedStructureMember, base) - 0usize];
["Offset of field: BNInheritedStructureMember::baseOffset"]
[::std::mem::offset_of!(BNInheritedStructureMember, baseOffset) - 8usize];
["Offset of field: BNInheritedStructureMember::member"]
[::std::mem::offset_of!(BNInheritedStructureMember, member) - 16usize];
["Offset of field: BNInheritedStructureMember::memberIndex"]
[::std::mem::offset_of!(BNInheritedStructureMember, memberIndex) - 48usize];
};
impl Default for BNInheritedStructureMember {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNBaseStructure {
pub type_: *mut BNNamedTypeReference,
pub offset: u64,
pub width: u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNBaseStructure"][::std::mem::size_of::<BNBaseStructure>() - 24usize];
["Alignment of BNBaseStructure"][::std::mem::align_of::<BNBaseStructure>() - 8usize];
["Offset of field: BNBaseStructure::type_"]
[::std::mem::offset_of!(BNBaseStructure, type_) - 0usize];
["Offset of field: BNBaseStructure::offset"]
[::std::mem::offset_of!(BNBaseStructure, offset) - 8usize];
["Offset of field: BNBaseStructure::width"]
[::std::mem::offset_of!(BNBaseStructure, width) - 16usize];
};
impl Default for BNBaseStructure {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNEnumerationMember {
pub name: *mut ::std::os::raw::c_char,
pub value: u64,
pub isDefault: bool,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNEnumerationMember"][::std::mem::size_of::<BNEnumerationMember>() - 24usize];
["Alignment of BNEnumerationMember"][::std::mem::align_of::<BNEnumerationMember>() - 8usize];
["Offset of field: BNEnumerationMember::name"]
[::std::mem::offset_of!(BNEnumerationMember, name) - 0usize];
["Offset of field: BNEnumerationMember::value"]
[::std::mem::offset_of!(BNEnumerationMember, value) - 8usize];
["Offset of field: BNEnumerationMember::isDefault"]
[::std::mem::offset_of!(BNEnumerationMember, isDefault) - 16usize];
};
impl Default for BNEnumerationMember {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNFunctionRecognizer {
pub context: *mut ::std::os::raw::c_void,
pub recognizeLowLevelIL: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
data: *mut BNBinaryView,
func: *mut BNFunction,
il: *mut BNLowLevelILFunction,
) -> bool,
>,
pub recognizeMediumLevelIL: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
data: *mut BNBinaryView,
func: *mut BNFunction,
il: *mut BNMediumLevelILFunction,
) -> bool,
>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNFunctionRecognizer"][::std::mem::size_of::<BNFunctionRecognizer>() - 24usize];
["Alignment of BNFunctionRecognizer"][::std::mem::align_of::<BNFunctionRecognizer>() - 8usize];
["Offset of field: BNFunctionRecognizer::context"]
[::std::mem::offset_of!(BNFunctionRecognizer, context) - 0usize];
["Offset of field: BNFunctionRecognizer::recognizeLowLevelIL"]
[::std::mem::offset_of!(BNFunctionRecognizer, recognizeLowLevelIL) - 8usize];
["Offset of field: BNFunctionRecognizer::recognizeMediumLevelIL"]
[::std::mem::offset_of!(BNFunctionRecognizer, recognizeMediumLevelIL) - 16usize];
};
impl Default for BNFunctionRecognizer {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNCustomRelocationHandler {
pub context: *mut ::std::os::raw::c_void,
pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
pub getRelocationInfo: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
arch: *mut BNArchitecture,
result: *mut BNRelocationInfo,
resultCount: usize,
) -> bool,
>,
pub applyRelocation: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
arch: *mut BNArchitecture,
reloc: *mut BNRelocation,
dest: *mut u8,
len: usize,
) -> bool,
>,
pub getOperandForExternalRelocation: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
data: *const u8,
addr: u64,
length: usize,
il: *mut BNLowLevelILFunction,
relocation: *mut BNRelocation,
) -> usize,
>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNCustomRelocationHandler"]
[::std::mem::size_of::<BNCustomRelocationHandler>() - 40usize];
["Alignment of BNCustomRelocationHandler"]
[::std::mem::align_of::<BNCustomRelocationHandler>() - 8usize];
["Offset of field: BNCustomRelocationHandler::context"]
[::std::mem::offset_of!(BNCustomRelocationHandler, context) - 0usize];
["Offset of field: BNCustomRelocationHandler::freeObject"]
[::std::mem::offset_of!(BNCustomRelocationHandler, freeObject) - 8usize];
["Offset of field: BNCustomRelocationHandler::getRelocationInfo"]
[::std::mem::offset_of!(BNCustomRelocationHandler, getRelocationInfo) - 16usize];
["Offset of field: BNCustomRelocationHandler::applyRelocation"]
[::std::mem::offset_of!(BNCustomRelocationHandler, applyRelocation) - 24usize];
["Offset of field: BNCustomRelocationHandler::getOperandForExternalRelocation"][::std::mem::offset_of!(
BNCustomRelocationHandler,
getOperandForExternalRelocation
) - 32usize];
};
impl Default for BNCustomRelocationHandler {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNTypeParserOption {
IncludeSystemTypes = 0,
BuiltinMacros = 1,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNParsedType {
pub name: BNQualifiedName,
pub type_: *mut BNType,
pub isUser: bool,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNParsedType"][::std::mem::size_of::<BNParsedType>() - 40usize];
["Alignment of BNParsedType"][::std::mem::align_of::<BNParsedType>() - 8usize];
["Offset of field: BNParsedType::name"][::std::mem::offset_of!(BNParsedType, name) - 0usize];
["Offset of field: BNParsedType::type_"][::std::mem::offset_of!(BNParsedType, type_) - 24usize];
["Offset of field: BNParsedType::isUser"]
[::std::mem::offset_of!(BNParsedType, isUser) - 32usize];
};
impl Default for BNParsedType {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNTypeParserResult {
pub types: *mut BNParsedType,
pub variables: *mut BNParsedType,
pub functions: *mut BNParsedType,
pub typeCount: usize,
pub variableCount: usize,
pub functionCount: usize,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNTypeParserResult"][::std::mem::size_of::<BNTypeParserResult>() - 48usize];
["Alignment of BNTypeParserResult"][::std::mem::align_of::<BNTypeParserResult>() - 8usize];
["Offset of field: BNTypeParserResult::types"]
[::std::mem::offset_of!(BNTypeParserResult, types) - 0usize];
["Offset of field: BNTypeParserResult::variables"]
[::std::mem::offset_of!(BNTypeParserResult, variables) - 8usize];
["Offset of field: BNTypeParserResult::functions"]
[::std::mem::offset_of!(BNTypeParserResult, functions) - 16usize];
["Offset of field: BNTypeParserResult::typeCount"]
[::std::mem::offset_of!(BNTypeParserResult, typeCount) - 24usize];
["Offset of field: BNTypeParserResult::variableCount"]
[::std::mem::offset_of!(BNTypeParserResult, variableCount) - 32usize];
["Offset of field: BNTypeParserResult::functionCount"]
[::std::mem::offset_of!(BNTypeParserResult, functionCount) - 40usize];
};
impl Default for BNTypeParserResult {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNTypeParserErrorSeverity {
IgnoredSeverity = 0,
NoteSeverity = 1,
RemarkSeverity = 2,
WarningSeverity = 3,
ErrorSeverity = 4,
FatalSeverity = 5,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNTypeParserError {
pub severity: BNTypeParserErrorSeverity,
pub message: *mut ::std::os::raw::c_char,
pub fileName: *mut ::std::os::raw::c_char,
pub line: u64,
pub column: u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNTypeParserError"][::std::mem::size_of::<BNTypeParserError>() - 40usize];
["Alignment of BNTypeParserError"][::std::mem::align_of::<BNTypeParserError>() - 8usize];
["Offset of field: BNTypeParserError::severity"]
[::std::mem::offset_of!(BNTypeParserError, severity) - 0usize];
["Offset of field: BNTypeParserError::message"]
[::std::mem::offset_of!(BNTypeParserError, message) - 8usize];
["Offset of field: BNTypeParserError::fileName"]
[::std::mem::offset_of!(BNTypeParserError, fileName) - 16usize];
["Offset of field: BNTypeParserError::line"]
[::std::mem::offset_of!(BNTypeParserError, line) - 24usize];
["Offset of field: BNTypeParserError::column"]
[::std::mem::offset_of!(BNTypeParserError, column) - 32usize];
};
impl Default for BNTypeParserError {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNQualifiedNameList {
pub names: *mut BNQualifiedName,
pub count: usize,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNQualifiedNameList"][::std::mem::size_of::<BNQualifiedNameList>() - 16usize];
["Alignment of BNQualifiedNameList"][::std::mem::align_of::<BNQualifiedNameList>() - 8usize];
["Offset of field: BNQualifiedNameList::names"]
[::std::mem::offset_of!(BNQualifiedNameList, names) - 0usize];
["Offset of field: BNQualifiedNameList::count"]
[::std::mem::offset_of!(BNQualifiedNameList, count) - 8usize];
};
impl Default for BNQualifiedNameList {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNUpdateResult {
UpdateFailed = 0,
UpdateSuccess = 1,
AlreadyUpToDate = 2,
UpdateAvailable = 3,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNUpdateChannel {
pub name: *mut ::std::os::raw::c_char,
pub description: *mut ::std::os::raw::c_char,
pub latestVersion: *mut ::std::os::raw::c_char,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNUpdateChannel"][::std::mem::size_of::<BNUpdateChannel>() - 24usize];
["Alignment of BNUpdateChannel"][::std::mem::align_of::<BNUpdateChannel>() - 8usize];
["Offset of field: BNUpdateChannel::name"]
[::std::mem::offset_of!(BNUpdateChannel, name) - 0usize];
["Offset of field: BNUpdateChannel::description"]
[::std::mem::offset_of!(BNUpdateChannel, description) - 8usize];
["Offset of field: BNUpdateChannel::latestVersion"]
[::std::mem::offset_of!(BNUpdateChannel, latestVersion) - 16usize];
};
impl Default for BNUpdateChannel {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNVersionInfo {
pub major: u32,
pub minor: u32,
pub build: u32,
pub channel: *mut ::std::os::raw::c_char,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNVersionInfo"][::std::mem::size_of::<BNVersionInfo>() - 24usize];
["Alignment of BNVersionInfo"][::std::mem::align_of::<BNVersionInfo>() - 8usize];
["Offset of field: BNVersionInfo::major"]
[::std::mem::offset_of!(BNVersionInfo, major) - 0usize];
["Offset of field: BNVersionInfo::minor"]
[::std::mem::offset_of!(BNVersionInfo, minor) - 4usize];
["Offset of field: BNVersionInfo::build"]
[::std::mem::offset_of!(BNVersionInfo, build) - 8usize];
["Offset of field: BNVersionInfo::channel"]
[::std::mem::offset_of!(BNVersionInfo, channel) - 16usize];
};
impl Default for BNVersionInfo {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNChangelogEntry {
pub version: BNVersionInfo,
pub notes: *mut ::std::os::raw::c_char,
pub time: u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNChangelogEntry"][::std::mem::size_of::<BNChangelogEntry>() - 40usize];
["Alignment of BNChangelogEntry"][::std::mem::align_of::<BNChangelogEntry>() - 8usize];
["Offset of field: BNChangelogEntry::version"]
[::std::mem::offset_of!(BNChangelogEntry, version) - 0usize];
["Offset of field: BNChangelogEntry::notes"]
[::std::mem::offset_of!(BNChangelogEntry, notes) - 24usize];
["Offset of field: BNChangelogEntry::time"]
[::std::mem::offset_of!(BNChangelogEntry, time) - 32usize];
};
impl Default for BNChangelogEntry {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNUpdateVersionNew {
pub version: BNVersionInfo,
pub name: *mut ::std::os::raw::c_char,
pub time: u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNUpdateVersionNew"][::std::mem::size_of::<BNUpdateVersionNew>() - 40usize];
["Alignment of BNUpdateVersionNew"][::std::mem::align_of::<BNUpdateVersionNew>() - 8usize];
["Offset of field: BNUpdateVersionNew::version"]
[::std::mem::offset_of!(BNUpdateVersionNew, version) - 0usize];
["Offset of field: BNUpdateVersionNew::name"]
[::std::mem::offset_of!(BNUpdateVersionNew, name) - 24usize];
["Offset of field: BNUpdateVersionNew::time"]
[::std::mem::offset_of!(BNUpdateVersionNew, time) - 32usize];
};
impl Default for BNUpdateVersionNew {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNUpdateChannelFullInfo {
pub versions: *mut BNUpdateVersionNew,
pub versionCount: u64,
pub changelogEntries: *mut BNChangelogEntry,
pub changelogEntryCount: u64,
pub name: *mut ::std::os::raw::c_char,
pub desc: *mut ::std::os::raw::c_char,
pub latestVersion: *mut ::std::os::raw::c_char,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNUpdateChannelFullInfo"][::std::mem::size_of::<BNUpdateChannelFullInfo>() - 56usize];
["Alignment of BNUpdateChannelFullInfo"]
[::std::mem::align_of::<BNUpdateChannelFullInfo>() - 8usize];
["Offset of field: BNUpdateChannelFullInfo::versions"]
[::std::mem::offset_of!(BNUpdateChannelFullInfo, versions) - 0usize];
["Offset of field: BNUpdateChannelFullInfo::versionCount"]
[::std::mem::offset_of!(BNUpdateChannelFullInfo, versionCount) - 8usize];
["Offset of field: BNUpdateChannelFullInfo::changelogEntries"]
[::std::mem::offset_of!(BNUpdateChannelFullInfo, changelogEntries) - 16usize];
["Offset of field: BNUpdateChannelFullInfo::changelogEntryCount"]
[::std::mem::offset_of!(BNUpdateChannelFullInfo, changelogEntryCount) - 24usize];
["Offset of field: BNUpdateChannelFullInfo::name"]
[::std::mem::offset_of!(BNUpdateChannelFullInfo, name) - 32usize];
["Offset of field: BNUpdateChannelFullInfo::desc"]
[::std::mem::offset_of!(BNUpdateChannelFullInfo, desc) - 40usize];
["Offset of field: BNUpdateChannelFullInfo::latestVersion"]
[::std::mem::offset_of!(BNUpdateChannelFullInfo, latestVersion) - 48usize];
};
impl Default for BNUpdateChannelFullInfo {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNUpdateVersion {
pub version: *mut ::std::os::raw::c_char,
pub notes: *mut ::std::os::raw::c_char,
pub time: u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNUpdateVersion"][::std::mem::size_of::<BNUpdateVersion>() - 24usize];
["Alignment of BNUpdateVersion"][::std::mem::align_of::<BNUpdateVersion>() - 8usize];
["Offset of field: BNUpdateVersion::version"]
[::std::mem::offset_of!(BNUpdateVersion, version) - 0usize];
["Offset of field: BNUpdateVersion::notes"]
[::std::mem::offset_of!(BNUpdateVersion, notes) - 8usize];
["Offset of field: BNUpdateVersion::time"]
[::std::mem::offset_of!(BNUpdateVersion, time) - 16usize];
};
impl Default for BNUpdateVersion {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNStringReference {
pub type_: BNStringType,
pub start: u64,
pub length: usize,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNStringReference"][::std::mem::size_of::<BNStringReference>() - 24usize];
["Alignment of BNStringReference"][::std::mem::align_of::<BNStringReference>() - 8usize];
["Offset of field: BNStringReference::type_"]
[::std::mem::offset_of!(BNStringReference, type_) - 0usize];
["Offset of field: BNStringReference::start"]
[::std::mem::offset_of!(BNStringReference, start) - 8usize];
["Offset of field: BNStringReference::length"]
[::std::mem::offset_of!(BNStringReference, length) - 16usize];
};
impl Default for BNStringReference {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNPluginCommandType {
DefaultPluginCommand = 0,
AddressPluginCommand = 1,
RangePluginCommand = 2,
FunctionPluginCommand = 3,
LowLevelILFunctionPluginCommand = 4,
LowLevelILInstructionPluginCommand = 5,
MediumLevelILFunctionPluginCommand = 6,
MediumLevelILInstructionPluginCommand = 7,
HighLevelILFunctionPluginCommand = 8,
HighLevelILInstructionPluginCommand = 9,
ProjectPluginCommand = 10,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNPluginCommand {
pub name: *mut ::std::os::raw::c_char,
pub description: *mut ::std::os::raw::c_char,
pub type_: BNPluginCommandType,
pub context: *mut ::std::os::raw::c_void,
pub defaultCommand: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
>,
pub addressCommand: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView, addr: u64),
>,
pub rangeCommand: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
addr: u64,
len: u64,
),
>,
pub functionCommand: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
func: *mut BNFunction,
),
>,
pub lowLevelILFunctionCommand: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
func: *mut BNLowLevelILFunction,
),
>,
pub lowLevelILInstructionCommand: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
func: *mut BNLowLevelILFunction,
instr: usize,
),
>,
pub mediumLevelILFunctionCommand: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
func: *mut BNMediumLevelILFunction,
),
>,
pub mediumLevelILInstructionCommand: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
func: *mut BNMediumLevelILFunction,
instr: usize,
),
>,
pub highLevelILFunctionCommand: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
func: *mut BNHighLevelILFunction,
),
>,
pub highLevelILInstructionCommand: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
func: *mut BNHighLevelILFunction,
instr: usize,
),
>,
pub projectCommand: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNProject),
>,
pub defaultIsValid: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView) -> bool,
>,
pub addressIsValid: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
addr: u64,
) -> bool,
>,
pub rangeIsValid: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
addr: u64,
len: u64,
) -> bool,
>,
pub functionIsValid: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
func: *mut BNFunction,
) -> bool,
>,
pub lowLevelILFunctionIsValid: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
func: *mut BNLowLevelILFunction,
) -> bool,
>,
pub lowLevelILInstructionIsValid: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
func: *mut BNLowLevelILFunction,
instr: usize,
) -> bool,
>,
pub mediumLevelILFunctionIsValid: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
func: *mut BNMediumLevelILFunction,
) -> bool,
>,
pub mediumLevelILInstructionIsValid: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
func: *mut BNMediumLevelILFunction,
instr: usize,
) -> bool,
>,
pub highLevelILFunctionIsValid: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
func: *mut BNHighLevelILFunction,
) -> bool,
>,
pub highLevelILInstructionIsValid: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
func: *mut BNHighLevelILFunction,
instr: usize,
) -> bool,
>,
pub projectIsValid: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNProject) -> bool,
>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNPluginCommand"][::std::mem::size_of::<BNPluginCommand>() - 208usize];
["Alignment of BNPluginCommand"][::std::mem::align_of::<BNPluginCommand>() - 8usize];
["Offset of field: BNPluginCommand::name"]
[::std::mem::offset_of!(BNPluginCommand, name) - 0usize];
["Offset of field: BNPluginCommand::description"]
[::std::mem::offset_of!(BNPluginCommand, description) - 8usize];
["Offset of field: BNPluginCommand::type_"]
[::std::mem::offset_of!(BNPluginCommand, type_) - 16usize];
["Offset of field: BNPluginCommand::context"]
[::std::mem::offset_of!(BNPluginCommand, context) - 24usize];
["Offset of field: BNPluginCommand::defaultCommand"]
[::std::mem::offset_of!(BNPluginCommand, defaultCommand) - 32usize];
["Offset of field: BNPluginCommand::addressCommand"]
[::std::mem::offset_of!(BNPluginCommand, addressCommand) - 40usize];
["Offset of field: BNPluginCommand::rangeCommand"]
[::std::mem::offset_of!(BNPluginCommand, rangeCommand) - 48usize];
["Offset of field: BNPluginCommand::functionCommand"]
[::std::mem::offset_of!(BNPluginCommand, functionCommand) - 56usize];
["Offset of field: BNPluginCommand::lowLevelILFunctionCommand"]
[::std::mem::offset_of!(BNPluginCommand, lowLevelILFunctionCommand) - 64usize];
["Offset of field: BNPluginCommand::lowLevelILInstructionCommand"]
[::std::mem::offset_of!(BNPluginCommand, lowLevelILInstructionCommand) - 72usize];
["Offset of field: BNPluginCommand::mediumLevelILFunctionCommand"]
[::std::mem::offset_of!(BNPluginCommand, mediumLevelILFunctionCommand) - 80usize];
["Offset of field: BNPluginCommand::mediumLevelILInstructionCommand"]
[::std::mem::offset_of!(BNPluginCommand, mediumLevelILInstructionCommand) - 88usize];
["Offset of field: BNPluginCommand::highLevelILFunctionCommand"]
[::std::mem::offset_of!(BNPluginCommand, highLevelILFunctionCommand) - 96usize];
["Offset of field: BNPluginCommand::highLevelILInstructionCommand"]
[::std::mem::offset_of!(BNPluginCommand, highLevelILInstructionCommand) - 104usize];
["Offset of field: BNPluginCommand::projectCommand"]
[::std::mem::offset_of!(BNPluginCommand, projectCommand) - 112usize];
["Offset of field: BNPluginCommand::defaultIsValid"]
[::std::mem::offset_of!(BNPluginCommand, defaultIsValid) - 120usize];
["Offset of field: BNPluginCommand::addressIsValid"]
[::std::mem::offset_of!(BNPluginCommand, addressIsValid) - 128usize];
["Offset of field: BNPluginCommand::rangeIsValid"]
[::std::mem::offset_of!(BNPluginCommand, rangeIsValid) - 136usize];
["Offset of field: BNPluginCommand::functionIsValid"]
[::std::mem::offset_of!(BNPluginCommand, functionIsValid) - 144usize];
["Offset of field: BNPluginCommand::lowLevelILFunctionIsValid"]
[::std::mem::offset_of!(BNPluginCommand, lowLevelILFunctionIsValid) - 152usize];
["Offset of field: BNPluginCommand::lowLevelILInstructionIsValid"]
[::std::mem::offset_of!(BNPluginCommand, lowLevelILInstructionIsValid) - 160usize];
["Offset of field: BNPluginCommand::mediumLevelILFunctionIsValid"]
[::std::mem::offset_of!(BNPluginCommand, mediumLevelILFunctionIsValid) - 168usize];
["Offset of field: BNPluginCommand::mediumLevelILInstructionIsValid"]
[::std::mem::offset_of!(BNPluginCommand, mediumLevelILInstructionIsValid) - 176usize];
["Offset of field: BNPluginCommand::highLevelILFunctionIsValid"]
[::std::mem::offset_of!(BNPluginCommand, highLevelILFunctionIsValid) - 184usize];
["Offset of field: BNPluginCommand::highLevelILInstructionIsValid"]
[::std::mem::offset_of!(BNPluginCommand, highLevelILInstructionIsValid) - 192usize];
["Offset of field: BNPluginCommand::projectIsValid"]
[::std::mem::offset_of!(BNPluginCommand, projectIsValid) - 200usize];
};
impl Default for BNPluginCommand {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNCustomCallingConvention {
pub context: *mut ::std::os::raw::c_void,
pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
pub getCallerSavedRegisters: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
>,
pub getCalleeSavedRegisters: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
>,
pub getIntegerArgumentRegisters: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
>,
pub getFloatArgumentRegisters: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
>,
pub freeRegisterList: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, regs: *mut u32, len: usize),
>,
pub areArgumentRegistersSharedIndex:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
pub isStackReservedForArgumentRegisters:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
pub isStackAdjustedOnReturn:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
pub isEligibleForHeuristics:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
pub getIntegerReturnValueRegister:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
pub getHighIntegerReturnValueRegister:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
pub getFloatReturnValueRegister:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
pub getGlobalPointerRegister:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> u32>,
pub getImplicitlyDefinedRegisters: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, count: *mut usize) -> *mut u32,
>,
pub getIncomingRegisterValue: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
reg: u32,
func: *mut BNFunction,
result: *mut BNRegisterValue,
),
>,
pub getIncomingFlagValue: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
flag: u32,
func: *mut BNFunction,
result: *mut BNRegisterValue,
),
>,
pub getIncomingVariableForParameterVariable: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
var: *const BNVariable,
func: *mut BNFunction,
result: *mut BNVariable,
),
>,
pub getParameterVariableForIncomingVariable: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
var: *const BNVariable,
func: *mut BNFunction,
result: *mut BNVariable,
),
>,
pub areArgumentRegistersUsedForVarArgs:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNCustomCallingConvention"]
[::std::mem::size_of::<BNCustomCallingConvention>() - 168usize];
["Alignment of BNCustomCallingConvention"]
[::std::mem::align_of::<BNCustomCallingConvention>() - 8usize];
["Offset of field: BNCustomCallingConvention::context"]
[::std::mem::offset_of!(BNCustomCallingConvention, context) - 0usize];
["Offset of field: BNCustomCallingConvention::freeObject"]
[::std::mem::offset_of!(BNCustomCallingConvention, freeObject) - 8usize];
["Offset of field: BNCustomCallingConvention::getCallerSavedRegisters"]
[::std::mem::offset_of!(BNCustomCallingConvention, getCallerSavedRegisters) - 16usize];
["Offset of field: BNCustomCallingConvention::getCalleeSavedRegisters"]
[::std::mem::offset_of!(BNCustomCallingConvention, getCalleeSavedRegisters) - 24usize];
["Offset of field: BNCustomCallingConvention::getIntegerArgumentRegisters"]
[::std::mem::offset_of!(BNCustomCallingConvention, getIntegerArgumentRegisters) - 32usize];
["Offset of field: BNCustomCallingConvention::getFloatArgumentRegisters"]
[::std::mem::offset_of!(BNCustomCallingConvention, getFloatArgumentRegisters) - 40usize];
["Offset of field: BNCustomCallingConvention::freeRegisterList"]
[::std::mem::offset_of!(BNCustomCallingConvention, freeRegisterList) - 48usize];
["Offset of field: BNCustomCallingConvention::areArgumentRegistersSharedIndex"][::std::mem::offset_of!(
BNCustomCallingConvention,
areArgumentRegistersSharedIndex
) - 56usize];
["Offset of field: BNCustomCallingConvention::isStackReservedForArgumentRegisters"][::std::mem::offset_of!(
BNCustomCallingConvention,
isStackReservedForArgumentRegisters
)
- 64usize];
["Offset of field: BNCustomCallingConvention::isStackAdjustedOnReturn"]
[::std::mem::offset_of!(BNCustomCallingConvention, isStackAdjustedOnReturn) - 72usize];
["Offset of field: BNCustomCallingConvention::isEligibleForHeuristics"]
[::std::mem::offset_of!(BNCustomCallingConvention, isEligibleForHeuristics) - 80usize];
["Offset of field: BNCustomCallingConvention::getIntegerReturnValueRegister"][::std::mem::offset_of!(
BNCustomCallingConvention,
getIntegerReturnValueRegister
) - 88usize];
["Offset of field: BNCustomCallingConvention::getHighIntegerReturnValueRegister"][::std::mem::offset_of!(
BNCustomCallingConvention,
getHighIntegerReturnValueRegister
) - 96usize];
["Offset of field: BNCustomCallingConvention::getFloatReturnValueRegister"]
[::std::mem::offset_of!(BNCustomCallingConvention, getFloatReturnValueRegister) - 104usize];
["Offset of field: BNCustomCallingConvention::getGlobalPointerRegister"]
[::std::mem::offset_of!(BNCustomCallingConvention, getGlobalPointerRegister) - 112usize];
["Offset of field: BNCustomCallingConvention::getImplicitlyDefinedRegisters"][::std::mem::offset_of!(
BNCustomCallingConvention,
getImplicitlyDefinedRegisters
) - 120usize];
["Offset of field: BNCustomCallingConvention::getIncomingRegisterValue"]
[::std::mem::offset_of!(BNCustomCallingConvention, getIncomingRegisterValue) - 128usize];
["Offset of field: BNCustomCallingConvention::getIncomingFlagValue"]
[::std::mem::offset_of!(BNCustomCallingConvention, getIncomingFlagValue) - 136usize];
["Offset of field: BNCustomCallingConvention::getIncomingVariableForParameterVariable"][::std::mem::offset_of!(
BNCustomCallingConvention,
getIncomingVariableForParameterVariable
)
- 144usize];
["Offset of field: BNCustomCallingConvention::getParameterVariableForIncomingVariable"][::std::mem::offset_of!(
BNCustomCallingConvention,
getParameterVariableForIncomingVariable
)
- 152usize];
["Offset of field: BNCustomCallingConvention::areArgumentRegistersUsedForVarArgs"][::std::mem::offset_of!(
BNCustomCallingConvention,
areArgumentRegistersUsedForVarArgs
)
- 160usize];
};
impl Default for BNCustomCallingConvention {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNVariableNameAndType {
pub var: BNVariable,
pub type_: *mut BNType,
pub name: *mut ::std::os::raw::c_char,
pub autoDefined: bool,
pub typeConfidence: u8,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNVariableNameAndType"][::std::mem::size_of::<BNVariableNameAndType>() - 40usize];
["Alignment of BNVariableNameAndType"]
[::std::mem::align_of::<BNVariableNameAndType>() - 8usize];
["Offset of field: BNVariableNameAndType::var"]
[::std::mem::offset_of!(BNVariableNameAndType, var) - 0usize];
["Offset of field: BNVariableNameAndType::type_"]
[::std::mem::offset_of!(BNVariableNameAndType, type_) - 16usize];
["Offset of field: BNVariableNameAndType::name"]
[::std::mem::offset_of!(BNVariableNameAndType, name) - 24usize];
["Offset of field: BNVariableNameAndType::autoDefined"]
[::std::mem::offset_of!(BNVariableNameAndType, autoDefined) - 32usize];
["Offset of field: BNVariableNameAndType::typeConfidence"]
[::std::mem::offset_of!(BNVariableNameAndType, typeConfidence) - 33usize];
};
impl Default for BNVariableNameAndType {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNStackVariableReference {
pub sourceOperand: u32,
pub typeConfidence: u8,
pub type_: *mut BNType,
pub name: *mut ::std::os::raw::c_char,
pub varIdentifier: u64,
pub referencedOffset: i64,
pub size: usize,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNStackVariableReference"]
[::std::mem::size_of::<BNStackVariableReference>() - 48usize];
["Alignment of BNStackVariableReference"]
[::std::mem::align_of::<BNStackVariableReference>() - 8usize];
["Offset of field: BNStackVariableReference::sourceOperand"]
[::std::mem::offset_of!(BNStackVariableReference, sourceOperand) - 0usize];
["Offset of field: BNStackVariableReference::typeConfidence"]
[::std::mem::offset_of!(BNStackVariableReference, typeConfidence) - 4usize];
["Offset of field: BNStackVariableReference::type_"]
[::std::mem::offset_of!(BNStackVariableReference, type_) - 8usize];
["Offset of field: BNStackVariableReference::name"]
[::std::mem::offset_of!(BNStackVariableReference, name) - 16usize];
["Offset of field: BNStackVariableReference::varIdentifier"]
[::std::mem::offset_of!(BNStackVariableReference, varIdentifier) - 24usize];
["Offset of field: BNStackVariableReference::referencedOffset"]
[::std::mem::offset_of!(BNStackVariableReference, referencedOffset) - 32usize];
["Offset of field: BNStackVariableReference::size"]
[::std::mem::offset_of!(BNStackVariableReference, size) - 40usize];
};
impl Default for BNStackVariableReference {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNIndirectBranchInfo {
pub sourceArch: *mut BNArchitecture,
pub sourceAddr: u64,
pub destArch: *mut BNArchitecture,
pub destAddr: u64,
pub autoDefined: bool,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNIndirectBranchInfo"][::std::mem::size_of::<BNIndirectBranchInfo>() - 40usize];
["Alignment of BNIndirectBranchInfo"][::std::mem::align_of::<BNIndirectBranchInfo>() - 8usize];
["Offset of field: BNIndirectBranchInfo::sourceArch"]
[::std::mem::offset_of!(BNIndirectBranchInfo, sourceArch) - 0usize];
["Offset of field: BNIndirectBranchInfo::sourceAddr"]
[::std::mem::offset_of!(BNIndirectBranchInfo, sourceAddr) - 8usize];
["Offset of field: BNIndirectBranchInfo::destArch"]
[::std::mem::offset_of!(BNIndirectBranchInfo, destArch) - 16usize];
["Offset of field: BNIndirectBranchInfo::destAddr"]
[::std::mem::offset_of!(BNIndirectBranchInfo, destAddr) - 24usize];
["Offset of field: BNIndirectBranchInfo::autoDefined"]
[::std::mem::offset_of!(BNIndirectBranchInfo, autoDefined) - 32usize];
};
impl Default for BNIndirectBranchInfo {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNArchitectureAndAddress {
pub arch: *mut BNArchitecture,
pub address: u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNArchitectureAndAddress"]
[::std::mem::size_of::<BNArchitectureAndAddress>() - 16usize];
["Alignment of BNArchitectureAndAddress"]
[::std::mem::align_of::<BNArchitectureAndAddress>() - 8usize];
["Offset of field: BNArchitectureAndAddress::arch"]
[::std::mem::offset_of!(BNArchitectureAndAddress, arch) - 0usize];
["Offset of field: BNArchitectureAndAddress::address"]
[::std::mem::offset_of!(BNArchitectureAndAddress, address) - 8usize];
};
impl Default for BNArchitectureAndAddress {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNUserVariableValue {
pub var: BNVariable,
pub defSite: BNArchitectureAndAddress,
pub after: bool,
pub value: BNPossibleValueSet,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNUserVariableValue"][::std::mem::size_of::<BNUserVariableValue>() - 104usize];
["Alignment of BNUserVariableValue"][::std::mem::align_of::<BNUserVariableValue>() - 8usize];
["Offset of field: BNUserVariableValue::var"]
[::std::mem::offset_of!(BNUserVariableValue, var) - 0usize];
["Offset of field: BNUserVariableValue::defSite"]
[::std::mem::offset_of!(BNUserVariableValue, defSite) - 16usize];
["Offset of field: BNUserVariableValue::after"]
[::std::mem::offset_of!(BNUserVariableValue, after) - 32usize];
["Offset of field: BNUserVariableValue::value"]
[::std::mem::offset_of!(BNUserVariableValue, value) - 40usize];
};
impl Default for BNUserVariableValue {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNVariableFieldResolutionInfo {
pub location: BNArchitectureAndAddress,
pub var: BNVariable,
pub info: *mut BNFieldResolutionInfo,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNVariableFieldResolutionInfo"]
[::std::mem::size_of::<BNVariableFieldResolutionInfo>() - 40usize];
["Alignment of BNVariableFieldResolutionInfo"]
[::std::mem::align_of::<BNVariableFieldResolutionInfo>() - 8usize];
["Offset of field: BNVariableFieldResolutionInfo::location"]
[::std::mem::offset_of!(BNVariableFieldResolutionInfo, location) - 0usize];
["Offset of field: BNVariableFieldResolutionInfo::var"]
[::std::mem::offset_of!(BNVariableFieldResolutionInfo, var) - 16usize];
["Offset of field: BNVariableFieldResolutionInfo::info"]
[::std::mem::offset_of!(BNVariableFieldResolutionInfo, info) - 32usize];
};
impl Default for BNVariableFieldResolutionInfo {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNFunctionUpdateType {
UserFunctionUpdate = 0,
FullAutoFunctionUpdate = 1,
IncrementalAutoFunctionUpdate = 2,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNAnalysisState {
#[doc = " Entry point before any analysis begins"]
InitialState = 0,
#[doc = " Module-level analysis is deferred; On-demand function analysis is permitted"]
HoldState = 1,
#[doc = " No active analysis; system is idle and ready"]
IdleState = 2,
#[doc = " Context gathering and auxiliary data preparation"]
DiscoveryState = 3,
#[doc = " Instruction decoding and control flow discovery"]
DisassembleState = 4,
#[doc = " Core semantic and structural analysis"]
AnalyzeState = 5,
#[doc = " Supplemental analysis: sweeping, type resolution, and pattern matching"]
ExtendedAnalyzeState = 6,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNActiveAnalysisInfo {
pub func: *mut BNFunction,
pub analysisTime: u64,
pub updateCount: usize,
pub submitCount: usize,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNActiveAnalysisInfo"][::std::mem::size_of::<BNActiveAnalysisInfo>() - 32usize];
["Alignment of BNActiveAnalysisInfo"][::std::mem::align_of::<BNActiveAnalysisInfo>() - 8usize];
["Offset of field: BNActiveAnalysisInfo::func"]
[::std::mem::offset_of!(BNActiveAnalysisInfo, func) - 0usize];
["Offset of field: BNActiveAnalysisInfo::analysisTime"]
[::std::mem::offset_of!(BNActiveAnalysisInfo, analysisTime) - 8usize];
["Offset of field: BNActiveAnalysisInfo::updateCount"]
[::std::mem::offset_of!(BNActiveAnalysisInfo, updateCount) - 16usize];
["Offset of field: BNActiveAnalysisInfo::submitCount"]
[::std::mem::offset_of!(BNActiveAnalysisInfo, submitCount) - 24usize];
};
impl Default for BNActiveAnalysisInfo {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNAnalysisInfo {
pub state: BNAnalysisState,
pub analysisTime: u64,
pub activeInfo: *mut BNActiveAnalysisInfo,
pub count: usize,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNAnalysisInfo"][::std::mem::size_of::<BNAnalysisInfo>() - 32usize];
["Alignment of BNAnalysisInfo"][::std::mem::align_of::<BNAnalysisInfo>() - 8usize];
["Offset of field: BNAnalysisInfo::state"]
[::std::mem::offset_of!(BNAnalysisInfo, state) - 0usize];
["Offset of field: BNAnalysisInfo::analysisTime"]
[::std::mem::offset_of!(BNAnalysisInfo, analysisTime) - 8usize];
["Offset of field: BNAnalysisInfo::activeInfo"]
[::std::mem::offset_of!(BNAnalysisInfo, activeInfo) - 16usize];
["Offset of field: BNAnalysisInfo::count"]
[::std::mem::offset_of!(BNAnalysisInfo, count) - 24usize];
};
impl Default for BNAnalysisInfo {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNAnalysisProgress {
pub state: BNAnalysisState,
pub count: usize,
pub total: usize,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNAnalysisProgress"][::std::mem::size_of::<BNAnalysisProgress>() - 24usize];
["Alignment of BNAnalysisProgress"][::std::mem::align_of::<BNAnalysisProgress>() - 8usize];
["Offset of field: BNAnalysisProgress::state"]
[::std::mem::offset_of!(BNAnalysisProgress, state) - 0usize];
["Offset of field: BNAnalysisProgress::count"]
[::std::mem::offset_of!(BNAnalysisProgress, count) - 8usize];
["Offset of field: BNAnalysisProgress::total"]
[::std::mem::offset_of!(BNAnalysisProgress, total) - 16usize];
};
impl Default for BNAnalysisProgress {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNAnalysisMode {
FullAnalysisMode = 0,
IntermediateAnalysisMode = 1,
BasicAnalysisMode = 2,
ControlFlowAnalysisMode = 3,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNAnalysisParameters {
pub maxAnalysisTime: u64,
pub maxFunctionSize: u64,
pub maxFunctionAnalysisTime: u64,
pub maxFunctionUpdateCount: usize,
pub maxFunctionSubmitCount: usize,
pub suppressNewAutoFunctionAnalysis: bool,
pub mode: BNAnalysisMode,
pub alwaysAnalyzeIndirectBranches: bool,
pub advancedAnalysisCacheSize: usize,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNAnalysisParameters"][::std::mem::size_of::<BNAnalysisParameters>() - 56usize];
["Alignment of BNAnalysisParameters"][::std::mem::align_of::<BNAnalysisParameters>() - 8usize];
["Offset of field: BNAnalysisParameters::maxAnalysisTime"]
[::std::mem::offset_of!(BNAnalysisParameters, maxAnalysisTime) - 0usize];
["Offset of field: BNAnalysisParameters::maxFunctionSize"]
[::std::mem::offset_of!(BNAnalysisParameters, maxFunctionSize) - 8usize];
["Offset of field: BNAnalysisParameters::maxFunctionAnalysisTime"]
[::std::mem::offset_of!(BNAnalysisParameters, maxFunctionAnalysisTime) - 16usize];
["Offset of field: BNAnalysisParameters::maxFunctionUpdateCount"]
[::std::mem::offset_of!(BNAnalysisParameters, maxFunctionUpdateCount) - 24usize];
["Offset of field: BNAnalysisParameters::maxFunctionSubmitCount"]
[::std::mem::offset_of!(BNAnalysisParameters, maxFunctionSubmitCount) - 32usize];
["Offset of field: BNAnalysisParameters::suppressNewAutoFunctionAnalysis"]
[::std::mem::offset_of!(BNAnalysisParameters, suppressNewAutoFunctionAnalysis) - 40usize];
["Offset of field: BNAnalysisParameters::mode"]
[::std::mem::offset_of!(BNAnalysisParameters, mode) - 41usize];
["Offset of field: BNAnalysisParameters::alwaysAnalyzeIndirectBranches"]
[::std::mem::offset_of!(BNAnalysisParameters, alwaysAnalyzeIndirectBranches) - 42usize];
["Offset of field: BNAnalysisParameters::advancedAnalysisCacheSize"]
[::std::mem::offset_of!(BNAnalysisParameters, advancedAnalysisCacheSize) - 48usize];
};
impl Default for BNAnalysisParameters {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNDownloadInstanceResponse {
pub statusCode: u16,
pub headerCount: u64,
pub headerKeys: *mut *mut ::std::os::raw::c_char,
pub headerValues: *mut *mut ::std::os::raw::c_char,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNDownloadInstanceResponse"]
[::std::mem::size_of::<BNDownloadInstanceResponse>() - 32usize];
["Alignment of BNDownloadInstanceResponse"]
[::std::mem::align_of::<BNDownloadInstanceResponse>() - 8usize];
["Offset of field: BNDownloadInstanceResponse::statusCode"]
[::std::mem::offset_of!(BNDownloadInstanceResponse, statusCode) - 0usize];
["Offset of field: BNDownloadInstanceResponse::headerCount"]
[::std::mem::offset_of!(BNDownloadInstanceResponse, headerCount) - 8usize];
["Offset of field: BNDownloadInstanceResponse::headerKeys"]
[::std::mem::offset_of!(BNDownloadInstanceResponse, headerKeys) - 16usize];
["Offset of field: BNDownloadInstanceResponse::headerValues"]
[::std::mem::offset_of!(BNDownloadInstanceResponse, headerValues) - 24usize];
};
impl Default for BNDownloadInstanceResponse {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNDownloadInstanceInputOutputCallbacks {
pub readCallback: ::std::option::Option<
unsafe extern "C" fn(data: *mut u8, len: u64, ctxt: *mut ::std::os::raw::c_void) -> i64,
>,
pub readContext: *mut ::std::os::raw::c_void,
pub writeCallback: ::std::option::Option<
unsafe extern "C" fn(data: *mut u8, len: u64, ctxt: *mut ::std::os::raw::c_void) -> u64,
>,
pub writeContext: *mut ::std::os::raw::c_void,
pub progressCallback: BNProgressFunction,
pub progressContext: *mut ::std::os::raw::c_void,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNDownloadInstanceInputOutputCallbacks"]
[::std::mem::size_of::<BNDownloadInstanceInputOutputCallbacks>() - 48usize];
["Alignment of BNDownloadInstanceInputOutputCallbacks"]
[::std::mem::align_of::<BNDownloadInstanceInputOutputCallbacks>() - 8usize];
["Offset of field: BNDownloadInstanceInputOutputCallbacks::readCallback"]
[::std::mem::offset_of!(BNDownloadInstanceInputOutputCallbacks, readCallback) - 0usize];
["Offset of field: BNDownloadInstanceInputOutputCallbacks::readContext"]
[::std::mem::offset_of!(BNDownloadInstanceInputOutputCallbacks, readContext) - 8usize];
["Offset of field: BNDownloadInstanceInputOutputCallbacks::writeCallback"]
[::std::mem::offset_of!(BNDownloadInstanceInputOutputCallbacks, writeCallback) - 16usize];
["Offset of field: BNDownloadInstanceInputOutputCallbacks::writeContext"]
[::std::mem::offset_of!(BNDownloadInstanceInputOutputCallbacks, writeContext) - 24usize];
["Offset of field: BNDownloadInstanceInputOutputCallbacks::progressCallback"][::std::mem::offset_of!(
BNDownloadInstanceInputOutputCallbacks,
progressCallback
) - 32usize];
["Offset of field: BNDownloadInstanceInputOutputCallbacks::progressContext"]
[::std::mem::offset_of!(BNDownloadInstanceInputOutputCallbacks, progressContext) - 40usize];
};
impl Default for BNDownloadInstanceInputOutputCallbacks {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNDownloadInstanceOutputCallbacks {
pub writeCallback: ::std::option::Option<
unsafe extern "C" fn(data: *mut u8, len: u64, ctxt: *mut ::std::os::raw::c_void) -> u64,
>,
pub writeContext: *mut ::std::os::raw::c_void,
pub progressCallback: BNProgressFunction,
pub progressContext: *mut ::std::os::raw::c_void,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNDownloadInstanceOutputCallbacks"]
[::std::mem::size_of::<BNDownloadInstanceOutputCallbacks>() - 32usize];
["Alignment of BNDownloadInstanceOutputCallbacks"]
[::std::mem::align_of::<BNDownloadInstanceOutputCallbacks>() - 8usize];
["Offset of field: BNDownloadInstanceOutputCallbacks::writeCallback"]
[::std::mem::offset_of!(BNDownloadInstanceOutputCallbacks, writeCallback) - 0usize];
["Offset of field: BNDownloadInstanceOutputCallbacks::writeContext"]
[::std::mem::offset_of!(BNDownloadInstanceOutputCallbacks, writeContext) - 8usize];
["Offset of field: BNDownloadInstanceOutputCallbacks::progressCallback"]
[::std::mem::offset_of!(BNDownloadInstanceOutputCallbacks, progressCallback) - 16usize];
["Offset of field: BNDownloadInstanceOutputCallbacks::progressContext"]
[::std::mem::offset_of!(BNDownloadInstanceOutputCallbacks, progressContext) - 24usize];
};
impl Default for BNDownloadInstanceOutputCallbacks {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNDownloadInstanceCallbacks {
pub context: *mut ::std::os::raw::c_void,
pub destroyInstance:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
pub performRequest: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
url: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int,
>,
pub performCustomRequest: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
method: *const ::std::os::raw::c_char,
url: *const ::std::os::raw::c_char,
headerCount: u64,
headerKeys: *const *const ::std::os::raw::c_char,
headerValues: *const *const ::std::os::raw::c_char,
response: *mut *mut BNDownloadInstanceResponse,
) -> ::std::os::raw::c_int,
>,
pub freeResponse: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
response: *mut BNDownloadInstanceResponse,
),
>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNDownloadInstanceCallbacks"]
[::std::mem::size_of::<BNDownloadInstanceCallbacks>() - 40usize];
["Alignment of BNDownloadInstanceCallbacks"]
[::std::mem::align_of::<BNDownloadInstanceCallbacks>() - 8usize];
["Offset of field: BNDownloadInstanceCallbacks::context"]
[::std::mem::offset_of!(BNDownloadInstanceCallbacks, context) - 0usize];
["Offset of field: BNDownloadInstanceCallbacks::destroyInstance"]
[::std::mem::offset_of!(BNDownloadInstanceCallbacks, destroyInstance) - 8usize];
["Offset of field: BNDownloadInstanceCallbacks::performRequest"]
[::std::mem::offset_of!(BNDownloadInstanceCallbacks, performRequest) - 16usize];
["Offset of field: BNDownloadInstanceCallbacks::performCustomRequest"]
[::std::mem::offset_of!(BNDownloadInstanceCallbacks, performCustomRequest) - 24usize];
["Offset of field: BNDownloadInstanceCallbacks::freeResponse"]
[::std::mem::offset_of!(BNDownloadInstanceCallbacks, freeResponse) - 32usize];
};
impl Default for BNDownloadInstanceCallbacks {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNDownloadProviderCallbacks {
pub context: *mut ::std::os::raw::c_void,
pub createInstance: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNDownloadInstance,
>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNDownloadProviderCallbacks"]
[::std::mem::size_of::<BNDownloadProviderCallbacks>() - 16usize];
["Alignment of BNDownloadProviderCallbacks"]
[::std::mem::align_of::<BNDownloadProviderCallbacks>() - 8usize];
["Offset of field: BNDownloadProviderCallbacks::context"]
[::std::mem::offset_of!(BNDownloadProviderCallbacks, context) - 0usize];
["Offset of field: BNDownloadProviderCallbacks::createInstance"]
[::std::mem::offset_of!(BNDownloadProviderCallbacks, createInstance) - 8usize];
};
impl Default for BNDownloadProviderCallbacks {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNWebsocketClientOutputCallbacks {
pub context: *mut ::std::os::raw::c_void,
pub connectedCallback:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
pub disconnectedCallback:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
pub errorCallback: ::std::option::Option<
unsafe extern "C" fn(msg: *const ::std::os::raw::c_char, ctxt: *mut ::std::os::raw::c_void),
>,
pub readCallback: ::std::option::Option<
unsafe extern "C" fn(data: *mut u8, len: u64, ctxt: *mut ::std::os::raw::c_void) -> bool,
>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNWebsocketClientOutputCallbacks"]
[::std::mem::size_of::<BNWebsocketClientOutputCallbacks>() - 40usize];
["Alignment of BNWebsocketClientOutputCallbacks"]
[::std::mem::align_of::<BNWebsocketClientOutputCallbacks>() - 8usize];
["Offset of field: BNWebsocketClientOutputCallbacks::context"]
[::std::mem::offset_of!(BNWebsocketClientOutputCallbacks, context) - 0usize];
["Offset of field: BNWebsocketClientOutputCallbacks::connectedCallback"]
[::std::mem::offset_of!(BNWebsocketClientOutputCallbacks, connectedCallback) - 8usize];
["Offset of field: BNWebsocketClientOutputCallbacks::disconnectedCallback"]
[::std::mem::offset_of!(BNWebsocketClientOutputCallbacks, disconnectedCallback) - 16usize];
["Offset of field: BNWebsocketClientOutputCallbacks::errorCallback"]
[::std::mem::offset_of!(BNWebsocketClientOutputCallbacks, errorCallback) - 24usize];
["Offset of field: BNWebsocketClientOutputCallbacks::readCallback"]
[::std::mem::offset_of!(BNWebsocketClientOutputCallbacks, readCallback) - 32usize];
};
impl Default for BNWebsocketClientOutputCallbacks {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNWebsocketClientCallbacks {
pub context: *mut ::std::os::raw::c_void,
pub destroyClient:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
pub connect: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
host: *const ::std::os::raw::c_char,
headerCount: u64,
headerKeys: *const *const ::std::os::raw::c_char,
headerValues: *const *const ::std::os::raw::c_char,
) -> bool,
>,
pub write: ::std::option::Option<
unsafe extern "C" fn(data: *const u8, len: u64, ctxt: *mut ::std::os::raw::c_void) -> bool,
>,
pub disconnect:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> bool>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNWebsocketClientCallbacks"]
[::std::mem::size_of::<BNWebsocketClientCallbacks>() - 40usize];
["Alignment of BNWebsocketClientCallbacks"]
[::std::mem::align_of::<BNWebsocketClientCallbacks>() - 8usize];
["Offset of field: BNWebsocketClientCallbacks::context"]
[::std::mem::offset_of!(BNWebsocketClientCallbacks, context) - 0usize];
["Offset of field: BNWebsocketClientCallbacks::destroyClient"]
[::std::mem::offset_of!(BNWebsocketClientCallbacks, destroyClient) - 8usize];
["Offset of field: BNWebsocketClientCallbacks::connect"]
[::std::mem::offset_of!(BNWebsocketClientCallbacks, connect) - 16usize];
["Offset of field: BNWebsocketClientCallbacks::write"]
[::std::mem::offset_of!(BNWebsocketClientCallbacks, write) - 24usize];
["Offset of field: BNWebsocketClientCallbacks::disconnect"]
[::std::mem::offset_of!(BNWebsocketClientCallbacks, disconnect) - 32usize];
};
impl Default for BNWebsocketClientCallbacks {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNWebsocketProviderCallbacks {
pub context: *mut ::std::os::raw::c_void,
pub createClient: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNWebsocketClient,
>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNWebsocketProviderCallbacks"]
[::std::mem::size_of::<BNWebsocketProviderCallbacks>() - 16usize];
["Alignment of BNWebsocketProviderCallbacks"]
[::std::mem::align_of::<BNWebsocketProviderCallbacks>() - 8usize];
["Offset of field: BNWebsocketProviderCallbacks::context"]
[::std::mem::offset_of!(BNWebsocketProviderCallbacks, context) - 0usize];
["Offset of field: BNWebsocketProviderCallbacks::createClient"]
[::std::mem::offset_of!(BNWebsocketProviderCallbacks, createClient) - 8usize];
};
impl Default for BNWebsocketProviderCallbacks {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNFindFlag {
FindCaseSensitive = 0,
FindCaseInsensitive = 1,
FindIgnoreWhitespace = 2,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNScriptingProviderInputReadyState {
NotReadyForInput = 0,
ReadyForScriptExecution = 1,
ReadyForScriptProgramInput = 2,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNScriptingProviderExecuteResult {
InvalidScriptInput = 0,
IncompleteScriptInput = 1,
SuccessfulScriptExecution = 2,
ScriptExecutionCancelled = 3,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNScriptingInstanceCallbacks {
pub context: *mut ::std::os::raw::c_void,
pub destroyInstance:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
pub externalRefTaken:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
pub externalRefReleased:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
pub executeScriptInput: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
input: *const ::std::os::raw::c_char,
) -> BNScriptingProviderExecuteResult,
>,
pub executeScriptInputFromFilename: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
input: *const ::std::os::raw::c_char,
) -> BNScriptingProviderExecuteResult,
>,
pub cancelScriptInput:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
pub releaseBinaryView: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
>,
pub setCurrentBinaryView: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
>,
pub setCurrentFunction: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, func: *mut BNFunction),
>,
pub setCurrentBasicBlock: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, block: *mut BNBasicBlock),
>,
pub setCurrentAddress:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, addr: u64)>,
pub setCurrentSelection: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, begin: u64, end: u64),
>,
pub completeInput: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
text: *const ::std::os::raw::c_char,
state: u64,
) -> *mut ::std::os::raw::c_char,
>,
pub stop: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNScriptingInstanceCallbacks"]
[::std::mem::size_of::<BNScriptingInstanceCallbacks>() - 120usize];
["Alignment of BNScriptingInstanceCallbacks"]
[::std::mem::align_of::<BNScriptingInstanceCallbacks>() - 8usize];
["Offset of field: BNScriptingInstanceCallbacks::context"]
[::std::mem::offset_of!(BNScriptingInstanceCallbacks, context) - 0usize];
["Offset of field: BNScriptingInstanceCallbacks::destroyInstance"]
[::std::mem::offset_of!(BNScriptingInstanceCallbacks, destroyInstance) - 8usize];
["Offset of field: BNScriptingInstanceCallbacks::externalRefTaken"]
[::std::mem::offset_of!(BNScriptingInstanceCallbacks, externalRefTaken) - 16usize];
["Offset of field: BNScriptingInstanceCallbacks::externalRefReleased"]
[::std::mem::offset_of!(BNScriptingInstanceCallbacks, externalRefReleased) - 24usize];
["Offset of field: BNScriptingInstanceCallbacks::executeScriptInput"]
[::std::mem::offset_of!(BNScriptingInstanceCallbacks, executeScriptInput) - 32usize];
["Offset of field: BNScriptingInstanceCallbacks::executeScriptInputFromFilename"][::std::mem::offset_of!(
BNScriptingInstanceCallbacks,
executeScriptInputFromFilename
) - 40usize];
["Offset of field: BNScriptingInstanceCallbacks::cancelScriptInput"]
[::std::mem::offset_of!(BNScriptingInstanceCallbacks, cancelScriptInput) - 48usize];
["Offset of field: BNScriptingInstanceCallbacks::releaseBinaryView"]
[::std::mem::offset_of!(BNScriptingInstanceCallbacks, releaseBinaryView) - 56usize];
["Offset of field: BNScriptingInstanceCallbacks::setCurrentBinaryView"]
[::std::mem::offset_of!(BNScriptingInstanceCallbacks, setCurrentBinaryView) - 64usize];
["Offset of field: BNScriptingInstanceCallbacks::setCurrentFunction"]
[::std::mem::offset_of!(BNScriptingInstanceCallbacks, setCurrentFunction) - 72usize];
["Offset of field: BNScriptingInstanceCallbacks::setCurrentBasicBlock"]
[::std::mem::offset_of!(BNScriptingInstanceCallbacks, setCurrentBasicBlock) - 80usize];
["Offset of field: BNScriptingInstanceCallbacks::setCurrentAddress"]
[::std::mem::offset_of!(BNScriptingInstanceCallbacks, setCurrentAddress) - 88usize];
["Offset of field: BNScriptingInstanceCallbacks::setCurrentSelection"]
[::std::mem::offset_of!(BNScriptingInstanceCallbacks, setCurrentSelection) - 96usize];
["Offset of field: BNScriptingInstanceCallbacks::completeInput"]
[::std::mem::offset_of!(BNScriptingInstanceCallbacks, completeInput) - 104usize];
["Offset of field: BNScriptingInstanceCallbacks::stop"]
[::std::mem::offset_of!(BNScriptingInstanceCallbacks, stop) - 112usize];
};
impl Default for BNScriptingInstanceCallbacks {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNScriptingProviderCallbacks {
pub context: *mut ::std::os::raw::c_void,
pub createInstance: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNScriptingInstance,
>,
pub loadModule: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
repoPath: *const ::std::os::raw::c_char,
pluginPath: *const ::std::os::raw::c_char,
force: bool,
) -> bool,
>,
pub installModules: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
modules: *const ::std::os::raw::c_char,
) -> bool,
>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNScriptingProviderCallbacks"]
[::std::mem::size_of::<BNScriptingProviderCallbacks>() - 32usize];
["Alignment of BNScriptingProviderCallbacks"]
[::std::mem::align_of::<BNScriptingProviderCallbacks>() - 8usize];
["Offset of field: BNScriptingProviderCallbacks::context"]
[::std::mem::offset_of!(BNScriptingProviderCallbacks, context) - 0usize];
["Offset of field: BNScriptingProviderCallbacks::createInstance"]
[::std::mem::offset_of!(BNScriptingProviderCallbacks, createInstance) - 8usize];
["Offset of field: BNScriptingProviderCallbacks::loadModule"]
[::std::mem::offset_of!(BNScriptingProviderCallbacks, loadModule) - 16usize];
["Offset of field: BNScriptingProviderCallbacks::installModules"]
[::std::mem::offset_of!(BNScriptingProviderCallbacks, installModules) - 24usize];
};
impl Default for BNScriptingProviderCallbacks {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNScriptingOutputListener {
pub context: *mut ::std::os::raw::c_void,
pub output: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
text: *const ::std::os::raw::c_char,
),
>,
pub warning: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
text: *const ::std::os::raw::c_char,
),
>,
pub error: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
text: *const ::std::os::raw::c_char,
),
>,
pub inputReadyStateChanged: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
state: BNScriptingProviderInputReadyState,
),
>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNScriptingOutputListener"]
[::std::mem::size_of::<BNScriptingOutputListener>() - 40usize];
["Alignment of BNScriptingOutputListener"]
[::std::mem::align_of::<BNScriptingOutputListener>() - 8usize];
["Offset of field: BNScriptingOutputListener::context"]
[::std::mem::offset_of!(BNScriptingOutputListener, context) - 0usize];
["Offset of field: BNScriptingOutputListener::output"]
[::std::mem::offset_of!(BNScriptingOutputListener, output) - 8usize];
["Offset of field: BNScriptingOutputListener::warning"]
[::std::mem::offset_of!(BNScriptingOutputListener, warning) - 16usize];
["Offset of field: BNScriptingOutputListener::error"]
[::std::mem::offset_of!(BNScriptingOutputListener, error) - 24usize];
["Offset of field: BNScriptingOutputListener::inputReadyStateChanged"]
[::std::mem::offset_of!(BNScriptingOutputListener, inputReadyStateChanged) - 32usize];
};
impl Default for BNScriptingOutputListener {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNMainThreadCallbacks {
pub context: *mut ::std::os::raw::c_void,
pub addAction: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, action: *mut BNMainThreadAction),
>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNMainThreadCallbacks"][::std::mem::size_of::<BNMainThreadCallbacks>() - 16usize];
["Alignment of BNMainThreadCallbacks"]
[::std::mem::align_of::<BNMainThreadCallbacks>() - 8usize];
["Offset of field: BNMainThreadCallbacks::context"]
[::std::mem::offset_of!(BNMainThreadCallbacks, context) - 0usize];
["Offset of field: BNMainThreadCallbacks::addAction"]
[::std::mem::offset_of!(BNMainThreadCallbacks, addAction) - 8usize];
};
impl Default for BNMainThreadCallbacks {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct BNTypeParserCallbacks {
pub context: *mut ::std::os::raw::c_void,
pub getOptionText: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
option: BNTypeParserOption,
value: *const ::std::os::raw::c_char,
result: *mut *mut ::std::os::raw::c_char,
) -> bool,
>,
pub preprocessSource: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
source: *const ::std::os::raw::c_char,
fileName: *const ::std::os::raw::c_char,
platform: *mut BNPlatform,
existingTypes: *mut BNTypeContainer,
options: *const *const ::std::os::raw::c_char,
optionCount: usize,
includeDirs: *const *const ::std::os::raw::c_char,
includeDirCount: usize,
output: *mut *mut ::std::os::raw::c_char,
errors: *mut *mut BNTypeParserError,
errorCount: *mut usize,
) -> bool,
>,
pub parseTypesFromSource: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
source: *const ::std::os::raw::c_char,
fileName: *const ::std::os::raw::c_char,
platform: *mut BNPlatform,
existingTypes: *mut BNTypeContainer,
options: *const *const ::std::os::raw::c_char,
optionCount: usize,
includeDirs: *const *const ::std::os::raw::c_char,
includeDirCount: usize,
autoTypeSource: *const ::std::os::raw::c_char,
result: *mut BNTypeParserResult,
errors: *mut *mut BNTypeParserError,
errorCount: *mut usize,
) -> bool,
>,
pub parseTypeString: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
source: *const ::std::os::raw::c_char,
platform: *mut BNPlatform,
existingTypes: *mut BNTypeContainer,
result: *mut BNQualifiedNameAndType,
errors: *mut *mut BNTypeParserError,
errorCount: *mut usize,
) -> bool,
>,
pub freeString: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
string: *mut ::std::os::raw::c_char,
),
>,
pub freeResult: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, result: *mut BNTypeParserResult),
>,
pub freeErrorList: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
errors: *mut BNTypeParserError,
errorCount: usize,
),
>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNTypeParserCallbacks"][::std::mem::size_of::<BNTypeParserCallbacks>() - 64usize];
["Alignment of BNTypeParserCallbacks"]
[::std::mem::align_of::<BNTypeParserCallbacks>() - 8usize];
["Offset of field: BNTypeParserCallbacks::context"]
[::std::mem::offset_of!(BNTypeParserCallbacks, context) - 0usize];
["Offset of field: BNTypeParserCallbacks::getOptionText"]
[::std::mem::offset_of!(BNTypeParserCallbacks, getOptionText) - 8usize];
["Offset of field: BNTypeParserCallbacks::preprocessSource"]
[::std::mem::offset_of!(BNTypeParserCallbacks, preprocessSource) - 16usize];
["Offset of field: BNTypeParserCallbacks::parseTypesFromSource"]
[::std::mem::offset_of!(BNTypeParserCallbacks, parseTypesFromSource) - 24usize];
["Offset of field: BNTypeParserCallbacks::parseTypeString"]
[::std::mem::offset_of!(BNTypeParserCallbacks, parseTypeString) - 32usize];
["Offset of field: BNTypeParserCallbacks::freeString"]
[::std::mem::offset_of!(BNTypeParserCallbacks, freeString) - 40usize];
["Offset of field: BNTypeParserCallbacks::freeResult"]
[::std::mem::offset_of!(BNTypeParserCallbacks, freeResult) - 48usize];
["Offset of field: BNTypeParserCallbacks::freeErrorList"]
[::std::mem::offset_of!(BNTypeParserCallbacks, freeErrorList) - 56usize];
};
impl Default for BNTypeParserCallbacks {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNTypePrinterCallbacks {
pub context: *mut ::std::os::raw::c_void,
pub getTypeTokens: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
type_: *mut BNType,
platform: *mut BNPlatform,
name: *mut BNQualifiedName,
baseConfidence: u8,
escaping: BNTokenEscapingType,
result: *mut *mut BNInstructionTextToken,
resultCount: *mut usize,
) -> bool,
>,
pub getTypeTokensBeforeName: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
type_: *mut BNType,
platform: *mut BNPlatform,
baseConfidence: u8,
parentType: *mut BNType,
escaping: BNTokenEscapingType,
result: *mut *mut BNInstructionTextToken,
resultCount: *mut usize,
) -> bool,
>,
pub getTypeTokensAfterName: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
type_: *mut BNType,
platform: *mut BNPlatform,
baseConfidence: u8,
parentType: *mut BNType,
escaping: BNTokenEscapingType,
result: *mut *mut BNInstructionTextToken,
resultCount: *mut usize,
) -> bool,
>,
pub getTypeString: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
type_: *mut BNType,
platform: *mut BNPlatform,
name: *mut BNQualifiedName,
escaping: BNTokenEscapingType,
result: *mut *mut ::std::os::raw::c_char,
) -> bool,
>,
pub getTypeStringBeforeName: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
type_: *mut BNType,
platform: *mut BNPlatform,
escaping: BNTokenEscapingType,
result: *mut *mut ::std::os::raw::c_char,
) -> bool,
>,
pub getTypeStringAfterName: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
type_: *mut BNType,
platform: *mut BNPlatform,
escaping: BNTokenEscapingType,
result: *mut *mut ::std::os::raw::c_char,
) -> bool,
>,
pub getTypeLines: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
type_: *mut BNType,
types: *mut BNTypeContainer,
name: *mut BNQualifiedName,
paddingCols: ::std::os::raw::c_int,
collapsed: bool,
escaping: BNTokenEscapingType,
result: *mut *mut BNTypeDefinitionLine,
resultCount: *mut usize,
) -> bool,
>,
pub printAllTypes: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
names: *mut BNQualifiedName,
types: *mut *mut BNType,
typeCount: usize,
data: *mut BNBinaryView,
paddingCols: ::std::os::raw::c_int,
escaping: BNTokenEscapingType,
result: *mut *mut ::std::os::raw::c_char,
) -> bool,
>,
pub freeTokens: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
tokens: *mut BNInstructionTextToken,
count: usize,
),
>,
pub freeString: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
string: *mut ::std::os::raw::c_char,
),
>,
pub freeLines: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
lines: *mut BNTypeDefinitionLine,
count: usize,
),
>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNTypePrinterCallbacks"][::std::mem::size_of::<BNTypePrinterCallbacks>() - 96usize];
["Alignment of BNTypePrinterCallbacks"]
[::std::mem::align_of::<BNTypePrinterCallbacks>() - 8usize];
["Offset of field: BNTypePrinterCallbacks::context"]
[::std::mem::offset_of!(BNTypePrinterCallbacks, context) - 0usize];
["Offset of field: BNTypePrinterCallbacks::getTypeTokens"]
[::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeTokens) - 8usize];
["Offset of field: BNTypePrinterCallbacks::getTypeTokensBeforeName"]
[::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeTokensBeforeName) - 16usize];
["Offset of field: BNTypePrinterCallbacks::getTypeTokensAfterName"]
[::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeTokensAfterName) - 24usize];
["Offset of field: BNTypePrinterCallbacks::getTypeString"]
[::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeString) - 32usize];
["Offset of field: BNTypePrinterCallbacks::getTypeStringBeforeName"]
[::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeStringBeforeName) - 40usize];
["Offset of field: BNTypePrinterCallbacks::getTypeStringAfterName"]
[::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeStringAfterName) - 48usize];
["Offset of field: BNTypePrinterCallbacks::getTypeLines"]
[::std::mem::offset_of!(BNTypePrinterCallbacks, getTypeLines) - 56usize];
["Offset of field: BNTypePrinterCallbacks::printAllTypes"]
[::std::mem::offset_of!(BNTypePrinterCallbacks, printAllTypes) - 64usize];
["Offset of field: BNTypePrinterCallbacks::freeTokens"]
[::std::mem::offset_of!(BNTypePrinterCallbacks, freeTokens) - 72usize];
["Offset of field: BNTypePrinterCallbacks::freeString"]
[::std::mem::offset_of!(BNTypePrinterCallbacks, freeString) - 80usize];
["Offset of field: BNTypePrinterCallbacks::freeLines"]
[::std::mem::offset_of!(BNTypePrinterCallbacks, freeLines) - 88usize];
};
impl Default for BNTypePrinterCallbacks {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct BNConstantReference {
pub value: i64,
pub size: usize,
pub pointer: bool,
pub intermediate: bool,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNConstantReference"][::std::mem::size_of::<BNConstantReference>() - 24usize];
["Alignment of BNConstantReference"][::std::mem::align_of::<BNConstantReference>() - 8usize];
["Offset of field: BNConstantReference::value"]
[::std::mem::offset_of!(BNConstantReference, value) - 0usize];
["Offset of field: BNConstantReference::size"]
[::std::mem::offset_of!(BNConstantReference, size) - 8usize];
["Offset of field: BNConstantReference::pointer"]
[::std::mem::offset_of!(BNConstantReference, pointer) - 16usize];
["Offset of field: BNConstantReference::intermediate"]
[::std::mem::offset_of!(BNConstantReference, intermediate) - 17usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNMetadataValueStore {
pub size: usize,
pub keys: *mut *mut ::std::os::raw::c_char,
pub values: *mut *mut BNMetadata,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNMetadataValueStore"][::std::mem::size_of::<BNMetadataValueStore>() - 24usize];
["Alignment of BNMetadataValueStore"][::std::mem::align_of::<BNMetadataValueStore>() - 8usize];
["Offset of field: BNMetadataValueStore::size"]
[::std::mem::offset_of!(BNMetadataValueStore, size) - 0usize];
["Offset of field: BNMetadataValueStore::keys"]
[::std::mem::offset_of!(BNMetadataValueStore, keys) - 8usize];
["Offset of field: BNMetadataValueStore::values"]
[::std::mem::offset_of!(BNMetadataValueStore, values) - 16usize];
};
impl Default for BNMetadataValueStore {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNSaveOption {
RemoveUndoData = 0,
TrimSnapshots = 1,
PurgeOriginalFilenamePath = 2,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNMessageBoxIcon {
InformationIcon = 0,
QuestionIcon = 1,
WarningIcon = 2,
ErrorIcon = 3,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNMessageBoxButtonSet {
OKButtonSet = 0,
YesNoButtonSet = 1,
YesNoCancelButtonSet = 2,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNMessageBoxButtonResult {
NoButton = 0,
YesButton = 1,
OKButton = 2,
CancelButton = 3,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNFormInputFieldType {
LabelFormField = 0,
SeparatorFormField = 1,
TextLineFormField = 2,
MultilineTextFormField = 3,
IntegerFormField = 4,
AddressFormField = 5,
ChoiceFormField = 6,
OpenFileNameFormField = 7,
SaveFileNameFormField = 8,
DirectoryNameFormField = 9,
CheckboxFormField = 10,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNFormInputField {
pub type_: BNFormInputFieldType,
pub prompt: *const ::std::os::raw::c_char,
#[doc = " For AddressFormField"]
pub view: *mut BNBinaryView,
#[doc = " For AddressFormField"]
pub currentAddress: u64,
#[doc = " For ChoiceFormField"]
pub choices: *mut *const ::std::os::raw::c_char,
#[doc = " For ChoiceFormField"]
pub count: usize,
#[doc = " For OpenFileNameFormField, SaveFileNameFormField"]
pub ext: *const ::std::os::raw::c_char,
#[doc = " For SaveFileNameFormField"]
pub defaultName: *const ::std::os::raw::c_char,
pub intResult: i64,
pub addressResult: u64,
pub stringResult: *mut ::std::os::raw::c_char,
pub indexResult: usize,
pub hasDefault: bool,
pub intDefault: i64,
pub addressDefault: u64,
pub stringDefault: *const ::std::os::raw::c_char,
pub indexDefault: usize,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNFormInputField"][::std::mem::size_of::<BNFormInputField>() - 136usize];
["Alignment of BNFormInputField"][::std::mem::align_of::<BNFormInputField>() - 8usize];
["Offset of field: BNFormInputField::type_"]
[::std::mem::offset_of!(BNFormInputField, type_) - 0usize];
["Offset of field: BNFormInputField::prompt"]
[::std::mem::offset_of!(BNFormInputField, prompt) - 8usize];
["Offset of field: BNFormInputField::view"]
[::std::mem::offset_of!(BNFormInputField, view) - 16usize];
["Offset of field: BNFormInputField::currentAddress"]
[::std::mem::offset_of!(BNFormInputField, currentAddress) - 24usize];
["Offset of field: BNFormInputField::choices"]
[::std::mem::offset_of!(BNFormInputField, choices) - 32usize];
["Offset of field: BNFormInputField::count"]
[::std::mem::offset_of!(BNFormInputField, count) - 40usize];
["Offset of field: BNFormInputField::ext"]
[::std::mem::offset_of!(BNFormInputField, ext) - 48usize];
["Offset of field: BNFormInputField::defaultName"]
[::std::mem::offset_of!(BNFormInputField, defaultName) - 56usize];
["Offset of field: BNFormInputField::intResult"]
[::std::mem::offset_of!(BNFormInputField, intResult) - 64usize];
["Offset of field: BNFormInputField::addressResult"]
[::std::mem::offset_of!(BNFormInputField, addressResult) - 72usize];
["Offset of field: BNFormInputField::stringResult"]
[::std::mem::offset_of!(BNFormInputField, stringResult) - 80usize];
["Offset of field: BNFormInputField::indexResult"]
[::std::mem::offset_of!(BNFormInputField, indexResult) - 88usize];
["Offset of field: BNFormInputField::hasDefault"]
[::std::mem::offset_of!(BNFormInputField, hasDefault) - 96usize];
["Offset of field: BNFormInputField::intDefault"]
[::std::mem::offset_of!(BNFormInputField, intDefault) - 104usize];
["Offset of field: BNFormInputField::addressDefault"]
[::std::mem::offset_of!(BNFormInputField, addressDefault) - 112usize];
["Offset of field: BNFormInputField::stringDefault"]
[::std::mem::offset_of!(BNFormInputField, stringDefault) - 120usize];
["Offset of field: BNFormInputField::indexDefault"]
[::std::mem::offset_of!(BNFormInputField, indexDefault) - 128usize];
};
impl Default for BNFormInputField {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNInteractionHandlerCallbacks {
pub context: *mut ::std::os::raw::c_void,
pub showPlainTextReport: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
title: *const ::std::os::raw::c_char,
contents: *const ::std::os::raw::c_char,
),
>,
pub showMarkdownReport: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
title: *const ::std::os::raw::c_char,
contents: *const ::std::os::raw::c_char,
plaintext: *const ::std::os::raw::c_char,
),
>,
pub showHTMLReport: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
title: *const ::std::os::raw::c_char,
contents: *const ::std::os::raw::c_char,
plaintext: *const ::std::os::raw::c_char,
),
>,
pub showGraphReport: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
title: *const ::std::os::raw::c_char,
graph: *mut BNFlowGraph,
),
>,
pub showReportCollection: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
title: *const ::std::os::raw::c_char,
reports: *mut BNReportCollection,
),
>,
pub getTextLineInput: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
result: *mut *mut ::std::os::raw::c_char,
prompt: *const ::std::os::raw::c_char,
title: *const ::std::os::raw::c_char,
) -> bool,
>,
pub getIntegerInput: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
result: *mut i64,
prompt: *const ::std::os::raw::c_char,
title: *const ::std::os::raw::c_char,
) -> bool,
>,
pub getAddressInput: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
result: *mut u64,
prompt: *const ::std::os::raw::c_char,
title: *const ::std::os::raw::c_char,
view: *mut BNBinaryView,
currentAddr: u64,
) -> bool,
>,
pub getChoiceInput: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
result: *mut usize,
prompt: *const ::std::os::raw::c_char,
title: *const ::std::os::raw::c_char,
choices: *mut *const ::std::os::raw::c_char,
count: usize,
) -> bool,
>,
pub getLargeChoiceInput: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
result: *mut usize,
prompt: *const ::std::os::raw::c_char,
title: *const ::std::os::raw::c_char,
choices: *mut *const ::std::os::raw::c_char,
count: usize,
) -> bool,
>,
pub getOpenFileNameInput: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
result: *mut *mut ::std::os::raw::c_char,
prompt: *const ::std::os::raw::c_char,
ext: *const ::std::os::raw::c_char,
) -> bool,
>,
pub getSaveFileNameInput: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
result: *mut *mut ::std::os::raw::c_char,
prompt: *const ::std::os::raw::c_char,
ext: *const ::std::os::raw::c_char,
defaultName: *const ::std::os::raw::c_char,
) -> bool,
>,
pub getDirectoryNameInput: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
result: *mut *mut ::std::os::raw::c_char,
prompt: *const ::std::os::raw::c_char,
defaultName: *const ::std::os::raw::c_char,
) -> bool,
>,
pub getCheckboxInput: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
result: *mut i64,
prompt: *const ::std::os::raw::c_char,
title: *const ::std::os::raw::c_char,
defaultChoice: *const i64,
) -> bool,
>,
pub getFormInput: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
fields: *mut BNFormInputField,
count: usize,
title: *const ::std::os::raw::c_char,
) -> bool,
>,
pub showMessageBox: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
title: *const ::std::os::raw::c_char,
text: *const ::std::os::raw::c_char,
buttons: BNMessageBoxButtonSet,
icon: BNMessageBoxIcon,
) -> BNMessageBoxButtonResult,
>,
pub openUrl: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
url: *const ::std::os::raw::c_char,
) -> bool,
>,
pub runProgressDialog: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
title: *const ::std::os::raw::c_char,
canCancel: bool,
task: ::std::option::Option<
unsafe extern "C" fn(
taskCtxt: *mut ::std::os::raw::c_void,
progress: BNProgressFunction,
progressCtxt: *mut ::std::os::raw::c_void,
),
>,
taskCtxt: *mut ::std::os::raw::c_void,
) -> bool,
>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNInteractionHandlerCallbacks"]
[::std::mem::size_of::<BNInteractionHandlerCallbacks>() - 152usize];
["Alignment of BNInteractionHandlerCallbacks"]
[::std::mem::align_of::<BNInteractionHandlerCallbacks>() - 8usize];
["Offset of field: BNInteractionHandlerCallbacks::context"]
[::std::mem::offset_of!(BNInteractionHandlerCallbacks, context) - 0usize];
["Offset of field: BNInteractionHandlerCallbacks::showPlainTextReport"]
[::std::mem::offset_of!(BNInteractionHandlerCallbacks, showPlainTextReport) - 8usize];
["Offset of field: BNInteractionHandlerCallbacks::showMarkdownReport"]
[::std::mem::offset_of!(BNInteractionHandlerCallbacks, showMarkdownReport) - 16usize];
["Offset of field: BNInteractionHandlerCallbacks::showHTMLReport"]
[::std::mem::offset_of!(BNInteractionHandlerCallbacks, showHTMLReport) - 24usize];
["Offset of field: BNInteractionHandlerCallbacks::showGraphReport"]
[::std::mem::offset_of!(BNInteractionHandlerCallbacks, showGraphReport) - 32usize];
["Offset of field: BNInteractionHandlerCallbacks::showReportCollection"]
[::std::mem::offset_of!(BNInteractionHandlerCallbacks, showReportCollection) - 40usize];
["Offset of field: BNInteractionHandlerCallbacks::getTextLineInput"]
[::std::mem::offset_of!(BNInteractionHandlerCallbacks, getTextLineInput) - 48usize];
["Offset of field: BNInteractionHandlerCallbacks::getIntegerInput"]
[::std::mem::offset_of!(BNInteractionHandlerCallbacks, getIntegerInput) - 56usize];
["Offset of field: BNInteractionHandlerCallbacks::getAddressInput"]
[::std::mem::offset_of!(BNInteractionHandlerCallbacks, getAddressInput) - 64usize];
["Offset of field: BNInteractionHandlerCallbacks::getChoiceInput"]
[::std::mem::offset_of!(BNInteractionHandlerCallbacks, getChoiceInput) - 72usize];
["Offset of field: BNInteractionHandlerCallbacks::getLargeChoiceInput"]
[::std::mem::offset_of!(BNInteractionHandlerCallbacks, getLargeChoiceInput) - 80usize];
["Offset of field: BNInteractionHandlerCallbacks::getOpenFileNameInput"]
[::std::mem::offset_of!(BNInteractionHandlerCallbacks, getOpenFileNameInput) - 88usize];
["Offset of field: BNInteractionHandlerCallbacks::getSaveFileNameInput"]
[::std::mem::offset_of!(BNInteractionHandlerCallbacks, getSaveFileNameInput) - 96usize];
["Offset of field: BNInteractionHandlerCallbacks::getDirectoryNameInput"]
[::std::mem::offset_of!(BNInteractionHandlerCallbacks, getDirectoryNameInput) - 104usize];
["Offset of field: BNInteractionHandlerCallbacks::getCheckboxInput"]
[::std::mem::offset_of!(BNInteractionHandlerCallbacks, getCheckboxInput) - 112usize];
["Offset of field: BNInteractionHandlerCallbacks::getFormInput"]
[::std::mem::offset_of!(BNInteractionHandlerCallbacks, getFormInput) - 120usize];
["Offset of field: BNInteractionHandlerCallbacks::showMessageBox"]
[::std::mem::offset_of!(BNInteractionHandlerCallbacks, showMessageBox) - 128usize];
["Offset of field: BNInteractionHandlerCallbacks::openUrl"]
[::std::mem::offset_of!(BNInteractionHandlerCallbacks, openUrl) - 136usize];
["Offset of field: BNInteractionHandlerCallbacks::runProgressDialog"]
[::std::mem::offset_of!(BNInteractionHandlerCallbacks, runProgressDialog) - 144usize];
};
impl Default for BNInteractionHandlerCallbacks {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNObjectDestructionCallbacks {
pub context: *mut ::std::os::raw::c_void,
#[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."]
pub destructBinaryView: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
>,
pub destructFileMetadata: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, file: *mut BNFileMetadata),
>,
pub destructFunction: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, func: *mut BNFunction),
>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNObjectDestructionCallbacks"]
[::std::mem::size_of::<BNObjectDestructionCallbacks>() - 32usize];
["Alignment of BNObjectDestructionCallbacks"]
[::std::mem::align_of::<BNObjectDestructionCallbacks>() - 8usize];
["Offset of field: BNObjectDestructionCallbacks::context"]
[::std::mem::offset_of!(BNObjectDestructionCallbacks, context) - 0usize];
["Offset of field: BNObjectDestructionCallbacks::destructBinaryView"]
[::std::mem::offset_of!(BNObjectDestructionCallbacks, destructBinaryView) - 8usize];
["Offset of field: BNObjectDestructionCallbacks::destructFileMetadata"]
[::std::mem::offset_of!(BNObjectDestructionCallbacks, destructFileMetadata) - 16usize];
["Offset of field: BNObjectDestructionCallbacks::destructFunction"]
[::std::mem::offset_of!(BNObjectDestructionCallbacks, destructFunction) - 24usize];
};
impl Default for BNObjectDestructionCallbacks {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNTypeContext {
pub type_: *mut BNType,
pub offset: usize,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNTypeContext"][::std::mem::size_of::<BNTypeContext>() - 16usize];
["Alignment of BNTypeContext"][::std::mem::align_of::<BNTypeContext>() - 8usize];
["Offset of field: BNTypeContext::type_"]
[::std::mem::offset_of!(BNTypeContext, type_) - 0usize];
["Offset of field: BNTypeContext::offset"]
[::std::mem::offset_of!(BNTypeContext, offset) - 8usize];
};
impl Default for BNTypeContext {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNCustomDataRenderer {
pub context: *mut ::std::os::raw::c_void,
pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
pub isValidForData: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
addr: u64,
type_: *mut BNType,
typeCtx: *mut BNTypeContext,
ctxCount: usize,
) -> bool,
>,
pub getLinesForData: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
addr: u64,
type_: *mut BNType,
prefix: *const BNInstructionTextToken,
prefixCount: usize,
width: usize,
count: *mut usize,
typeCtx: *mut BNTypeContext,
ctxCount: usize,
language: *const ::std::os::raw::c_char,
) -> *mut BNDisassemblyTextLine,
>,
pub freeLines: ::std::option::Option<
unsafe extern "C" fn(
ctx: *mut ::std::os::raw::c_void,
lines: *mut BNDisassemblyTextLine,
count: usize,
),
>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNCustomDataRenderer"][::std::mem::size_of::<BNCustomDataRenderer>() - 40usize];
["Alignment of BNCustomDataRenderer"][::std::mem::align_of::<BNCustomDataRenderer>() - 8usize];
["Offset of field: BNCustomDataRenderer::context"]
[::std::mem::offset_of!(BNCustomDataRenderer, context) - 0usize];
["Offset of field: BNCustomDataRenderer::freeObject"]
[::std::mem::offset_of!(BNCustomDataRenderer, freeObject) - 8usize];
["Offset of field: BNCustomDataRenderer::isValidForData"]
[::std::mem::offset_of!(BNCustomDataRenderer, isValidForData) - 16usize];
["Offset of field: BNCustomDataRenderer::getLinesForData"]
[::std::mem::offset_of!(BNCustomDataRenderer, getLinesForData) - 24usize];
["Offset of field: BNCustomDataRenderer::freeLines"]
[::std::mem::offset_of!(BNCustomDataRenderer, freeLines) - 32usize];
};
impl Default for BNCustomDataRenderer {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNSectionSemantics {
DefaultSectionSemantics = 0,
ReadOnlyCodeSectionSemantics = 1,
ReadOnlyDataSectionSemantics = 2,
ReadWriteDataSectionSemantics = 3,
ExternalSectionSemantics = 4,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct BNAddressRange {
pub start: u64,
pub end: u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNAddressRange"][::std::mem::size_of::<BNAddressRange>() - 16usize];
["Alignment of BNAddressRange"][::std::mem::align_of::<BNAddressRange>() - 8usize];
["Offset of field: BNAddressRange::start"]
[::std::mem::offset_of!(BNAddressRange, start) - 0usize];
["Offset of field: BNAddressRange::end"][::std::mem::offset_of!(BNAddressRange, end) - 8usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNSystemCallInfo {
pub number: u32,
pub name: BNQualifiedName,
pub type_: *mut BNType,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNSystemCallInfo"][::std::mem::size_of::<BNSystemCallInfo>() - 40usize];
["Alignment of BNSystemCallInfo"][::std::mem::align_of::<BNSystemCallInfo>() - 8usize];
["Offset of field: BNSystemCallInfo::number"]
[::std::mem::offset_of!(BNSystemCallInfo, number) - 0usize];
["Offset of field: BNSystemCallInfo::name"]
[::std::mem::offset_of!(BNSystemCallInfo, name) - 8usize];
["Offset of field: BNSystemCallInfo::type_"]
[::std::mem::offset_of!(BNSystemCallInfo, type_) - 32usize];
};
impl Default for BNSystemCallInfo {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNILBranchDependence {
NotBranchDependent = 0,
TrueBranchDependent = 1,
FalseBranchDependent = 2,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNILBranchInstructionAndDependence {
pub branch: usize,
pub dependence: BNILBranchDependence,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNILBranchInstructionAndDependence"]
[::std::mem::size_of::<BNILBranchInstructionAndDependence>() - 16usize];
["Alignment of BNILBranchInstructionAndDependence"]
[::std::mem::align_of::<BNILBranchInstructionAndDependence>() - 8usize];
["Offset of field: BNILBranchInstructionAndDependence::branch"]
[::std::mem::offset_of!(BNILBranchInstructionAndDependence, branch) - 0usize];
["Offset of field: BNILBranchInstructionAndDependence::dependence"]
[::std::mem::offset_of!(BNILBranchInstructionAndDependence, dependence) - 8usize];
};
impl Default for BNILBranchInstructionAndDependence {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNPerformanceInfo {
pub name: *mut ::std::os::raw::c_char,
pub seconds: f64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNPerformanceInfo"][::std::mem::size_of::<BNPerformanceInfo>() - 16usize];
["Alignment of BNPerformanceInfo"][::std::mem::align_of::<BNPerformanceInfo>() - 8usize];
["Offset of field: BNPerformanceInfo::name"]
[::std::mem::offset_of!(BNPerformanceInfo, name) - 0usize];
["Offset of field: BNPerformanceInfo::seconds"]
[::std::mem::offset_of!(BNPerformanceInfo, seconds) - 8usize];
};
impl Default for BNPerformanceInfo {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNMemoryUsageInfo {
pub name: *mut ::std::os::raw::c_char,
pub value: u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNMemoryUsageInfo"][::std::mem::size_of::<BNMemoryUsageInfo>() - 16usize];
["Alignment of BNMemoryUsageInfo"][::std::mem::align_of::<BNMemoryUsageInfo>() - 8usize];
["Offset of field: BNMemoryUsageInfo::name"]
[::std::mem::offset_of!(BNMemoryUsageInfo, name) - 0usize];
["Offset of field: BNMemoryUsageInfo::value"]
[::std::mem::offset_of!(BNMemoryUsageInfo, value) - 8usize];
};
impl Default for BNMemoryUsageInfo {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNMetadataType {
InvalidDataType = 0,
BooleanDataType = 1,
StringDataType = 2,
UnsignedIntegerDataType = 3,
SignedIntegerDataType = 4,
DoubleDataType = 5,
RawDataType = 6,
KeyValueDataType = 7,
ArrayDataType = 8,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct BNRegisterStackAdjustment {
pub regStack: u32,
pub adjustment: i32,
pub confidence: u8,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNRegisterStackAdjustment"]
[::std::mem::size_of::<BNRegisterStackAdjustment>() - 12usize];
["Alignment of BNRegisterStackAdjustment"]
[::std::mem::align_of::<BNRegisterStackAdjustment>() - 4usize];
["Offset of field: BNRegisterStackAdjustment::regStack"]
[::std::mem::offset_of!(BNRegisterStackAdjustment, regStack) - 0usize];
["Offset of field: BNRegisterStackAdjustment::adjustment"]
[::std::mem::offset_of!(BNRegisterStackAdjustment, adjustment) - 4usize];
["Offset of field: BNRegisterStackAdjustment::confidence"]
[::std::mem::offset_of!(BNRegisterStackAdjustment, confidence) - 8usize];
};
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNReportType {
PlainTextReportType = 0,
MarkdownReportType = 1,
HTMLReportType = 2,
FlowGraphReportType = 3,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNCustomFlowGraph {
pub context: *mut ::std::os::raw::c_void,
pub prepareForLayout:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
pub populateNodes:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
pub completeLayout:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
pub update: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNFlowGraph,
>,
pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
pub externalRefTaken:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
pub externalRefReleased:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNCustomFlowGraph"][::std::mem::size_of::<BNCustomFlowGraph>() - 64usize];
["Alignment of BNCustomFlowGraph"][::std::mem::align_of::<BNCustomFlowGraph>() - 8usize];
["Offset of field: BNCustomFlowGraph::context"]
[::std::mem::offset_of!(BNCustomFlowGraph, context) - 0usize];
["Offset of field: BNCustomFlowGraph::prepareForLayout"]
[::std::mem::offset_of!(BNCustomFlowGraph, prepareForLayout) - 8usize];
["Offset of field: BNCustomFlowGraph::populateNodes"]
[::std::mem::offset_of!(BNCustomFlowGraph, populateNodes) - 16usize];
["Offset of field: BNCustomFlowGraph::completeLayout"]
[::std::mem::offset_of!(BNCustomFlowGraph, completeLayout) - 24usize];
["Offset of field: BNCustomFlowGraph::update"]
[::std::mem::offset_of!(BNCustomFlowGraph, update) - 32usize];
["Offset of field: BNCustomFlowGraph::freeObject"]
[::std::mem::offset_of!(BNCustomFlowGraph, freeObject) - 40usize];
["Offset of field: BNCustomFlowGraph::externalRefTaken"]
[::std::mem::offset_of!(BNCustomFlowGraph, externalRefTaken) - 48usize];
["Offset of field: BNCustomFlowGraph::externalRefReleased"]
[::std::mem::offset_of!(BNCustomFlowGraph, externalRefReleased) - 56usize];
};
impl Default for BNCustomFlowGraph {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNCustomFlowGraphLayout {
pub context: *mut ::std::os::raw::c_void,
pub layout: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
graph: *mut BNFlowGraph,
nodes: *mut *mut BNFlowGraphNode,
nodeCount: usize,
) -> bool,
>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNCustomFlowGraphLayout"][::std::mem::size_of::<BNCustomFlowGraphLayout>() - 16usize];
["Alignment of BNCustomFlowGraphLayout"]
[::std::mem::align_of::<BNCustomFlowGraphLayout>() - 8usize];
["Offset of field: BNCustomFlowGraphLayout::context"]
[::std::mem::offset_of!(BNCustomFlowGraphLayout, context) - 0usize];
["Offset of field: BNCustomFlowGraphLayout::layout"]
[::std::mem::offset_of!(BNCustomFlowGraphLayout, layout) - 8usize];
};
impl Default for BNCustomFlowGraphLayout {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct BNRange {
pub start: u64,
pub end: u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNRange"][::std::mem::size_of::<BNRange>() - 16usize];
["Alignment of BNRange"][::std::mem::align_of::<BNRange>() - 8usize];
["Offset of field: BNRange::start"][::std::mem::offset_of!(BNRange, start) - 0usize];
["Offset of field: BNRange::end"][::std::mem::offset_of!(BNRange, end) - 8usize];
};
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNAnalysisSkipReason {
NoSkipReason = 0,
AlwaysSkipReason = 1,
ExceedFunctionSizeSkipReason = 2,
ExceedFunctionAnalysisTimeSkipReason = 3,
ExceedFunctionUpdateCountSkipReason = 4,
NewAutoFunctionAnalysisSuppressedReason = 5,
BasicAnalysisSkipReason = 6,
IntermediateAnalysisSkipReason = 7,
AnalysisPipelineSuspendedReason = 8,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNSettingsScope {
SettingsInvalidScope = 0,
SettingsAutoScope = 1,
SettingsDefaultScope = 2,
SettingsUserScope = 4,
SettingsProjectScope = 8,
SettingsResourceScope = 16,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNLinearViewObjectIdentifierType {
SingleLinearViewObject = 0,
AddressLinearViewObject = 1,
AddressRangeLinearViewObject = 2,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNLinearViewObjectIdentifier {
pub name: *mut ::std::os::raw::c_char,
pub type_: BNLinearViewObjectIdentifierType,
pub start: u64,
pub end: u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNLinearViewObjectIdentifier"]
[::std::mem::size_of::<BNLinearViewObjectIdentifier>() - 32usize];
["Alignment of BNLinearViewObjectIdentifier"]
[::std::mem::align_of::<BNLinearViewObjectIdentifier>() - 8usize];
["Offset of field: BNLinearViewObjectIdentifier::name"]
[::std::mem::offset_of!(BNLinearViewObjectIdentifier, name) - 0usize];
["Offset of field: BNLinearViewObjectIdentifier::type_"]
[::std::mem::offset_of!(BNLinearViewObjectIdentifier, type_) - 8usize];
["Offset of field: BNLinearViewObjectIdentifier::start"]
[::std::mem::offset_of!(BNLinearViewObjectIdentifier, start) - 16usize];
["Offset of field: BNLinearViewObjectIdentifier::end"]
[::std::mem::offset_of!(BNLinearViewObjectIdentifier, end) - 24usize];
};
impl Default for BNLinearViewObjectIdentifier {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNBinaryViewEventType {
BinaryViewFinalizationEvent = 0,
BinaryViewInitialAnalysisCompletionEvent = 1,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNDeadStoreElimination {
DefaultDeadStoreElimination = 0,
PreventDeadStoreElimination = 1,
AllowDeadStoreElimination = 2,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNExprFolding {
DefaultExprFolding = 0,
PreventExprFolding = 1,
AllowExprFolding = 2,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNEarlyReturn {
DefaultEarlyReturn = 0,
PreventEarlyReturn = 1,
SmallestSideEarlyReturn = 2,
TrueSideEarlyReturn = 3,
FalseSideEarlyReturn = 4,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNSwitchRecovery {
DefaultSwitchRecovery = 0,
PreventSwitchRecovery = 1,
AllowSwitchRecovery = 2,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNDebugFunctionInfo {
pub shortName: *mut ::std::os::raw::c_char,
pub fullName: *mut ::std::os::raw::c_char,
pub rawName: *mut ::std::os::raw::c_char,
pub address: u64,
pub type_: *mut BNType,
pub platform: *mut BNPlatform,
pub components: *mut *mut ::std::os::raw::c_char,
pub componentN: usize,
pub localVariables: *mut BNVariableNameAndType,
pub localVariableN: usize,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNDebugFunctionInfo"][::std::mem::size_of::<BNDebugFunctionInfo>() - 80usize];
["Alignment of BNDebugFunctionInfo"][::std::mem::align_of::<BNDebugFunctionInfo>() - 8usize];
["Offset of field: BNDebugFunctionInfo::shortName"]
[::std::mem::offset_of!(BNDebugFunctionInfo, shortName) - 0usize];
["Offset of field: BNDebugFunctionInfo::fullName"]
[::std::mem::offset_of!(BNDebugFunctionInfo, fullName) - 8usize];
["Offset of field: BNDebugFunctionInfo::rawName"]
[::std::mem::offset_of!(BNDebugFunctionInfo, rawName) - 16usize];
["Offset of field: BNDebugFunctionInfo::address"]
[::std::mem::offset_of!(BNDebugFunctionInfo, address) - 24usize];
["Offset of field: BNDebugFunctionInfo::type_"]
[::std::mem::offset_of!(BNDebugFunctionInfo, type_) - 32usize];
["Offset of field: BNDebugFunctionInfo::platform"]
[::std::mem::offset_of!(BNDebugFunctionInfo, platform) - 40usize];
["Offset of field: BNDebugFunctionInfo::components"]
[::std::mem::offset_of!(BNDebugFunctionInfo, components) - 48usize];
["Offset of field: BNDebugFunctionInfo::componentN"]
[::std::mem::offset_of!(BNDebugFunctionInfo, componentN) - 56usize];
["Offset of field: BNDebugFunctionInfo::localVariables"]
[::std::mem::offset_of!(BNDebugFunctionInfo, localVariables) - 64usize];
["Offset of field: BNDebugFunctionInfo::localVariableN"]
[::std::mem::offset_of!(BNDebugFunctionInfo, localVariableN) - 72usize];
};
impl Default for BNDebugFunctionInfo {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNSecretsProviderCallbacks {
pub context: *mut ::std::os::raw::c_void,
pub hasData: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
key: *const ::std::os::raw::c_char,
) -> bool,
>,
pub getData: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
key: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char,
>,
pub storeData: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
key: *const ::std::os::raw::c_char,
data: *const ::std::os::raw::c_char,
) -> bool,
>,
pub deleteData: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
key: *const ::std::os::raw::c_char,
) -> bool,
>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNSecretsProviderCallbacks"]
[::std::mem::size_of::<BNSecretsProviderCallbacks>() - 40usize];
["Alignment of BNSecretsProviderCallbacks"]
[::std::mem::align_of::<BNSecretsProviderCallbacks>() - 8usize];
["Offset of field: BNSecretsProviderCallbacks::context"]
[::std::mem::offset_of!(BNSecretsProviderCallbacks, context) - 0usize];
["Offset of field: BNSecretsProviderCallbacks::hasData"]
[::std::mem::offset_of!(BNSecretsProviderCallbacks, hasData) - 8usize];
["Offset of field: BNSecretsProviderCallbacks::getData"]
[::std::mem::offset_of!(BNSecretsProviderCallbacks, getData) - 16usize];
["Offset of field: BNSecretsProviderCallbacks::storeData"]
[::std::mem::offset_of!(BNSecretsProviderCallbacks, storeData) - 24usize];
["Offset of field: BNSecretsProviderCallbacks::deleteData"]
[::std::mem::offset_of!(BNSecretsProviderCallbacks, deleteData) - 32usize];
};
impl Default for BNSecretsProviderCallbacks {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNMergedVariable {
pub target: BNVariable,
pub sources: *mut BNVariable,
pub sourceCount: usize,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNMergedVariable"][::std::mem::size_of::<BNMergedVariable>() - 32usize];
["Alignment of BNMergedVariable"][::std::mem::align_of::<BNMergedVariable>() - 8usize];
["Offset of field: BNMergedVariable::target"]
[::std::mem::offset_of!(BNMergedVariable, target) - 0usize];
["Offset of field: BNMergedVariable::sources"]
[::std::mem::offset_of!(BNMergedVariable, sources) - 16usize];
["Offset of field: BNMergedVariable::sourceCount"]
[::std::mem::offset_of!(BNMergedVariable, sourceCount) - 24usize];
};
impl Default for BNMergedVariable {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNEnterpriseServerCallbacks {
pub context: *mut ::std::os::raw::c_void,
pub licenseStatusChanged: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, stillValid: bool),
>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNEnterpriseServerCallbacks"]
[::std::mem::size_of::<BNEnterpriseServerCallbacks>() - 16usize];
["Alignment of BNEnterpriseServerCallbacks"]
[::std::mem::align_of::<BNEnterpriseServerCallbacks>() - 8usize];
["Offset of field: BNEnterpriseServerCallbacks::context"]
[::std::mem::offset_of!(BNEnterpriseServerCallbacks, context) - 0usize];
["Offset of field: BNEnterpriseServerCallbacks::licenseStatusChanged"]
[::std::mem::offset_of!(BNEnterpriseServerCallbacks, licenseStatusChanged) - 8usize];
};
impl Default for BNEnterpriseServerCallbacks {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNTypeArchiveNotification {
pub context: *mut ::std::os::raw::c_void,
pub typeAdded: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
archive: *mut BNTypeArchive,
id: *const ::std::os::raw::c_char,
definition: *mut BNType,
),
>,
pub typeUpdated: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
archive: *mut BNTypeArchive,
id: *const ::std::os::raw::c_char,
oldDefinition: *mut BNType,
newDefinition: *mut BNType,
),
>,
pub typeRenamed: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
archive: *mut BNTypeArchive,
id: *const ::std::os::raw::c_char,
oldName: *const BNQualifiedName,
newName: *const BNQualifiedName,
),
>,
pub typeDeleted: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
archive: *mut BNTypeArchive,
id: *const ::std::os::raw::c_char,
definition: *mut BNType,
),
>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNTypeArchiveNotification"]
[::std::mem::size_of::<BNTypeArchiveNotification>() - 40usize];
["Alignment of BNTypeArchiveNotification"]
[::std::mem::align_of::<BNTypeArchiveNotification>() - 8usize];
["Offset of field: BNTypeArchiveNotification::context"]
[::std::mem::offset_of!(BNTypeArchiveNotification, context) - 0usize];
["Offset of field: BNTypeArchiveNotification::typeAdded"]
[::std::mem::offset_of!(BNTypeArchiveNotification, typeAdded) - 8usize];
["Offset of field: BNTypeArchiveNotification::typeUpdated"]
[::std::mem::offset_of!(BNTypeArchiveNotification, typeUpdated) - 16usize];
["Offset of field: BNTypeArchiveNotification::typeRenamed"]
[::std::mem::offset_of!(BNTypeArchiveNotification, typeRenamed) - 24usize];
["Offset of field: BNTypeArchiveNotification::typeDeleted"]
[::std::mem::offset_of!(BNTypeArchiveNotification, typeDeleted) - 32usize];
};
impl Default for BNTypeArchiveNotification {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNTypeContainerType {
AnalysisTypeContainerType = 0,
AnalysisAutoTypeContainerType = 1,
AnalysisUserTypeContainerType = 2,
TypeLibraryTypeContainerType = 3,
TypeArchiveTypeContainerType = 4,
DebugInfoTypeContainerType = 5,
PlatformTypeContainerType = 6,
EmptyTypeContainerType = 7,
OtherTypeContainerType = 8,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNSyncStatus {
NotSyncedSyncStatus = 0,
NoChangesSyncStatus = 1,
UnknownSyncStatus = 2,
CanPushSyncStatus = 3,
CanPullSyncStatus = 4,
CanPushAndPullSyncStatus = 5,
ConflictSyncStatus = 6,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNBaseAddressDetectionPOISetting {
POIAnalysisStringsOnly = 0,
POIAnalysisFunctionsOnly = 1,
POIAnalysisAll = 2,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNBaseAddressDetectionPOIType {
POIString = 0,
POIFunction = 1,
POIDataVariable = 2,
POIFileStart = 3,
POIFileEnd = 4,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNBaseAddressDetectionConfidence {
NoConfidence = 0,
LowConfidence = 1,
HighConfidence = 2,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNBaseAddressDetectionSettings {
pub Architecture: *const ::std::os::raw::c_char,
pub Analysis: *const ::std::os::raw::c_char,
pub MinStrlen: u32,
pub Alignment: u32,
pub LowerBoundary: u64,
pub UpperBoundary: u64,
pub POIAnalysis: BNBaseAddressDetectionPOISetting,
pub MaxPointersPerCluster: u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNBaseAddressDetectionSettings"]
[::std::mem::size_of::<BNBaseAddressDetectionSettings>() - 48usize];
["Alignment of BNBaseAddressDetectionSettings"]
[::std::mem::align_of::<BNBaseAddressDetectionSettings>() - 8usize];
["Offset of field: BNBaseAddressDetectionSettings::Architecture"]
[::std::mem::offset_of!(BNBaseAddressDetectionSettings, Architecture) - 0usize];
["Offset of field: BNBaseAddressDetectionSettings::Analysis"]
[::std::mem::offset_of!(BNBaseAddressDetectionSettings, Analysis) - 8usize];
["Offset of field: BNBaseAddressDetectionSettings::MinStrlen"]
[::std::mem::offset_of!(BNBaseAddressDetectionSettings, MinStrlen) - 16usize];
["Offset of field: BNBaseAddressDetectionSettings::Alignment"]
[::std::mem::offset_of!(BNBaseAddressDetectionSettings, Alignment) - 20usize];
["Offset of field: BNBaseAddressDetectionSettings::LowerBoundary"]
[::std::mem::offset_of!(BNBaseAddressDetectionSettings, LowerBoundary) - 24usize];
["Offset of field: BNBaseAddressDetectionSettings::UpperBoundary"]
[::std::mem::offset_of!(BNBaseAddressDetectionSettings, UpperBoundary) - 32usize];
["Offset of field: BNBaseAddressDetectionSettings::POIAnalysis"]
[::std::mem::offset_of!(BNBaseAddressDetectionSettings, POIAnalysis) - 40usize];
["Offset of field: BNBaseAddressDetectionSettings::MaxPointersPerCluster"]
[::std::mem::offset_of!(BNBaseAddressDetectionSettings, MaxPointersPerCluster) - 44usize];
};
impl Default for BNBaseAddressDetectionSettings {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNBaseAddressDetectionReason {
pub Pointer: u64,
pub POIOffset: u64,
pub POIType: BNBaseAddressDetectionPOIType,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNBaseAddressDetectionReason"]
[::std::mem::size_of::<BNBaseAddressDetectionReason>() - 24usize];
["Alignment of BNBaseAddressDetectionReason"]
[::std::mem::align_of::<BNBaseAddressDetectionReason>() - 8usize];
["Offset of field: BNBaseAddressDetectionReason::Pointer"]
[::std::mem::offset_of!(BNBaseAddressDetectionReason, Pointer) - 0usize];
["Offset of field: BNBaseAddressDetectionReason::POIOffset"]
[::std::mem::offset_of!(BNBaseAddressDetectionReason, POIOffset) - 8usize];
["Offset of field: BNBaseAddressDetectionReason::POIType"]
[::std::mem::offset_of!(BNBaseAddressDetectionReason, POIType) - 16usize];
};
impl Default for BNBaseAddressDetectionReason {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct BNBaseAddressDetectionScore {
pub Score: usize,
pub BaseAddress: u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNBaseAddressDetectionScore"]
[::std::mem::size_of::<BNBaseAddressDetectionScore>() - 16usize];
["Alignment of BNBaseAddressDetectionScore"]
[::std::mem::align_of::<BNBaseAddressDetectionScore>() - 8usize];
["Offset of field: BNBaseAddressDetectionScore::Score"]
[::std::mem::offset_of!(BNBaseAddressDetectionScore, Score) - 0usize];
["Offset of field: BNBaseAddressDetectionScore::BaseAddress"]
[::std::mem::offset_of!(BNBaseAddressDetectionScore, BaseAddress) - 8usize];
};
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNCollaborationPermissionLevel {
AdminPermission = 1,
EditPermission = 2,
ViewPermission = 3,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNRemoteFileType {
#[doc = " \"RW\""]
RawDataFileType = 0,
#[doc = " \"BV\""]
BinaryViewAnalysisFileType = 1,
#[doc = " \"TA\""]
TypeArchiveFileType = 2,
#[doc = " Others"]
UnknownFileType = 3,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNMergeConflictDataType {
TextConflictDataType = 0,
JsonConflictDataType = 1,
BinaryConflictDataType = 2,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNAnalysisMergeConflictSplitterCallbacks {
pub context: *mut ::std::os::raw::c_void,
pub getName: ::std::option::Option<
unsafe extern "C" fn(context: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
>,
pub reset: ::std::option::Option<unsafe extern "C" fn(context: *mut ::std::os::raw::c_void)>,
pub finished: ::std::option::Option<unsafe extern "C" fn(context: *mut ::std::os::raw::c_void)>,
pub canSplit: ::std::option::Option<
unsafe extern "C" fn(
context: *mut ::std::os::raw::c_void,
key: *const ::std::os::raw::c_char,
conflict: *const BNAnalysisMergeConflict,
) -> bool,
>,
pub split: ::std::option::Option<
unsafe extern "C" fn(
context: *mut ::std::os::raw::c_void,
originalKey: *const ::std::os::raw::c_char,
originalConflict: *const BNAnalysisMergeConflict,
result: *mut BNKeyValueStore,
newKeys: *mut *mut *mut ::std::os::raw::c_char,
newConflicts: *mut *mut *mut BNAnalysisMergeConflict,
newCount: *mut usize,
) -> bool,
>,
pub freeName: ::std::option::Option<
unsafe extern "C" fn(
context: *mut ::std::os::raw::c_void,
name: *mut ::std::os::raw::c_char,
),
>,
pub freeKeyList: ::std::option::Option<
unsafe extern "C" fn(
context: *mut ::std::os::raw::c_void,
keyList: *mut *mut ::std::os::raw::c_char,
count: usize,
),
>,
pub freeConflictList: ::std::option::Option<
unsafe extern "C" fn(
context: *mut ::std::os::raw::c_void,
conflictList: *mut *mut BNAnalysisMergeConflict,
count: usize,
),
>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNAnalysisMergeConflictSplitterCallbacks"]
[::std::mem::size_of::<BNAnalysisMergeConflictSplitterCallbacks>() - 72usize];
["Alignment of BNAnalysisMergeConflictSplitterCallbacks"]
[::std::mem::align_of::<BNAnalysisMergeConflictSplitterCallbacks>() - 8usize];
["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::context"]
[::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, context) - 0usize];
["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::getName"]
[::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, getName) - 8usize];
["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::reset"]
[::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, reset) - 16usize];
["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::finished"]
[::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, finished) - 24usize];
["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::canSplit"]
[::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, canSplit) - 32usize];
["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::split"]
[::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, split) - 40usize];
["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::freeName"]
[::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, freeName) - 48usize];
["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::freeKeyList"]
[::std::mem::offset_of!(BNAnalysisMergeConflictSplitterCallbacks, freeKeyList) - 56usize];
["Offset of field: BNAnalysisMergeConflictSplitterCallbacks::freeConflictList"][::std::mem::offset_of!(
BNAnalysisMergeConflictSplitterCallbacks,
freeConflictList
) - 64usize];
};
impl Default for BNAnalysisMergeConflictSplitterCallbacks {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNDemanglerCallbacks {
pub context: *mut ::std::os::raw::c_void,
pub isMangledString: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
name: *const ::std::os::raw::c_char,
) -> bool,
>,
pub demangle: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
arch: *mut BNArchitecture,
name: *const ::std::os::raw::c_char,
outType: *mut *mut BNType,
outVarName: *mut BNQualifiedName,
view: *mut BNBinaryView,
) -> bool,
>,
pub freeVarName: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, name: *mut BNQualifiedName),
>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNDemanglerCallbacks"][::std::mem::size_of::<BNDemanglerCallbacks>() - 32usize];
["Alignment of BNDemanglerCallbacks"][::std::mem::align_of::<BNDemanglerCallbacks>() - 8usize];
["Offset of field: BNDemanglerCallbacks::context"]
[::std::mem::offset_of!(BNDemanglerCallbacks, context) - 0usize];
["Offset of field: BNDemanglerCallbacks::isMangledString"]
[::std::mem::offset_of!(BNDemanglerCallbacks, isMangledString) - 8usize];
["Offset of field: BNDemanglerCallbacks::demangle"]
[::std::mem::offset_of!(BNDemanglerCallbacks, demangle) - 16usize];
["Offset of field: BNDemanglerCallbacks::freeVarName"]
[::std::mem::offset_of!(BNDemanglerCallbacks, freeVarName) - 24usize];
};
impl Default for BNDemanglerCallbacks {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNScopeType {
OneLineScopeType = 0,
HasSubScopeScopeType = 1,
BlockScopeType = 2,
SwitchScopeType = 3,
CaseScopeType = 4,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNBraceRequirement {
OptionalBraces = 0,
BracesNotAllowed = 1,
BracesAlwaysRequired = 2,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct BNTokenEmitterExpr {
pub address: u64,
pub sourceOperand: u32,
pub exprIndex: usize,
pub instrIndex: usize,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNTokenEmitterExpr"][::std::mem::size_of::<BNTokenEmitterExpr>() - 32usize];
["Alignment of BNTokenEmitterExpr"][::std::mem::align_of::<BNTokenEmitterExpr>() - 8usize];
["Offset of field: BNTokenEmitterExpr::address"]
[::std::mem::offset_of!(BNTokenEmitterExpr, address) - 0usize];
["Offset of field: BNTokenEmitterExpr::sourceOperand"]
[::std::mem::offset_of!(BNTokenEmitterExpr, sourceOperand) - 8usize];
["Offset of field: BNTokenEmitterExpr::exprIndex"]
[::std::mem::offset_of!(BNTokenEmitterExpr, exprIndex) - 16usize];
["Offset of field: BNTokenEmitterExpr::instrIndex"]
[::std::mem::offset_of!(BNTokenEmitterExpr, instrIndex) - 24usize];
};
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNOperatorPrecedence {
TopLevelOperatorPrecedence = 0,
AssignmentOperatorPrecedence = 1,
TernaryOperatorPrecedence = 2,
LogicalOrOperatorPrecedence = 3,
LogicalAndOperatorPrecedence = 4,
BitwiseOrOperatorPrecedence = 5,
BitwiseXorOperatorPrecedence = 6,
BitwiseAndOperatorPrecedence = 7,
EqualityOperatorPrecedence = 8,
CompareOperatorPrecedence = 9,
ShiftOperatorPrecedence = 10,
AddOperatorPrecedence = 11,
SubOperatorPrecedence = 12,
MultiplyOperatorPrecedence = 13,
DivideOperatorPrecedence = 14,
LowUnaryOperatorPrecedence = 15,
UnaryOperatorPrecedence = 16,
HighUnaryOperatorPrecedence = 17,
MemberAndFunctionOperatorPrecedence = 18,
ScopeOperatorPrecedence = 19,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNSymbolDisplayType {
DisplaySymbolOnly = 0,
AddressOfDataSymbols = 1,
DereferenceNonDataSymbols = 2,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNSymbolDisplayResult {
NoSymbolAvailable = 0,
DataSymbolResult = 1,
OtherSymbolResult = 2,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNCustomLanguageRepresentationFunction {
pub context: *mut ::std::os::raw::c_void,
pub freeObject: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
pub externalRefTaken:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
pub externalRefReleased:
::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
pub initTokenEmitter: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
tokens: *mut BNHighLevelILTokenEmitter,
),
>,
pub getExprText: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
il: *mut BNHighLevelILFunction,
exprIndex: usize,
tokens: *mut BNHighLevelILTokenEmitter,
settings: *mut BNDisassemblySettings,
asFullAst: bool,
precedence: BNOperatorPrecedence,
statement: bool,
),
>,
pub beginLines: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
il: *mut BNHighLevelILFunction,
exprIndex: usize,
tokens: *mut BNHighLevelILTokenEmitter,
),
>,
pub endLines: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
il: *mut BNHighLevelILFunction,
exprIndex: usize,
tokens: *mut BNHighLevelILTokenEmitter,
),
>,
pub getCommentStartString: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
>,
pub getCommentEndString: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
>,
pub getAnnotationStartString: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
>,
pub getAnnotationEndString: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char,
>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNCustomLanguageRepresentationFunction"]
[::std::mem::size_of::<BNCustomLanguageRepresentationFunction>() - 96usize];
["Alignment of BNCustomLanguageRepresentationFunction"]
[::std::mem::align_of::<BNCustomLanguageRepresentationFunction>() - 8usize];
["Offset of field: BNCustomLanguageRepresentationFunction::context"]
[::std::mem::offset_of!(BNCustomLanguageRepresentationFunction, context) - 0usize];
["Offset of field: BNCustomLanguageRepresentationFunction::freeObject"]
[::std::mem::offset_of!(BNCustomLanguageRepresentationFunction, freeObject) - 8usize];
["Offset of field: BNCustomLanguageRepresentationFunction::externalRefTaken"][::std::mem::offset_of!(
BNCustomLanguageRepresentationFunction,
externalRefTaken
) - 16usize];
["Offset of field: BNCustomLanguageRepresentationFunction::externalRefReleased"][::std::mem::offset_of!(
BNCustomLanguageRepresentationFunction,
externalRefReleased
) - 24usize];
["Offset of field: BNCustomLanguageRepresentationFunction::initTokenEmitter"][::std::mem::offset_of!(
BNCustomLanguageRepresentationFunction,
initTokenEmitter
) - 32usize];
["Offset of field: BNCustomLanguageRepresentationFunction::getExprText"]
[::std::mem::offset_of!(BNCustomLanguageRepresentationFunction, getExprText) - 40usize];
["Offset of field: BNCustomLanguageRepresentationFunction::beginLines"]
[::std::mem::offset_of!(BNCustomLanguageRepresentationFunction, beginLines) - 48usize];
["Offset of field: BNCustomLanguageRepresentationFunction::endLines"]
[::std::mem::offset_of!(BNCustomLanguageRepresentationFunction, endLines) - 56usize];
["Offset of field: BNCustomLanguageRepresentationFunction::getCommentStartString"][::std::mem::offset_of!(
BNCustomLanguageRepresentationFunction,
getCommentStartString
) - 64usize];
["Offset of field: BNCustomLanguageRepresentationFunction::getCommentEndString"][::std::mem::offset_of!(
BNCustomLanguageRepresentationFunction,
getCommentEndString
) - 72usize];
["Offset of field: BNCustomLanguageRepresentationFunction::getAnnotationStartString"][::std::mem::offset_of!(
BNCustomLanguageRepresentationFunction,
getAnnotationStartString
)
- 80usize];
["Offset of field: BNCustomLanguageRepresentationFunction::getAnnotationEndString"][::std::mem::offset_of!(
BNCustomLanguageRepresentationFunction,
getAnnotationEndString
)
- 88usize];
};
impl Default for BNCustomLanguageRepresentationFunction {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNCustomLanguageRepresentationFunctionType {
pub context: *mut ::std::os::raw::c_void,
pub create: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
arch: *mut BNArchitecture,
owner: *mut BNFunction,
highLevelIL: *mut BNHighLevelILFunction,
) -> *mut BNLanguageRepresentationFunction,
>,
pub isValid: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView) -> bool,
>,
pub getTypePrinter: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNTypePrinter,
>,
pub getTypeParser: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNTypeParser,
>,
pub getLineFormatter: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void) -> *mut BNLineFormatter,
>,
pub getFunctionTypeTokens: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
func: *mut BNFunction,
settings: *mut BNDisassemblySettings,
count: *mut usize,
) -> *mut BNDisassemblyTextLine,
>,
pub freeLines: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
lines: *mut BNDisassemblyTextLine,
count: usize,
),
>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNCustomLanguageRepresentationFunctionType"]
[::std::mem::size_of::<BNCustomLanguageRepresentationFunctionType>() - 64usize];
["Alignment of BNCustomLanguageRepresentationFunctionType"]
[::std::mem::align_of::<BNCustomLanguageRepresentationFunctionType>() - 8usize];
["Offset of field: BNCustomLanguageRepresentationFunctionType::context"]
[::std::mem::offset_of!(BNCustomLanguageRepresentationFunctionType, context) - 0usize];
["Offset of field: BNCustomLanguageRepresentationFunctionType::create"]
[::std::mem::offset_of!(BNCustomLanguageRepresentationFunctionType, create) - 8usize];
["Offset of field: BNCustomLanguageRepresentationFunctionType::isValid"]
[::std::mem::offset_of!(BNCustomLanguageRepresentationFunctionType, isValid) - 16usize];
["Offset of field: BNCustomLanguageRepresentationFunctionType::getTypePrinter"][::std::mem::offset_of!(
BNCustomLanguageRepresentationFunctionType,
getTypePrinter
) - 24usize];
["Offset of field: BNCustomLanguageRepresentationFunctionType::getTypeParser"][::std::mem::offset_of!(
BNCustomLanguageRepresentationFunctionType,
getTypeParser
) - 32usize];
["Offset of field: BNCustomLanguageRepresentationFunctionType::getLineFormatter"][::std::mem::offset_of!(
BNCustomLanguageRepresentationFunctionType,
getLineFormatter
) - 40usize];
["Offset of field: BNCustomLanguageRepresentationFunctionType::getFunctionTypeTokens"][::std::mem::offset_of!(
BNCustomLanguageRepresentationFunctionType,
getFunctionTypeTokens
)
- 48usize];
["Offset of field: BNCustomLanguageRepresentationFunctionType::freeLines"]
[::std::mem::offset_of!(BNCustomLanguageRepresentationFunctionType, freeLines) - 56usize];
};
impl Default for BNCustomLanguageRepresentationFunctionType {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNBuiltinType {
BuiltinNone = 0,
BuiltinMemcpy = 1,
BuiltinMemset = 2,
BuiltinStrncpy = 3,
BuiltinStrcpy = 4,
BuiltinWcscpy = 5,
BuiltinWmemcpy = 6,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct BNSegmentInfo {
pub start: u64,
pub length: u64,
pub dataOffset: u64,
pub dataLength: u64,
pub flags: u32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNSegmentInfo"][::std::mem::size_of::<BNSegmentInfo>() - 40usize];
["Alignment of BNSegmentInfo"][::std::mem::align_of::<BNSegmentInfo>() - 8usize];
["Offset of field: BNSegmentInfo::start"]
[::std::mem::offset_of!(BNSegmentInfo, start) - 0usize];
["Offset of field: BNSegmentInfo::length"]
[::std::mem::offset_of!(BNSegmentInfo, length) - 8usize];
["Offset of field: BNSegmentInfo::dataOffset"]
[::std::mem::offset_of!(BNSegmentInfo, dataOffset) - 16usize];
["Offset of field: BNSegmentInfo::dataLength"]
[::std::mem::offset_of!(BNSegmentInfo, dataLength) - 24usize];
["Offset of field: BNSegmentInfo::flags"]
[::std::mem::offset_of!(BNSegmentInfo, flags) - 32usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNSectionInfo {
pub name: *const ::std::os::raw::c_char,
pub start: u64,
pub length: u64,
pub semantics: BNSectionSemantics,
pub type_: *const ::std::os::raw::c_char,
pub align: u64,
pub entrySize: u64,
pub linkedSection: *const ::std::os::raw::c_char,
pub infoSection: *const ::std::os::raw::c_char,
pub infoData: u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNSectionInfo"][::std::mem::size_of::<BNSectionInfo>() - 80usize];
["Alignment of BNSectionInfo"][::std::mem::align_of::<BNSectionInfo>() - 8usize];
["Offset of field: BNSectionInfo::name"][::std::mem::offset_of!(BNSectionInfo, name) - 0usize];
["Offset of field: BNSectionInfo::start"]
[::std::mem::offset_of!(BNSectionInfo, start) - 8usize];
["Offset of field: BNSectionInfo::length"]
[::std::mem::offset_of!(BNSectionInfo, length) - 16usize];
["Offset of field: BNSectionInfo::semantics"]
[::std::mem::offset_of!(BNSectionInfo, semantics) - 24usize];
["Offset of field: BNSectionInfo::type_"]
[::std::mem::offset_of!(BNSectionInfo, type_) - 32usize];
["Offset of field: BNSectionInfo::align"]
[::std::mem::offset_of!(BNSectionInfo, align) - 40usize];
["Offset of field: BNSectionInfo::entrySize"]
[::std::mem::offset_of!(BNSectionInfo, entrySize) - 48usize];
["Offset of field: BNSectionInfo::linkedSection"]
[::std::mem::offset_of!(BNSectionInfo, linkedSection) - 56usize];
["Offset of field: BNSectionInfo::infoSection"]
[::std::mem::offset_of!(BNSectionInfo, infoSection) - 64usize];
["Offset of field: BNSectionInfo::infoData"]
[::std::mem::offset_of!(BNSectionInfo, infoData) - 72usize];
};
impl Default for BNSectionInfo {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type BNCollaborationAnalysisConflictHandler = ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut ::std::os::raw::c_void,
keys: *mut *const ::std::os::raw::c_char,
conflicts: *mut *mut BNAnalysisMergeConflict,
conflictCount: usize,
) -> bool,
>;
pub type BNCollaborationNameChangesetFunction = ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut ::std::os::raw::c_void,
arg2: *mut BNCollaborationChangeset,
) -> bool,
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNFirmwareNinjaDevice {
pub name: *mut ::std::os::raw::c_char,
pub start: u64,
pub end: u64,
pub info: *mut ::std::os::raw::c_char,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNFirmwareNinjaDevice"][::std::mem::size_of::<BNFirmwareNinjaDevice>() - 32usize];
["Alignment of BNFirmwareNinjaDevice"]
[::std::mem::align_of::<BNFirmwareNinjaDevice>() - 8usize];
["Offset of field: BNFirmwareNinjaDevice::name"]
[::std::mem::offset_of!(BNFirmwareNinjaDevice, name) - 0usize];
["Offset of field: BNFirmwareNinjaDevice::start"]
[::std::mem::offset_of!(BNFirmwareNinjaDevice, start) - 8usize];
["Offset of field: BNFirmwareNinjaDevice::end"]
[::std::mem::offset_of!(BNFirmwareNinjaDevice, end) - 16usize];
["Offset of field: BNFirmwareNinjaDevice::info"]
[::std::mem::offset_of!(BNFirmwareNinjaDevice, info) - 24usize];
};
impl Default for BNFirmwareNinjaDevice {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNFirmwareNinjaSectionType {
CodeSectionType = 0,
DataSectionType = 1,
CompressionSectionType = 2,
PaddingSectionType = 3,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNFirmwareNinjaSectionAnalysisMode {
DefaultSectionAnalysisMode = 0,
IgnorePaddingSectionAnalysisMode = 1,
DetectStringsSectionAnalysisMode = 2,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNFirmwareNinjaSection {
pub type_: BNFirmwareNinjaSectionType,
pub start: u64,
pub end: u64,
pub entropy: f32,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNFirmwareNinjaSection"][::std::mem::size_of::<BNFirmwareNinjaSection>() - 32usize];
["Alignment of BNFirmwareNinjaSection"]
[::std::mem::align_of::<BNFirmwareNinjaSection>() - 8usize];
["Offset of field: BNFirmwareNinjaSection::type_"]
[::std::mem::offset_of!(BNFirmwareNinjaSection, type_) - 0usize];
["Offset of field: BNFirmwareNinjaSection::start"]
[::std::mem::offset_of!(BNFirmwareNinjaSection, start) - 8usize];
["Offset of field: BNFirmwareNinjaSection::end"]
[::std::mem::offset_of!(BNFirmwareNinjaSection, end) - 16usize];
["Offset of field: BNFirmwareNinjaSection::entropy"]
[::std::mem::offset_of!(BNFirmwareNinjaSection, entropy) - 24usize];
};
impl Default for BNFirmwareNinjaSection {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNFirmwareNinjaMemoryHeuristic {
NoMemoryHeuristic = 0,
HasReadBarrierMemoryHeuristic = 1,
HasWriteBarrierMemoryHeuristic = 2,
StoreToOOBMemoryMemoryHeuristic = 3,
LoadFromOOBMemoryMemoryHeuristic = 4,
RepeatLoadStoreMemoryHeuristic = 5,
CallParamOOBPointerMemoryHeuristic = 6,
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNFirmwareNinjaMemoryAccessType {
NoMemoryAccessType = 0,
ReadMemoryAccessType = 1,
WriteMemoryAccessType = 2,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNFirmwareNinjaMemoryAccess {
pub instrAddress: u64,
pub memAddress: BNRegisterValue,
pub heuristic: BNFirmwareNinjaMemoryHeuristic,
pub type_: BNFirmwareNinjaMemoryAccessType,
pub value: BNRegisterValue,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNFirmwareNinjaMemoryAccess"]
[::std::mem::size_of::<BNFirmwareNinjaMemoryAccess>() - 80usize];
["Alignment of BNFirmwareNinjaMemoryAccess"]
[::std::mem::align_of::<BNFirmwareNinjaMemoryAccess>() - 8usize];
["Offset of field: BNFirmwareNinjaMemoryAccess::instrAddress"]
[::std::mem::offset_of!(BNFirmwareNinjaMemoryAccess, instrAddress) - 0usize];
["Offset of field: BNFirmwareNinjaMemoryAccess::memAddress"]
[::std::mem::offset_of!(BNFirmwareNinjaMemoryAccess, memAddress) - 8usize];
["Offset of field: BNFirmwareNinjaMemoryAccess::heuristic"]
[::std::mem::offset_of!(BNFirmwareNinjaMemoryAccess, heuristic) - 40usize];
["Offset of field: BNFirmwareNinjaMemoryAccess::type_"]
[::std::mem::offset_of!(BNFirmwareNinjaMemoryAccess, type_) - 41usize];
["Offset of field: BNFirmwareNinjaMemoryAccess::value"]
[::std::mem::offset_of!(BNFirmwareNinjaMemoryAccess, value) - 48usize];
};
impl Default for BNFirmwareNinjaMemoryAccess {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNFirmwareNinjaFunctionMemoryAccesses {
pub start: u64,
pub count: usize,
pub accesses: *mut *mut BNFirmwareNinjaMemoryAccess,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNFirmwareNinjaFunctionMemoryAccesses"]
[::std::mem::size_of::<BNFirmwareNinjaFunctionMemoryAccesses>() - 24usize];
["Alignment of BNFirmwareNinjaFunctionMemoryAccesses"]
[::std::mem::align_of::<BNFirmwareNinjaFunctionMemoryAccesses>() - 8usize];
["Offset of field: BNFirmwareNinjaFunctionMemoryAccesses::start"]
[::std::mem::offset_of!(BNFirmwareNinjaFunctionMemoryAccesses, start) - 0usize];
["Offset of field: BNFirmwareNinjaFunctionMemoryAccesses::count"]
[::std::mem::offset_of!(BNFirmwareNinjaFunctionMemoryAccesses, count) - 8usize];
["Offset of field: BNFirmwareNinjaFunctionMemoryAccesses::accesses"]
[::std::mem::offset_of!(BNFirmwareNinjaFunctionMemoryAccesses, accesses) - 16usize];
};
impl Default for BNFirmwareNinjaFunctionMemoryAccesses {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNFirmwareNinjaDeviceAccesses {
pub name: *mut ::std::os::raw::c_char,
pub total: usize,
pub unique: usize,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNFirmwareNinjaDeviceAccesses"]
[::std::mem::size_of::<BNFirmwareNinjaDeviceAccesses>() - 24usize];
["Alignment of BNFirmwareNinjaDeviceAccesses"]
[::std::mem::align_of::<BNFirmwareNinjaDeviceAccesses>() - 8usize];
["Offset of field: BNFirmwareNinjaDeviceAccesses::name"]
[::std::mem::offset_of!(BNFirmwareNinjaDeviceAccesses, name) - 0usize];
["Offset of field: BNFirmwareNinjaDeviceAccesses::total"]
[::std::mem::offset_of!(BNFirmwareNinjaDeviceAccesses, total) - 8usize];
["Offset of field: BNFirmwareNinjaDeviceAccesses::unique"]
[::std::mem::offset_of!(BNFirmwareNinjaDeviceAccesses, unique) - 16usize];
};
impl Default for BNFirmwareNinjaDeviceAccesses {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNLineFormatterSettings {
pub highLevelIL: *mut BNHighLevelILFunction,
pub desiredLineLength: usize,
pub minimumContentLength: usize,
pub tabWidth: usize,
pub maximumAnnotationLength: usize,
pub stringWrappingWidth: usize,
pub languageName: *mut ::std::os::raw::c_char,
pub commentStartString: *mut ::std::os::raw::c_char,
pub commentEndString: *mut ::std::os::raw::c_char,
pub annotationStartString: *mut ::std::os::raw::c_char,
pub annotationEndString: *mut ::std::os::raw::c_char,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNLineFormatterSettings"][::std::mem::size_of::<BNLineFormatterSettings>() - 88usize];
["Alignment of BNLineFormatterSettings"]
[::std::mem::align_of::<BNLineFormatterSettings>() - 8usize];
["Offset of field: BNLineFormatterSettings::highLevelIL"]
[::std::mem::offset_of!(BNLineFormatterSettings, highLevelIL) - 0usize];
["Offset of field: BNLineFormatterSettings::desiredLineLength"]
[::std::mem::offset_of!(BNLineFormatterSettings, desiredLineLength) - 8usize];
["Offset of field: BNLineFormatterSettings::minimumContentLength"]
[::std::mem::offset_of!(BNLineFormatterSettings, minimumContentLength) - 16usize];
["Offset of field: BNLineFormatterSettings::tabWidth"]
[::std::mem::offset_of!(BNLineFormatterSettings, tabWidth) - 24usize];
["Offset of field: BNLineFormatterSettings::maximumAnnotationLength"]
[::std::mem::offset_of!(BNLineFormatterSettings, maximumAnnotationLength) - 32usize];
["Offset of field: BNLineFormatterSettings::stringWrappingWidth"]
[::std::mem::offset_of!(BNLineFormatterSettings, stringWrappingWidth) - 40usize];
["Offset of field: BNLineFormatterSettings::languageName"]
[::std::mem::offset_of!(BNLineFormatterSettings, languageName) - 48usize];
["Offset of field: BNLineFormatterSettings::commentStartString"]
[::std::mem::offset_of!(BNLineFormatterSettings, commentStartString) - 56usize];
["Offset of field: BNLineFormatterSettings::commentEndString"]
[::std::mem::offset_of!(BNLineFormatterSettings, commentEndString) - 64usize];
["Offset of field: BNLineFormatterSettings::annotationStartString"]
[::std::mem::offset_of!(BNLineFormatterSettings, annotationStartString) - 72usize];
["Offset of field: BNLineFormatterSettings::annotationEndString"]
[::std::mem::offset_of!(BNLineFormatterSettings, annotationEndString) - 80usize];
};
impl Default for BNLineFormatterSettings {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNCustomLineFormatter {
pub context: *mut ::std::os::raw::c_void,
pub formatLines: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
inLines: *mut BNDisassemblyTextLine,
inCount: usize,
settings: *const BNLineFormatterSettings,
outCount: *mut usize,
) -> *mut BNDisassemblyTextLine,
>,
pub freeLines: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
lines: *mut BNDisassemblyTextLine,
count: usize,
),
>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNCustomLineFormatter"][::std::mem::size_of::<BNCustomLineFormatter>() - 24usize];
["Alignment of BNCustomLineFormatter"]
[::std::mem::align_of::<BNCustomLineFormatter>() - 8usize];
["Offset of field: BNCustomLineFormatter::context"]
[::std::mem::offset_of!(BNCustomLineFormatter, context) - 0usize];
["Offset of field: BNCustomLineFormatter::formatLines"]
[::std::mem::offset_of!(BNCustomLineFormatter, formatLines) - 8usize];
["Offset of field: BNCustomLineFormatter::freeLines"]
[::std::mem::offset_of!(BNCustomLineFormatter, freeLines) - 16usize];
};
impl Default for BNCustomLineFormatter {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNRenderLayerCallbacks {
pub context: *mut ::std::os::raw::c_void,
pub applyToFlowGraph: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, graph: *mut BNFlowGraph),
>,
pub applyToLinearViewObject: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
obj: *mut BNLinearViewObject,
prev: *mut BNLinearViewObject,
next: *mut BNLinearViewObject,
inLines: *mut BNLinearDisassemblyLine,
inLineCount: usize,
outLines: *mut *mut BNLinearDisassemblyLine,
outLineCount: *mut usize,
),
>,
pub freeLines: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
lines: *mut BNLinearDisassemblyLine,
count: usize,
),
>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNRenderLayerCallbacks"][::std::mem::size_of::<BNRenderLayerCallbacks>() - 32usize];
["Alignment of BNRenderLayerCallbacks"]
[::std::mem::align_of::<BNRenderLayerCallbacks>() - 8usize];
["Offset of field: BNRenderLayerCallbacks::context"]
[::std::mem::offset_of!(BNRenderLayerCallbacks, context) - 0usize];
["Offset of field: BNRenderLayerCallbacks::applyToFlowGraph"]
[::std::mem::offset_of!(BNRenderLayerCallbacks, applyToFlowGraph) - 8usize];
["Offset of field: BNRenderLayerCallbacks::applyToLinearViewObject"]
[::std::mem::offset_of!(BNRenderLayerCallbacks, applyToLinearViewObject) - 16usize];
["Offset of field: BNRenderLayerCallbacks::freeLines"]
[::std::mem::offset_of!(BNRenderLayerCallbacks, freeLines) - 24usize];
};
impl Default for BNRenderLayerCallbacks {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(u8)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BNRenderLayerDefaultEnableState {
DisabledByDefaultRenderLayerDefaultEnableState = 0,
EnabledByDefaultRenderLayerDefaultEnableState = 1,
AlwaysEnabledRenderLayerDefaultEnableState = 2,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct BNExprMapInfo {
pub lowerIndex: usize,
pub higherIndex: usize,
pub mapLowerToHigher: bool,
pub mapHigherToLower: bool,
pub lowerToHigherDirect: bool,
pub higherToLowerDirect: bool,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNExprMapInfo"][::std::mem::size_of::<BNExprMapInfo>() - 24usize];
["Alignment of BNExprMapInfo"][::std::mem::align_of::<BNExprMapInfo>() - 8usize];
["Offset of field: BNExprMapInfo::lowerIndex"]
[::std::mem::offset_of!(BNExprMapInfo, lowerIndex) - 0usize];
["Offset of field: BNExprMapInfo::higherIndex"]
[::std::mem::offset_of!(BNExprMapInfo, higherIndex) - 8usize];
["Offset of field: BNExprMapInfo::mapLowerToHigher"]
[::std::mem::offset_of!(BNExprMapInfo, mapLowerToHigher) - 16usize];
["Offset of field: BNExprMapInfo::mapHigherToLower"]
[::std::mem::offset_of!(BNExprMapInfo, mapHigherToLower) - 17usize];
["Offset of field: BNExprMapInfo::lowerToHigherDirect"]
[::std::mem::offset_of!(BNExprMapInfo, lowerToHigherDirect) - 18usize];
["Offset of field: BNExprMapInfo::higherToLowerDirect"]
[::std::mem::offset_of!(BNExprMapInfo, higherToLowerDirect) - 19usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNAllTypeReferences {
pub codeRefs: *mut BNReferenceSource,
pub codeRefCount: usize,
pub dataRefs: *mut u64,
pub dataRefCount: usize,
pub typeRefs: *mut BNTypeReferenceSource,
pub typeRefCount: usize,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNAllTypeReferences"][::std::mem::size_of::<BNAllTypeReferences>() - 48usize];
["Alignment of BNAllTypeReferences"][::std::mem::align_of::<BNAllTypeReferences>() - 8usize];
["Offset of field: BNAllTypeReferences::codeRefs"]
[::std::mem::offset_of!(BNAllTypeReferences, codeRefs) - 0usize];
["Offset of field: BNAllTypeReferences::codeRefCount"]
[::std::mem::offset_of!(BNAllTypeReferences, codeRefCount) - 8usize];
["Offset of field: BNAllTypeReferences::dataRefs"]
[::std::mem::offset_of!(BNAllTypeReferences, dataRefs) - 16usize];
["Offset of field: BNAllTypeReferences::dataRefCount"]
[::std::mem::offset_of!(BNAllTypeReferences, dataRefCount) - 24usize];
["Offset of field: BNAllTypeReferences::typeRefs"]
[::std::mem::offset_of!(BNAllTypeReferences, typeRefs) - 32usize];
["Offset of field: BNAllTypeReferences::typeRefCount"]
[::std::mem::offset_of!(BNAllTypeReferences, typeRefCount) - 40usize];
};
impl Default for BNAllTypeReferences {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNAllTypeFieldReferences {
pub codeRefs: *mut BNTypeFieldReference,
pub codeRefCount: usize,
pub dataRefsTo: *mut u64,
pub dataRefToCount: usize,
pub dataRefsFrom: *mut u64,
pub dataRefFromCount: usize,
pub typeRefs: *mut BNTypeReferenceSource,
pub typeRefCount: usize,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNAllTypeFieldReferences"]
[::std::mem::size_of::<BNAllTypeFieldReferences>() - 64usize];
["Alignment of BNAllTypeFieldReferences"]
[::std::mem::align_of::<BNAllTypeFieldReferences>() - 8usize];
["Offset of field: BNAllTypeFieldReferences::codeRefs"]
[::std::mem::offset_of!(BNAllTypeFieldReferences, codeRefs) - 0usize];
["Offset of field: BNAllTypeFieldReferences::codeRefCount"]
[::std::mem::offset_of!(BNAllTypeFieldReferences, codeRefCount) - 8usize];
["Offset of field: BNAllTypeFieldReferences::dataRefsTo"]
[::std::mem::offset_of!(BNAllTypeFieldReferences, dataRefsTo) - 16usize];
["Offset of field: BNAllTypeFieldReferences::dataRefToCount"]
[::std::mem::offset_of!(BNAllTypeFieldReferences, dataRefToCount) - 24usize];
["Offset of field: BNAllTypeFieldReferences::dataRefsFrom"]
[::std::mem::offset_of!(BNAllTypeFieldReferences, dataRefsFrom) - 32usize];
["Offset of field: BNAllTypeFieldReferences::dataRefFromCount"]
[::std::mem::offset_of!(BNAllTypeFieldReferences, dataRefFromCount) - 40usize];
["Offset of field: BNAllTypeFieldReferences::typeRefs"]
[::std::mem::offset_of!(BNAllTypeFieldReferences, typeRefs) - 48usize];
["Offset of field: BNAllTypeFieldReferences::typeRefCount"]
[::std::mem::offset_of!(BNAllTypeFieldReferences, typeRefCount) - 56usize];
};
impl Default for BNAllTypeFieldReferences {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNTypeAttribute {
pub name: *mut ::std::os::raw::c_char,
pub value: *mut ::std::os::raw::c_char,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNTypeAttribute"][::std::mem::size_of::<BNTypeAttribute>() - 16usize];
["Alignment of BNTypeAttribute"][::std::mem::align_of::<BNTypeAttribute>() - 8usize];
["Offset of field: BNTypeAttribute::name"]
[::std::mem::offset_of!(BNTypeAttribute, name) - 0usize];
["Offset of field: BNTypeAttribute::value"]
[::std::mem::offset_of!(BNTypeAttribute, value) - 8usize];
};
impl Default for BNTypeAttribute {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNCustomConstantRenderer {
pub context: *mut ::std::os::raw::c_void,
pub isValidForType: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
hlil: *mut BNHighLevelILFunction,
type_: *mut BNType,
) -> bool,
>,
pub renderConstant: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
hlil: *mut BNHighLevelILFunction,
expr: usize,
type_: *mut BNType,
val: i64,
tokens: *mut BNHighLevelILTokenEmitter,
settings: *mut BNDisassemblySettings,
precedence: BNOperatorPrecedence,
) -> bool,
>,
pub renderConstantPointer: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
hlil: *mut BNHighLevelILFunction,
expr: usize,
type_: *mut BNType,
val: i64,
tokens: *mut BNHighLevelILTokenEmitter,
settings: *mut BNDisassemblySettings,
symbolDisplay: BNSymbolDisplayType,
precedence: BNOperatorPrecedence,
) -> bool,
>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNCustomConstantRenderer"]
[::std::mem::size_of::<BNCustomConstantRenderer>() - 32usize];
["Alignment of BNCustomConstantRenderer"]
[::std::mem::align_of::<BNCustomConstantRenderer>() - 8usize];
["Offset of field: BNCustomConstantRenderer::context"]
[::std::mem::offset_of!(BNCustomConstantRenderer, context) - 0usize];
["Offset of field: BNCustomConstantRenderer::isValidForType"]
[::std::mem::offset_of!(BNCustomConstantRenderer, isValidForType) - 8usize];
["Offset of field: BNCustomConstantRenderer::renderConstant"]
[::std::mem::offset_of!(BNCustomConstantRenderer, renderConstant) - 16usize];
["Offset of field: BNCustomConstantRenderer::renderConstantPointer"]
[::std::mem::offset_of!(BNCustomConstantRenderer, renderConstantPointer) - 24usize];
};
impl Default for BNCustomConstantRenderer {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNCustomStringRecognizer {
pub context: *mut ::std::os::raw::c_void,
pub isValidForType: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
hlil: *mut BNHighLevelILFunction,
type_: *mut BNType,
) -> bool,
>,
pub recognizeConstant: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
hlil: *mut BNHighLevelILFunction,
expr: usize,
type_: *mut BNType,
val: i64,
result: *mut BNDerivedString,
) -> bool,
>,
pub recognizeConstantPointer: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
hlil: *mut BNHighLevelILFunction,
expr: usize,
type_: *mut BNType,
val: i64,
result: *mut BNDerivedString,
) -> bool,
>,
pub recognizeExternPointer: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
hlil: *mut BNHighLevelILFunction,
expr: usize,
type_: *mut BNType,
val: i64,
offset: u64,
result: *mut BNDerivedString,
) -> bool,
>,
pub recognizeImport: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
hlil: *mut BNHighLevelILFunction,
expr: usize,
type_: *mut BNType,
val: i64,
result: *mut BNDerivedString,
) -> bool,
>,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNCustomStringRecognizer"]
[::std::mem::size_of::<BNCustomStringRecognizer>() - 48usize];
["Alignment of BNCustomStringRecognizer"]
[::std::mem::align_of::<BNCustomStringRecognizer>() - 8usize];
["Offset of field: BNCustomStringRecognizer::context"]
[::std::mem::offset_of!(BNCustomStringRecognizer, context) - 0usize];
["Offset of field: BNCustomStringRecognizer::isValidForType"]
[::std::mem::offset_of!(BNCustomStringRecognizer, isValidForType) - 8usize];
["Offset of field: BNCustomStringRecognizer::recognizeConstant"]
[::std::mem::offset_of!(BNCustomStringRecognizer, recognizeConstant) - 16usize];
["Offset of field: BNCustomStringRecognizer::recognizeConstantPointer"]
[::std::mem::offset_of!(BNCustomStringRecognizer, recognizeConstantPointer) - 24usize];
["Offset of field: BNCustomStringRecognizer::recognizeExternPointer"]
[::std::mem::offset_of!(BNCustomStringRecognizer, recognizeExternPointer) - 32usize];
["Offset of field: BNCustomStringRecognizer::recognizeImport"]
[::std::mem::offset_of!(BNCustomStringRecognizer, recognizeImport) - 40usize];
};
impl Default for BNCustomStringRecognizer {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BNCustomStringTypeInfo {
pub name: *mut ::std::os::raw::c_char,
pub stringPrefix: *mut ::std::os::raw::c_char,
pub stringPostfix: *mut ::std::os::raw::c_char,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of BNCustomStringTypeInfo"][::std::mem::size_of::<BNCustomStringTypeInfo>() - 24usize];
["Alignment of BNCustomStringTypeInfo"]
[::std::mem::align_of::<BNCustomStringTypeInfo>() - 8usize];
["Offset of field: BNCustomStringTypeInfo::name"]
[::std::mem::offset_of!(BNCustomStringTypeInfo, name) - 0usize];
["Offset of field: BNCustomStringTypeInfo::stringPrefix"]
[::std::mem::offset_of!(BNCustomStringTypeInfo, stringPrefix) - 8usize];
["Offset of field: BNCustomStringTypeInfo::stringPostfix"]
[::std::mem::offset_of!(BNCustomStringTypeInfo, stringPostfix) - 16usize];
};
impl Default for BNCustomStringTypeInfo {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
unsafe extern "C" {
pub fn BNAllocString(contents: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNAllocStringWithLength(
contents: *const ::std::os::raw::c_char,
len: usize,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNFreeString(str_: *mut ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn BNAllocStringList(
contents: *mut *const ::std::os::raw::c_char,
size: usize,
) -> *mut *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNFreeStringList(strs: *mut *mut ::std::os::raw::c_char, count: usize);
}
unsafe extern "C" {
pub fn BNShutdown();
}
unsafe extern "C" {
pub fn BNIsShutdownRequested() -> bool;
}
unsafe extern "C" {
pub fn BNGetVersionInfo() -> BNVersionInfo;
}
unsafe extern "C" {
pub fn BNGetVersionString() -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetBuildId() -> u32;
}
unsafe extern "C" {
pub fn BNGetCurrentCoreABIVersion() -> u32;
}
unsafe extern "C" {
pub fn BNGetMinimumCoreABIVersion() -> u32;
}
unsafe extern "C" {
pub fn BNGetSerialNumber() -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetLicenseExpirationTime() -> u64;
}
unsafe extern "C" {
pub fn BNIsLicenseValidated() -> bool;
}
unsafe extern "C" {
pub fn BNGetLicensedUserEmail() -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetProduct() -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetProductType() -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetLicenseCount() -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn BNIsUIEnabled() -> bool;
}
unsafe extern "C" {
pub fn BNSetLicense(licenseData: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn BNIsDatabase(filename: *const ::std::os::raw::c_char) -> bool;
}
unsafe extern "C" {
pub fn BNIsDatabaseFromData(data: *const ::std::os::raw::c_void, len: usize) -> bool;
}
unsafe extern "C" {
pub fn BNAuthenticateEnterpriseServerWithCredentials(
username: *const ::std::os::raw::c_char,
password: *const ::std::os::raw::c_char,
remember: bool,
) -> bool;
}
unsafe extern "C" {
pub fn BNAuthenticateEnterpriseServerWithMethod(
method: *const ::std::os::raw::c_char,
remember: bool,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetEnterpriseServerAuthenticationMethods(
methods: *mut *mut *mut ::std::os::raw::c_char,
names: *mut *mut *mut ::std::os::raw::c_char,
) -> usize;
}
unsafe extern "C" {
pub fn BNDeauthenticateEnterpriseServer() -> bool;
}
unsafe extern "C" {
pub fn BNCancelEnterpriseServerAuthentication();
}
unsafe extern "C" {
pub fn BNConnectEnterpriseServer() -> bool;
}
unsafe extern "C" {
pub fn BNUpdateEnterpriseServerLicense(timeout: u64) -> bool;
}
unsafe extern "C" {
pub fn BNReleaseEnterpriseServerLicense() -> bool;
}
unsafe extern "C" {
pub fn BNIsEnterpriseServerConnected() -> bool;
}
unsafe extern "C" {
pub fn BNIsEnterpriseServerAuthenticated() -> bool;
}
unsafe extern "C" {
pub fn BNGetEnterpriseServerUsername() -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetEnterpriseServerToken() -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetEnterpriseServerUrl() -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNSetEnterpriseServerUrl(url: *const ::std::os::raw::c_char) -> bool;
}
unsafe extern "C" {
pub fn BNGetEnterpriseServerName() -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetEnterpriseServerId() -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetEnterpriseServerVersion() -> u64;
}
unsafe extern "C" {
pub fn BNGetEnterpriseServerBuildId() -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetEnterpriseServerLicenseExpirationTime() -> u64;
}
unsafe extern "C" {
pub fn BNGetEnterpriseServerLicenseDuration() -> u64;
}
unsafe extern "C" {
pub fn BNIsEnterpriseServerFloatingLicense() -> bool;
}
unsafe extern "C" {
pub fn BNGetEnterpriseServerReservationTimeLimit() -> u64;
}
unsafe extern "C" {
pub fn BNIsEnterpriseServerLicenseStillActivated() -> bool;
}
unsafe extern "C" {
pub fn BNGetEnterpriseServerLastError() -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNRegisterEnterpriseServerNotification(notify: *mut BNEnterpriseServerCallbacks);
}
unsafe extern "C" {
pub fn BNUnregisterEnterpriseServerNotification(notify: *mut BNEnterpriseServerCallbacks);
}
unsafe extern "C" {
pub fn BNIsEnterpriseServerInitialized() -> bool;
}
unsafe extern "C" {
pub fn BNInitializeEnterpriseServer() -> bool;
}
unsafe extern "C" {
pub fn BNRegisterObjectDestructionCallbacks(callbacks: *mut BNObjectDestructionCallbacks);
}
unsafe extern "C" {
pub fn BNUnregisterObjectDestructionCallbacks(callbacks: *mut BNObjectDestructionCallbacks);
}
unsafe extern "C" {
pub fn BNGetUniqueIdentifierString() -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
#[doc = " Plugin initialization"]
pub fn BNInitPlugins(allowUserPlugins: bool) -> bool;
}
unsafe extern "C" {
pub fn BNInitCorePlugins() -> bool;
}
unsafe extern "C" {
pub fn BNDisablePlugins();
}
unsafe extern "C" {
pub fn BNIsPluginsEnabled() -> bool;
}
unsafe extern "C" {
pub fn BNInitUserPlugins();
}
unsafe extern "C" {
pub fn BNInitRepoPlugins();
}
unsafe extern "C" {
pub fn BNGetInstallDirectory() -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetBundledPluginDirectory() -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNSetBundledPluginDirectory(path: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn BNGetUserDirectory() -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetUserPluginDirectory() -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetRepositoriesDirectory() -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetSettingsFileName() -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNSaveLastRun();
}
unsafe extern "C" {
pub fn BNGetPathRelativeToBundledPluginDirectory(
path: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetPathRelativeToUserPluginDirectory(
path: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetPathRelativeToUserDirectory(
path: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNExecuteWorkerProcess(
path: *const ::std::os::raw::c_char,
args: *mut *const ::std::os::raw::c_char,
input: *mut BNDataBuffer,
output: *mut *mut ::std::os::raw::c_char,
error: *mut *mut ::std::os::raw::c_char,
stdoutIsText: bool,
stderrIsText: bool,
) -> bool;
}
unsafe extern "C" {
pub fn BNSetCurrentPluginLoadOrder(order: BNPluginLoadOrder);
}
unsafe extern "C" {
pub fn BNAddRequiredPluginDependency(name: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn BNAddOptionalPluginDependency(name: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
#[doc = " Logging"]
pub fn BNLog(
session: usize,
level: BNLogLevel,
logger_name: *const ::std::os::raw::c_char,
tid: usize,
fmt: *const ::std::os::raw::c_char,
...
);
}
unsafe extern "C" {
pub fn BNLogDebug(fmt: *const ::std::os::raw::c_char, ...);
}
unsafe extern "C" {
pub fn BNLogInfo(fmt: *const ::std::os::raw::c_char, ...);
}
unsafe extern "C" {
pub fn BNLogWarn(fmt: *const ::std::os::raw::c_char, ...);
}
unsafe extern "C" {
pub fn BNLogError(fmt: *const ::std::os::raw::c_char, ...);
}
unsafe extern "C" {
pub fn BNLogAlert(fmt: *const ::std::os::raw::c_char, ...);
}
unsafe extern "C" {
pub fn BNLogString(
session: usize,
level: BNLogLevel,
logger_name: *const ::std::os::raw::c_char,
tid: usize,
str_: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNLogWithStackTrace(
session: usize,
level: BNLogLevel,
logger_name: *const ::std::os::raw::c_char,
tid: usize,
stackTrace: *const ::std::os::raw::c_char,
fmt: *const ::std::os::raw::c_char,
...
);
}
unsafe extern "C" {
pub fn BNLogDebugWithStackTrace(
stackTrace: *const ::std::os::raw::c_char,
fmt: *const ::std::os::raw::c_char,
...
);
}
unsafe extern "C" {
pub fn BNLogInfoWithStackTrace(
stackTrace: *const ::std::os::raw::c_char,
fmt: *const ::std::os::raw::c_char,
...
);
}
unsafe extern "C" {
pub fn BNLogWarnWithStackTrace(
stackTrace: *const ::std::os::raw::c_char,
fmt: *const ::std::os::raw::c_char,
...
);
}
unsafe extern "C" {
pub fn BNLogErrorWithStackTrace(
stackTrace: *const ::std::os::raw::c_char,
fmt: *const ::std::os::raw::c_char,
...
);
}
unsafe extern "C" {
pub fn BNLogAlertWithStackTrace(
stackTrace: *const ::std::os::raw::c_char,
fmt: *const ::std::os::raw::c_char,
...
);
}
unsafe extern "C" {
pub fn BNLogStringWithStackTrace(
session: usize,
level: BNLogLevel,
logger_name: *const ::std::os::raw::c_char,
tid: usize,
stackTrace: *const ::std::os::raw::c_char,
str_: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNNewLoggerReference(logger: *mut BNLogger) -> *mut BNLogger;
}
unsafe extern "C" {
pub fn BNFreeLogger(logger: *mut BNLogger);
}
unsafe extern "C" {
pub fn BNLoggerLog(
logger: *mut BNLogger,
level: BNLogLevel,
fmt: *const ::std::os::raw::c_char,
...
);
}
unsafe extern "C" {
pub fn BNLoggerLogString(
logger: *mut BNLogger,
level: BNLogLevel,
msg: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNLoggerLogWithStackTrace(
logger: *mut BNLogger,
level: BNLogLevel,
stackTrace: *const ::std::os::raw::c_char,
fmt: *const ::std::os::raw::c_char,
...
);
}
unsafe extern "C" {
pub fn BNLoggerLogStringWithStackTrace(
logger: *mut BNLogger,
level: BNLogLevel,
stackTrace: *const ::std::os::raw::c_char,
msg: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNLoggerGetName(logger: *mut BNLogger) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNLoggerGetSessionId(logger: *mut BNLogger) -> usize;
}
unsafe extern "C" {
pub fn BNLogCreateLogger(
loggerName: *const ::std::os::raw::c_char,
sessionId: usize,
) -> *mut BNLogger;
}
unsafe extern "C" {
pub fn BNLogGetLogger(
loggerName: *const ::std::os::raw::c_char,
sessionId: usize,
) -> *mut BNLogger;
}
unsafe extern "C" {
pub fn BNLogGetLoggerNames(count: *mut usize) -> *mut *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNRegisterLogListener(listener: *mut BNLogListener);
}
unsafe extern "C" {
pub fn BNUnregisterLogListener(listener: *mut BNLogListener);
}
unsafe extern "C" {
pub fn BNUpdateLogListeners();
}
unsafe extern "C" {
pub fn BNLogToStdout(minimumLevel: BNLogLevel);
}
unsafe extern "C" {
pub fn BNLogToStderr(minimumLevel: BNLogLevel);
}
unsafe extern "C" {
pub fn BNLogToFile(
minimumLevel: BNLogLevel,
path: *const ::std::os::raw::c_char,
append: bool,
) -> bool;
}
unsafe extern "C" {
pub fn BNCloseLogs();
}
unsafe extern "C" {
#[doc = " Temporary files"]
pub fn BNCreateTemporaryFile() -> *mut BNTemporaryFile;
}
unsafe extern "C" {
pub fn BNCreateTemporaryFileWithContents(data: *mut BNDataBuffer) -> *mut BNTemporaryFile;
}
unsafe extern "C" {
pub fn BNNewTemporaryFileReference(file: *mut BNTemporaryFile) -> *mut BNTemporaryFile;
}
unsafe extern "C" {
pub fn BNFreeTemporaryFile(file: *mut BNTemporaryFile);
}
unsafe extern "C" {
pub fn BNGetTemporaryFilePath(file: *mut BNTemporaryFile) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetTemporaryFileContents(file: *mut BNTemporaryFile) -> *mut BNDataBuffer;
}
unsafe extern "C" {
#[doc = " Data buffer management"]
pub fn BNCreateDataBuffer(data: *const ::std::os::raw::c_void, len: usize)
-> *mut BNDataBuffer;
}
unsafe extern "C" {
pub fn BNDuplicateDataBuffer(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
}
unsafe extern "C" {
pub fn BNFreeDataBuffer(buf: *mut BNDataBuffer);
}
unsafe extern "C" {
pub fn BNGetDataBufferContents(buf: *mut BNDataBuffer) -> *mut ::std::os::raw::c_void;
}
unsafe extern "C" {
pub fn BNGetDataBufferContentsAt(
buf: *mut BNDataBuffer,
offset: usize,
) -> *mut ::std::os::raw::c_void;
}
unsafe extern "C" {
pub fn BNGetDataBufferLength(buf: *mut BNDataBuffer) -> usize;
}
unsafe extern "C" {
pub fn BNGetDataBufferSlice(
buf: *mut BNDataBuffer,
start: usize,
len: usize,
) -> *mut BNDataBuffer;
}
unsafe extern "C" {
pub fn BNSetDataBufferLength(buf: *mut BNDataBuffer, len: usize);
}
unsafe extern "C" {
pub fn BNClearDataBuffer(buf: *mut BNDataBuffer);
}
unsafe extern "C" {
pub fn BNSetDataBufferContents(
buf: *mut BNDataBuffer,
data: *mut ::std::os::raw::c_void,
len: usize,
);
}
unsafe extern "C" {
pub fn BNAssignDataBuffer(dest: *mut BNDataBuffer, src: *mut BNDataBuffer);
}
unsafe extern "C" {
pub fn BNAppendDataBuffer(dest: *mut BNDataBuffer, src: *mut BNDataBuffer);
}
unsafe extern "C" {
pub fn BNAppendDataBufferContents(
dest: *mut BNDataBuffer,
src: *const ::std::os::raw::c_void,
len: usize,
);
}
unsafe extern "C" {
pub fn BNGetDataBufferByte(buf: *mut BNDataBuffer, offset: usize) -> u8;
}
unsafe extern "C" {
pub fn BNSetDataBufferByte(buf: *mut BNDataBuffer, offset: usize, val: u8);
}
unsafe extern "C" {
pub fn BNDataBufferToEscapedString(
buf: *mut BNDataBuffer,
nullTerminates: bool,
escapePrintable: bool,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNDecodeEscapedString(str_: *const ::std::os::raw::c_char) -> *mut BNDataBuffer;
}
unsafe extern "C" {
pub fn BNDataBufferToBase64(buf: *mut BNDataBuffer) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNDecodeBase64(str_: *const ::std::os::raw::c_char) -> *mut BNDataBuffer;
}
unsafe extern "C" {
pub fn BNZlibCompress(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
}
unsafe extern "C" {
pub fn BNZlibDecompress(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
}
unsafe extern "C" {
pub fn BNLzmaDecompress(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
}
unsafe extern "C" {
pub fn BNLzma2Decompress(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
}
unsafe extern "C" {
pub fn BNXzDecompress(buf: *mut BNDataBuffer) -> *mut BNDataBuffer;
}
unsafe extern "C" {
#[doc = " Save settings"]
pub fn BNCreateSaveSettings() -> *mut BNSaveSettings;
}
unsafe extern "C" {
pub fn BNNewSaveSettingsReference(settings: *mut BNSaveSettings) -> *mut BNSaveSettings;
}
unsafe extern "C" {
pub fn BNFreeSaveSettings(settings: *mut BNSaveSettings);
}
unsafe extern "C" {
pub fn BNIsSaveSettingsOptionSet(settings: *mut BNSaveSettings, option: BNSaveOption) -> bool;
}
unsafe extern "C" {
pub fn BNSetSaveSettingsOption(
settings: *mut BNSaveSettings,
option: BNSaveOption,
state: bool,
);
}
unsafe extern "C" {
pub fn BNGetSaveSettingsName(settings: *mut BNSaveSettings) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNSetSaveSettingsName(
settings: *mut BNSaveSettings,
name: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
#[doc = " File metadata object"]
pub fn BNCreateFileMetadata() -> *mut BNFileMetadata;
}
unsafe extern "C" {
pub fn BNNewFileReference(file: *mut BNFileMetadata) -> *mut BNFileMetadata;
}
unsafe extern "C" {
pub fn BNFreeFileMetadata(file: *mut BNFileMetadata);
}
unsafe extern "C" {
pub fn BNCloseFile(file: *mut BNFileMetadata);
}
unsafe extern "C" {
pub fn BNSetFileMetadataNavigationHandler(
file: *mut BNFileMetadata,
handler: *mut BNNavigationHandler,
);
}
unsafe extern "C" {
pub fn BNIsFileModified(file: *mut BNFileMetadata) -> bool;
}
unsafe extern "C" {
pub fn BNIsAnalysisChanged(file: *mut BNFileMetadata) -> bool;
}
unsafe extern "C" {
pub fn BNMarkFileModified(file: *mut BNFileMetadata);
}
unsafe extern "C" {
pub fn BNMarkFileSaved(file: *mut BNFileMetadata);
}
unsafe extern "C" {
pub fn BNIsBackedByDatabase(
file: *mut BNFileMetadata,
binaryViewType: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNCreateDatabase(
data: *mut BNBinaryView,
path: *const ::std::os::raw::c_char,
settings: *mut BNSaveSettings,
) -> bool;
}
unsafe extern "C" {
pub fn BNCreateDatabaseWithProgress(
data: *mut BNBinaryView,
path: *const ::std::os::raw::c_char,
ctxt: *mut ::std::os::raw::c_void,
progress: BNProgressFunction,
settings: *mut BNSaveSettings,
) -> bool;
}
unsafe extern "C" {
pub fn BNOpenExistingDatabase(
file: *mut BNFileMetadata,
path: *const ::std::os::raw::c_char,
) -> *mut BNBinaryView;
}
unsafe extern "C" {
pub fn BNOpenExistingDatabaseWithProgress(
file: *mut BNFileMetadata,
path: *const ::std::os::raw::c_char,
ctxt: *mut ::std::os::raw::c_void,
progress: BNProgressFunction,
) -> *mut BNBinaryView;
}
unsafe extern "C" {
pub fn BNOpenDatabaseForConfiguration(
file: *mut BNFileMetadata,
path: *const ::std::os::raw::c_char,
) -> *mut BNBinaryView;
}
unsafe extern "C" {
pub fn BNSaveAutoSnapshot(data: *mut BNBinaryView, settings: *mut BNSaveSettings) -> bool;
}
unsafe extern "C" {
pub fn BNSaveAutoSnapshotWithProgress(
data: *mut BNBinaryView,
ctxt: *mut ::std::os::raw::c_void,
progress: BNProgressFunction,
settings: *mut BNSaveSettings,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetSnapshotData(
file: *mut BNFileMetadata,
data: *mut BNKeyValueStore,
cache: *mut BNKeyValueStore,
ctxt: *mut ::std::os::raw::c_void,
progress: BNProgressFunction,
);
}
unsafe extern "C" {
pub fn BNApplySnapshotData(
file: *mut BNFileMetadata,
view: *mut BNBinaryView,
data: *mut BNKeyValueStore,
cache: *mut BNKeyValueStore,
ctxt: *mut ::std::os::raw::c_void,
progress: BNProgressFunction,
openForConfiguration: bool,
restoreRawView: bool,
);
}
unsafe extern "C" {
pub fn BNGetFileMetadataDatabase(file: *mut BNFileMetadata) -> *mut BNDatabase;
}
unsafe extern "C" {
#[doc = " Key value store"]
pub fn BNCreateKeyValueStore() -> *mut BNKeyValueStore;
}
unsafe extern "C" {
pub fn BNCreateKeyValueStoreFromDataBuffer(buffer: *mut BNDataBuffer) -> *mut BNKeyValueStore;
}
unsafe extern "C" {
pub fn BNNewKeyValueStoreReference(store: *mut BNKeyValueStore) -> *mut BNKeyValueStore;
}
unsafe extern "C" {
pub fn BNFreeKeyValueStore(store: *mut BNKeyValueStore);
}
unsafe extern "C" {
pub fn BNGetKeyValueStoreKeys(
store: *mut BNKeyValueStore,
count: *mut usize,
) -> *mut *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNKeyValueStoreHasValue(
store: *mut BNKeyValueStore,
name: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetKeyValueStoreValue(
store: *mut BNKeyValueStore,
name: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetKeyValueStoreValueHash(
store: *mut BNKeyValueStore,
name: *const ::std::os::raw::c_char,
) -> *mut BNDataBuffer;
}
unsafe extern "C" {
pub fn BNGetKeyValueStoreBuffer(
store: *mut BNKeyValueStore,
name: *const ::std::os::raw::c_char,
) -> *mut BNDataBuffer;
}
unsafe extern "C" {
pub fn BNSetKeyValueStoreValue(
store: *mut BNKeyValueStore,
name: *const ::std::os::raw::c_char,
value: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNSetKeyValueStoreBuffer(
store: *mut BNKeyValueStore,
name: *const ::std::os::raw::c_char,
value: *const BNDataBuffer,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetKeyValueStoreSerializedData(store: *mut BNKeyValueStore) -> *mut BNDataBuffer;
}
unsafe extern "C" {
pub fn BNBeginKeyValueStoreNamespace(
store: *mut BNKeyValueStore,
name: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNEndKeyValueStoreNamespace(store: *mut BNKeyValueStore);
}
unsafe extern "C" {
pub fn BNIsKeyValueStoreEmpty(store: *mut BNKeyValueStore) -> bool;
}
unsafe extern "C" {
pub fn BNGetKeyValueStoreValueSize(store: *mut BNKeyValueStore) -> usize;
}
unsafe extern "C" {
pub fn BNGetKeyValueStoreDataSize(store: *mut BNKeyValueStore) -> usize;
}
unsafe extern "C" {
pub fn BNGetKeyValueStoreValueStorageSize(store: *mut BNKeyValueStore) -> usize;
}
unsafe extern "C" {
pub fn BNGetKeyValueStoreNamespaceSize(store: *mut BNKeyValueStore) -> usize;
}
unsafe extern "C" {
#[doc = " Project object"]
pub fn BNNewProjectReference(project: *mut BNProject) -> *mut BNProject;
}
unsafe extern "C" {
pub fn BNFreeProject(project: *mut BNProject);
}
unsafe extern "C" {
pub fn BNFreeProjectList(projects: *mut *mut BNProject, count: usize);
}
unsafe extern "C" {
pub fn BNGetOpenProjects(count: *mut usize) -> *mut *mut BNProject;
}
unsafe extern "C" {
pub fn BNCreateProject(
path: *const ::std::os::raw::c_char,
name: *const ::std::os::raw::c_char,
) -> *mut BNProject;
}
unsafe extern "C" {
pub fn BNOpenProject(path: *const ::std::os::raw::c_char) -> *mut BNProject;
}
unsafe extern "C" {
pub fn BNProjectOpen(project: *mut BNProject) -> bool;
}
unsafe extern "C" {
pub fn BNProjectClose(project: *mut BNProject) -> bool;
}
unsafe extern "C" {
pub fn BNProjectGetId(project: *mut BNProject) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNProjectIsOpen(project: *mut BNProject) -> bool;
}
unsafe extern "C" {
pub fn BNProjectGetPath(project: *mut BNProject) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNProjectGetFilePathInProject(
project: *mut BNProject,
file: *mut BNProjectFile,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNProjectGetName(project: *mut BNProject) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNProjectSetName(project: *mut BNProject, name: *const ::std::os::raw::c_char) -> bool;
}
unsafe extern "C" {
pub fn BNProjectGetDescription(project: *mut BNProject) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNProjectSetDescription(
project: *mut BNProject,
description: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNProjectQueryMetadata(
project: *mut BNProject,
key: *const ::std::os::raw::c_char,
) -> *mut BNMetadata;
}
unsafe extern "C" {
pub fn BNProjectStoreMetadata(
project: *mut BNProject,
key: *const ::std::os::raw::c_char,
value: *mut BNMetadata,
) -> bool;
}
unsafe extern "C" {
pub fn BNProjectRemoveMetadata(
project: *mut BNProject,
key: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNProjectCreateFileFromPath(
project: *mut BNProject,
path: *const ::std::os::raw::c_char,
folder: *mut BNProjectFolder,
name: *const ::std::os::raw::c_char,
description: *const ::std::os::raw::c_char,
ctxt: *mut ::std::os::raw::c_void,
progress: BNProgressFunction,
) -> *mut BNProjectFile;
}
unsafe extern "C" {
pub fn BNProjectCreateFileFromPathUnsafe(
project: *mut BNProject,
path: *const ::std::os::raw::c_char,
folder: *mut BNProjectFolder,
name: *const ::std::os::raw::c_char,
description: *const ::std::os::raw::c_char,
id: *const ::std::os::raw::c_char,
creationTimestamp: i64,
ctxt: *mut ::std::os::raw::c_void,
progress: BNProgressFunction,
) -> *mut BNProjectFile;
}
unsafe extern "C" {
pub fn BNProjectCreateFile(
project: *mut BNProject,
contents: *const u8,
contentsSize: usize,
folder: *mut BNProjectFolder,
name: *const ::std::os::raw::c_char,
description: *const ::std::os::raw::c_char,
ctxt: *mut ::std::os::raw::c_void,
progress: BNProgressFunction,
) -> *mut BNProjectFile;
}
unsafe extern "C" {
pub fn BNProjectCreateFileUnsafe(
project: *mut BNProject,
contents: *const u8,
contentsSize: usize,
folder: *mut BNProjectFolder,
name: *const ::std::os::raw::c_char,
description: *const ::std::os::raw::c_char,
id: *const ::std::os::raw::c_char,
creationTimestamp: i64,
ctxt: *mut ::std::os::raw::c_void,
progress: BNProgressFunction,
) -> *mut BNProjectFile;
}
unsafe extern "C" {
pub fn BNProjectGetFiles(project: *mut BNProject, count: *mut usize)
-> *mut *mut BNProjectFile;
}
unsafe extern "C" {
pub fn BNProjectGetFileById(
project: *mut BNProject,
id: *const ::std::os::raw::c_char,
) -> *mut BNProjectFile;
}
unsafe extern "C" {
pub fn BNProjectGetFileByPathOnDisk(
project: *mut BNProject,
path: *const ::std::os::raw::c_char,
) -> *mut BNProjectFile;
}
unsafe extern "C" {
pub fn BNProjectGetFilesByPathInProject(
project: *mut BNProject,
path: *const ::std::os::raw::c_char,
count: *mut usize,
) -> *mut *mut BNProjectFile;
}
unsafe extern "C" {
pub fn BNProjectGetFilesInFolder(
project: *mut BNProject,
folder: *mut BNProjectFolder,
count: *mut usize,
) -> *mut *mut BNProjectFile;
}
unsafe extern "C" {
pub fn BNProjectPushFile(project: *mut BNProject, file: *mut BNProjectFile) -> bool;
}
unsafe extern "C" {
pub fn BNProjectDeleteFile(project: *mut BNProject, file: *mut BNProjectFile) -> bool;
}
unsafe extern "C" {
pub fn BNProjectCreateFolderFromPath(
project: *mut BNProject,
path: *const ::std::os::raw::c_char,
parent: *mut BNProjectFolder,
description: *const ::std::os::raw::c_char,
ctxt: *mut ::std::os::raw::c_void,
progress: BNProgressFunction,
) -> *mut BNProjectFolder;
}
unsafe extern "C" {
pub fn BNProjectCreateFolder(
project: *mut BNProject,
parent: *mut BNProjectFolder,
name: *const ::std::os::raw::c_char,
description: *const ::std::os::raw::c_char,
) -> *mut BNProjectFolder;
}
unsafe extern "C" {
pub fn BNProjectCreateFolderUnsafe(
project: *mut BNProject,
parent: *mut BNProjectFolder,
name: *const ::std::os::raw::c_char,
description: *const ::std::os::raw::c_char,
id: *const ::std::os::raw::c_char,
) -> *mut BNProjectFolder;
}
unsafe extern "C" {
pub fn BNProjectGetFolders(
project: *mut BNProject,
count: *mut usize,
) -> *mut *mut BNProjectFolder;
}
unsafe extern "C" {
pub fn BNProjectGetFolderById(
project: *mut BNProject,
id: *const ::std::os::raw::c_char,
) -> *mut BNProjectFolder;
}
unsafe extern "C" {
pub fn BNProjectPushFolder(project: *mut BNProject, folder: *mut BNProjectFolder) -> bool;
}
unsafe extern "C" {
pub fn BNProjectDeleteFolder(
project: *mut BNProject,
folder: *mut BNProjectFolder,
ctxt: *mut ::std::os::raw::c_void,
progress: BNProgressFunction,
) -> bool;
}
unsafe extern "C" {
pub fn BNProjectBeginBulkOperation(project: *mut BNProject) -> bool;
}
unsafe extern "C" {
pub fn BNProjectEndBulkOperation(project: *mut BNProject) -> bool;
}
unsafe extern "C" {
pub fn BNProjectGetRemoteProject(project: *mut BNProject) -> *mut BNRemoteProject;
}
unsafe extern "C" {
#[doc = " ProjectFile object"]
pub fn BNNewProjectFileReference(file: *mut BNProjectFile) -> *mut BNProjectFile;
}
unsafe extern "C" {
pub fn BNFreeProjectFile(file: *mut BNProjectFile);
}
unsafe extern "C" {
pub fn BNFreeProjectFileList(files: *mut *mut BNProjectFile, count: usize);
}
unsafe extern "C" {
pub fn BNProjectFileGetPathOnDisk(file: *mut BNProjectFile) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNProjectFileGetPathInProject(file: *const BNProjectFile)
-> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNProjectFileExistsOnDisk(file: *mut BNProjectFile) -> bool;
}
unsafe extern "C" {
pub fn BNProjectFileGetName(file: *mut BNProjectFile) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNProjectFileSetName(
file: *mut BNProjectFile,
name: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNProjectFileGetDescription(file: *mut BNProjectFile) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNProjectFileSetDescription(
file: *mut BNProjectFile,
description: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNProjectFileGetId(file: *mut BNProjectFile) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNProjectFileGetFolder(file: *mut BNProjectFile) -> *mut BNProjectFolder;
}
unsafe extern "C" {
pub fn BNProjectFileSetFolder(file: *mut BNProjectFile, folder: *mut BNProjectFolder) -> bool;
}
unsafe extern "C" {
pub fn BNProjectFileGetProject(file: *mut BNProjectFile) -> *mut BNProject;
}
unsafe extern "C" {
pub fn BNProjectFileExport(
file: *mut BNProjectFile,
destination: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNProjectFileGetCreationTimestamp(file: *mut BNProjectFile) -> i64;
}
unsafe extern "C" {
pub fn BNProjectFileAddDependency(file: *mut BNProjectFile, dep: *mut BNProjectFile) -> bool;
}
unsafe extern "C" {
pub fn BNProjectFileRemoveDependency(file: *mut BNProjectFile, dep: *mut BNProjectFile)
-> bool;
}
unsafe extern "C" {
pub fn BNProjectFileGetDependencies(
file: *mut BNProjectFile,
count: *mut usize,
) -> *mut *mut BNProjectFile;
}
unsafe extern "C" {
pub fn BNProjectFileGetRequiredBy(
file: *mut BNProjectFile,
count: *mut usize,
) -> *mut *mut BNProjectFile;
}
unsafe extern "C" {
#[doc = " ProjectFolder object"]
pub fn BNNewProjectFolderReference(folder: *mut BNProjectFolder) -> *mut BNProjectFolder;
}
unsafe extern "C" {
pub fn BNFreeProjectFolder(folder: *mut BNProjectFolder);
}
unsafe extern "C" {
pub fn BNFreeProjectFolderList(folders: *mut *mut BNProjectFolder, count: usize);
}
unsafe extern "C" {
pub fn BNProjectFolderGetId(folder: *mut BNProjectFolder) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNProjectFolderGetName(folder: *mut BNProjectFolder) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNProjectFolderSetName(
folder: *mut BNProjectFolder,
name: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNProjectFolderGetDescription(
folder: *mut BNProjectFolder,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNProjectFolderSetDescription(
folder: *mut BNProjectFolder,
description: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNProjectFolderGetParent(folder: *mut BNProjectFolder) -> *mut BNProjectFolder;
}
unsafe extern "C" {
pub fn BNProjectFolderSetParent(
folder: *mut BNProjectFolder,
parent: *mut BNProjectFolder,
) -> bool;
}
unsafe extern "C" {
pub fn BNProjectFolderGetProject(folder: *mut BNProjectFolder) -> *mut BNProject;
}
unsafe extern "C" {
pub fn BNProjectFolderExport(
folder: *mut BNProjectFolder,
destination: *const ::std::os::raw::c_char,
ctxt: *mut ::std::os::raw::c_void,
progress: BNProgressFunction,
) -> bool;
}
unsafe extern "C" {
pub fn BNProjectFolderGetFiles(
folder: *mut BNProjectFolder,
count: *mut usize,
) -> *mut *mut BNProjectFile;
}
unsafe extern "C" {
#[doc = " ExternalLibrary object"]
pub fn BNNewExternalLibraryReference(lib: *mut BNExternalLibrary) -> *mut BNExternalLibrary;
}
unsafe extern "C" {
pub fn BNFreeExternalLibrary(lib: *mut BNExternalLibrary);
}
unsafe extern "C" {
pub fn BNFreeExternalLibraryList(libs: *mut *mut BNExternalLibrary, count: usize);
}
unsafe extern "C" {
pub fn BNExternalLibraryGetName(lib: *mut BNExternalLibrary) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNExternalLibrarySetBackingFile(lib: *mut BNExternalLibrary, file: *mut BNProjectFile);
}
unsafe extern "C" {
pub fn BNExternalLibraryGetBackingFile(lib: *mut BNExternalLibrary) -> *mut BNProjectFile;
}
unsafe extern "C" {
#[doc = " ExternalLocation object"]
pub fn BNNewExternalLocationReference(loc: *mut BNExternalLocation) -> *mut BNExternalLocation;
}
unsafe extern "C" {
pub fn BNFreeExternalLocation(loc: *mut BNExternalLocation);
}
unsafe extern "C" {
pub fn BNFreeExternalLocationList(locs: *mut *mut BNExternalLocation, count: usize);
}
unsafe extern "C" {
pub fn BNExternalLocationGetSourceSymbol(loc: *mut BNExternalLocation) -> *mut BNSymbol;
}
unsafe extern "C" {
pub fn BNExternalLocationGetTargetAddress(loc: *mut BNExternalLocation) -> u64;
}
unsafe extern "C" {
pub fn BNExternalLocationGetTargetSymbol(
loc: *mut BNExternalLocation,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNExternalLocationGetExternalLibrary(
loc: *mut BNExternalLocation,
) -> *mut BNExternalLibrary;
}
unsafe extern "C" {
pub fn BNExternalLocationHasTargetAddress(loc: *mut BNExternalLocation) -> bool;
}
unsafe extern "C" {
pub fn BNExternalLocationHasTargetSymbol(loc: *mut BNExternalLocation) -> bool;
}
unsafe extern "C" {
pub fn BNExternalLocationSetTargetAddress(
loc: *mut BNExternalLocation,
address: *mut u64,
) -> bool;
}
unsafe extern "C" {
pub fn BNExternalLocationSetTargetSymbol(
loc: *mut BNExternalLocation,
symbol: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNExternalLocationSetExternalLibrary(
loc: *mut BNExternalLocation,
library: *mut BNExternalLibrary,
);
}
unsafe extern "C" {
#[doc = " Database object"]
pub fn BNNewDatabaseReference(database: *mut BNDatabase) -> *mut BNDatabase;
}
unsafe extern "C" {
pub fn BNFreeDatabase(database: *mut BNDatabase);
}
unsafe extern "C" {
pub fn BNSetDatabaseCurrentSnapshot(database: *mut BNDatabase, id: i64);
}
unsafe extern "C" {
pub fn BNGetDatabaseCurrentSnapshot(database: *mut BNDatabase) -> *mut BNSnapshot;
}
unsafe extern "C" {
pub fn BNGetDatabaseSnapshots(
database: *mut BNDatabase,
count: *mut usize,
) -> *mut *mut BNSnapshot;
}
unsafe extern "C" {
pub fn BNGetDatabaseSnapshot(database: *mut BNDatabase, id: i64) -> *mut BNSnapshot;
}
unsafe extern "C" {
pub fn BNWriteDatabaseSnapshotData(
database: *mut BNDatabase,
parents: *mut i64,
parentCount: usize,
file: *mut BNBinaryView,
name: *const ::std::os::raw::c_char,
data: *mut BNKeyValueStore,
autoSave: bool,
ctxt: *mut ::std::os::raw::c_void,
progress: BNProgressFunction,
) -> i64;
}
unsafe extern "C" {
pub fn BNTrimDatabaseSnapshot(database: *mut BNDatabase, id: i64) -> bool;
}
unsafe extern "C" {
pub fn BNRemoveDatabaseSnapshot(database: *mut BNDatabase, id: i64) -> bool;
}
unsafe extern "C" {
pub fn BNGetDatabaseGlobalKeys(
database: *mut BNDatabase,
count: *mut usize,
) -> *mut *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNDatabaseHasGlobal(
database: *mut BNDatabase,
key: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn BNReadDatabaseGlobal(
database: *mut BNDatabase,
key: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNWriteDatabaseGlobal(
database: *mut BNDatabase,
key: *const ::std::os::raw::c_char,
val: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNReadDatabaseGlobalData(
database: *mut BNDatabase,
key: *const ::std::os::raw::c_char,
) -> *mut BNDataBuffer;
}
unsafe extern "C" {
pub fn BNWriteDatabaseGlobalData(
database: *mut BNDatabase,
key: *const ::std::os::raw::c_char,
val: *mut BNDataBuffer,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetDatabaseFile(database: *mut BNDatabase) -> *mut BNFileMetadata;
}
unsafe extern "C" {
pub fn BNDatabaseReloadConnection(database: *mut BNDatabase);
}
unsafe extern "C" {
pub fn BNReadDatabaseAnalysisCache(database: *mut BNDatabase) -> *mut BNKeyValueStore;
}
unsafe extern "C" {
pub fn BNWriteDatabaseAnalysisCache(
database: *mut BNDatabase,
val: *mut BNKeyValueStore,
) -> bool;
}
unsafe extern "C" {
pub fn BNSnapshotHasData(db: *mut BNDatabase, id: i64) -> bool;
}
unsafe extern "C" {
#[doc = " Database snapshots"]
pub fn BNNewSnapshotReference(snapshot: *mut BNSnapshot) -> *mut BNSnapshot;
}
unsafe extern "C" {
pub fn BNFreeSnapshot(snapshot: *mut BNSnapshot);
}
unsafe extern "C" {
pub fn BNFreeSnapshotList(snapshots: *mut *mut BNSnapshot, count: usize);
}
unsafe extern "C" {
pub fn BNGetSnapshotDatabase(snapshot: *mut BNSnapshot) -> *mut BNDatabase;
}
unsafe extern "C" {
pub fn BNGetSnapshotId(snapshot: *mut BNSnapshot) -> i64;
}
unsafe extern "C" {
pub fn BNGetSnapshotFirstParent(snapshot: *mut BNSnapshot) -> *mut BNSnapshot;
}
unsafe extern "C" {
pub fn BNGetSnapshotParents(
snapshot: *mut BNSnapshot,
count: *mut usize,
) -> *mut *mut BNSnapshot;
}
unsafe extern "C" {
pub fn BNGetSnapshotChildren(
snapshot: *mut BNSnapshot,
count: *mut usize,
) -> *mut *mut BNSnapshot;
}
unsafe extern "C" {
pub fn BNGetSnapshotName(snapshot: *mut BNSnapshot) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNSetSnapshotName(snapshot: *mut BNSnapshot, name: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn BNIsSnapshotAutoSave(snapshot: *mut BNSnapshot) -> bool;
}
unsafe extern "C" {
pub fn BNSnapshotHasContents(snapshot: *mut BNSnapshot) -> bool;
}
unsafe extern "C" {
pub fn BNSnapshotHasUndo(snapshot: *mut BNSnapshot) -> bool;
}
unsafe extern "C" {
pub fn BNGetSnapshotFileContents(snapshot: *mut BNSnapshot) -> *mut BNDataBuffer;
}
unsafe extern "C" {
pub fn BNGetSnapshotFileContentsHash(snapshot: *mut BNSnapshot) -> *mut BNDataBuffer;
}
unsafe extern "C" {
pub fn BNReadSnapshotData(snapshot: *mut BNSnapshot) -> *mut BNKeyValueStore;
}
unsafe extern "C" {
pub fn BNReadSnapshotDataWithProgress(
snapshot: *mut BNSnapshot,
ctxt: *mut ::std::os::raw::c_void,
progress: BNProgressFunction,
) -> *mut BNKeyValueStore;
}
unsafe extern "C" {
pub fn BNGetSnapshotUndoData(snapshot: *mut BNSnapshot) -> *mut BNDataBuffer;
}
unsafe extern "C" {
pub fn BNGetSnapshotUndoEntries(
snapshot: *mut BNSnapshot,
count: *mut usize,
) -> *mut *mut BNUndoEntry;
}
unsafe extern "C" {
pub fn BNGetSnapshotUndoEntriesWithProgress(
snapshot: *mut BNSnapshot,
ctxt: *mut ::std::os::raw::c_void,
progress: BNProgressFunction,
count: *mut usize,
) -> *mut *mut BNUndoEntry;
}
unsafe extern "C" {
pub fn BNSnapshotHasAncestor(snapshot: *mut BNSnapshot, other: *mut BNSnapshot) -> bool;
}
unsafe extern "C" {
pub fn BNSnapshotStoreData(
snapshot: *mut BNSnapshot,
data: *mut BNKeyValueStore,
ctxt: *mut ::std::os::raw::c_void,
progress: BNProgressFunction,
) -> bool;
}
unsafe extern "C" {
#[doc = " Undo actions"]
pub fn BNNewUndoActionReference(action: *mut BNUndoAction) -> *mut BNUndoAction;
}
unsafe extern "C" {
pub fn BNFreeUndoAction(action: *mut BNUndoAction);
}
unsafe extern "C" {
pub fn BNFreeUndoActionList(actions: *mut *mut BNUndoAction, count: usize);
}
unsafe extern "C" {
pub fn BNUndoActionGetSummaryText(action: *mut BNUndoAction) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNUndoActionGetSummary(
action: *mut BNUndoAction,
tokenCount: *mut usize,
) -> *mut BNInstructionTextToken;
}
unsafe extern "C" {
#[doc = " Undo entries"]
pub fn BNNewUndoEntryReference(entry: *mut BNUndoEntry) -> *mut BNUndoEntry;
}
unsafe extern "C" {
pub fn BNFreeUndoEntry(entry: *mut BNUndoEntry);
}
unsafe extern "C" {
pub fn BNFreeUndoEntryList(entrys: *mut *mut BNUndoEntry, count: usize);
}
unsafe extern "C" {
pub fn BNUndoEntryGetId(entry: *mut BNUndoEntry) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNUndoEntryGetActions(
entry: *mut BNUndoEntry,
count: *mut usize,
) -> *mut *mut BNUndoAction;
}
unsafe extern "C" {
pub fn BNUndoEntryGetTimestamp(entry: *mut BNUndoEntry) -> u64;
}
unsafe extern "C" {
pub fn BNRebase(data: *mut BNBinaryView, address: u64) -> bool;
}
unsafe extern "C" {
pub fn BNRebaseWithProgress(
data: *mut BNBinaryView,
address: u64,
ctxt: *mut ::std::os::raw::c_void,
progress: BNProgressFunction,
) -> bool;
}
unsafe extern "C" {
pub fn BNCreateSnapshotedView(
data: *mut BNBinaryView,
viewName: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNCreateSnapshotedViewWithProgress(
data: *mut BNBinaryView,
viewName: *const ::std::os::raw::c_char,
ctxt: *mut ::std::os::raw::c_void,
progress: BNProgressFunction,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetOriginalFilename(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNSetOriginalFilename(file: *mut BNFileMetadata, name: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn BNGetFilename(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNSetFilename(file: *mut BNFileMetadata, name: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn BNGetVirtualPath(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNSetVirtualPath(file: *mut BNFileMetadata, path: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn BNGetProjectFile(file: *mut BNFileMetadata) -> *mut BNProjectFile;
}
unsafe extern "C" {
pub fn BNSetProjectFile(file: *mut BNFileMetadata, pfile: *mut BNProjectFile);
}
unsafe extern "C" {
pub fn BNBeginUndoActions(
file: *mut BNFileMetadata,
anonymousAllowed: bool,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNCommitUndoActions(file: *mut BNFileMetadata, id: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn BNRevertUndoActions(file: *mut BNFileMetadata, id: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn BNForgetUndoActions(file: *mut BNFileMetadata, id: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn BNCanUndo(file: *mut BNFileMetadata) -> bool;
}
unsafe extern "C" {
pub fn BNUndo(file: *mut BNFileMetadata) -> bool;
}
unsafe extern "C" {
pub fn BNCanRedo(file: *mut BNFileMetadata) -> bool;
}
unsafe extern "C" {
pub fn BNRedo(file: *mut BNFileMetadata) -> bool;
}
unsafe extern "C" {
pub fn BNGetUndoEntries(file: *mut BNFileMetadata, count: *mut usize) -> *mut *mut BNUndoEntry;
}
unsafe extern "C" {
pub fn BNGetRedoEntries(file: *mut BNFileMetadata, count: *mut usize) -> *mut *mut BNUndoEntry;
}
unsafe extern "C" {
pub fn BNGetLastUndoEntry(file: *mut BNFileMetadata) -> *mut BNUndoEntry;
}
unsafe extern "C" {
pub fn BNGetLastRedoEntry(file: *mut BNFileMetadata) -> *mut BNUndoEntry;
}
unsafe extern "C" {
pub fn BNGetLastUndoEntryTitle(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetLastRedoEntryTitle(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNFreeUndoEntries(entries: *mut *mut BNUndoEntry, count: usize);
}
unsafe extern "C" {
pub fn BNClearUndoEntries(file: *mut BNFileMetadata);
}
unsafe extern "C" {
pub fn BNNewUserReference(user: *mut BNUser) -> *mut BNUser;
}
unsafe extern "C" {
pub fn BNFreeUser(user: *mut BNUser);
}
unsafe extern "C" {
pub fn BNGetUsers(file: *mut BNFileMetadata, count: *mut usize) -> *mut *mut BNUser;
}
unsafe extern "C" {
pub fn BNFreeUserList(users: *mut *mut BNUser, count: usize);
}
unsafe extern "C" {
pub fn BNGetUserName(user: *mut BNUser) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetUserEmail(user: *mut BNUser) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetUserId(user: *mut BNUser) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetCurrentView(file: *mut BNFileMetadata) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetCurrentOffset(file: *mut BNFileMetadata) -> u64;
}
unsafe extern "C" {
pub fn BNNavigate(
file: *mut BNFileMetadata,
view: *const ::std::os::raw::c_char,
offset: u64,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetFileViewOfType(
file: *mut BNFileMetadata,
name: *const ::std::os::raw::c_char,
) -> *mut BNBinaryView;
}
unsafe extern "C" {
pub fn BNGetExistingViews(
file: *mut BNFileMetadata,
count: *mut usize,
) -> *mut *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNFileMetadataGetSessionId(file: *mut BNFileMetadata) -> usize;
}
unsafe extern "C" {
pub fn BNIsSnapshotDataAppliedWithoutError(view: *mut BNFileMetadata) -> bool;
}
unsafe extern "C" {
pub fn BNUnregisterViewOfType(
file: *mut BNFileMetadata,
type_: *const ::std::os::raw::c_char,
view: *mut BNBinaryView,
);
}
unsafe extern "C" {
#[doc = " Memory Map"]
pub fn BNGetBaseMemoryMapDescription(view: *mut BNBinaryView) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetMemoryMapDescription(view: *mut BNBinaryView) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNSetLogicalMemoryMapEnabled(view: *mut BNBinaryView, enabled: bool);
}
unsafe extern "C" {
pub fn BNIsMemoryMapActivated(view: *mut BNBinaryView) -> bool;
}
unsafe extern "C" {
pub fn BNAddBinaryMemoryRegion(
view: *mut BNBinaryView,
name: *const ::std::os::raw::c_char,
start: u64,
data: *mut BNBinaryView,
flags: u32,
) -> bool;
}
unsafe extern "C" {
pub fn BNAddDataMemoryRegion(
view: *mut BNBinaryView,
name: *const ::std::os::raw::c_char,
start: u64,
data: *mut BNDataBuffer,
flags: u32,
) -> bool;
}
unsafe extern "C" {
pub fn BNAddUnbackedMemoryRegion(
view: *mut BNBinaryView,
name: *const ::std::os::raw::c_char,
start: u64,
length: u64,
flags: u32,
fill: u8,
) -> bool;
}
unsafe extern "C" {
pub fn BNAddRemoteMemoryRegion(
view: *mut BNBinaryView,
name: *const ::std::os::raw::c_char,
start: u64,
accessor: *mut BNFileAccessor,
flags: u32,
) -> bool;
}
unsafe extern "C" {
pub fn BNRemoveMemoryRegion(
view: *mut BNBinaryView,
name: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetActiveMemoryRegionAt(
view: *mut BNBinaryView,
addr: u64,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetMemoryRegionFlags(
view: *mut BNBinaryView,
name: *const ::std::os::raw::c_char,
) -> u32;
}
unsafe extern "C" {
pub fn BNSetMemoryRegionFlags(
view: *mut BNBinaryView,
name: *const ::std::os::raw::c_char,
flags: u32,
) -> bool;
}
unsafe extern "C" {
pub fn BNIsMemoryRegionEnabled(
view: *mut BNBinaryView,
name: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNSetMemoryRegionEnabled(
view: *mut BNBinaryView,
name: *const ::std::os::raw::c_char,
enable: bool,
) -> bool;
}
unsafe extern "C" {
pub fn BNIsMemoryRegionRebaseable(
view: *mut BNBinaryView,
name: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNSetMemoryRegionRebaseable(
view: *mut BNBinaryView,
name: *const ::std::os::raw::c_char,
rebaseable: bool,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetMemoryRegionFill(
view: *mut BNBinaryView,
name: *const ::std::os::raw::c_char,
) -> u8;
}
unsafe extern "C" {
pub fn BNSetMemoryRegionFill(
view: *mut BNBinaryView,
name: *const ::std::os::raw::c_char,
fill: u8,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetMemoryRegionDisplayName(
view: *mut BNBinaryView,
name: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNSetMemoryRegionDisplayName(
view: *mut BNBinaryView,
name: *const ::std::os::raw::c_char,
displayName: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNIsMemoryRegionLocal(
view: *mut BNBinaryView,
name: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNResetMemoryMap(view: *mut BNBinaryView);
}
unsafe extern "C" {
#[doc = " Binary view access"]
pub fn BNNewViewReference(view: *mut BNBinaryView) -> *mut BNBinaryView;
}
unsafe extern "C" {
pub fn BNFreeBinaryView(view: *mut BNBinaryView);
}
unsafe extern "C" {
pub fn BNGetFileForView(view: *mut BNBinaryView) -> *mut BNFileMetadata;
}
unsafe extern "C" {
pub fn BNGetViewType(view: *mut BNBinaryView) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetParentView(view: *mut BNBinaryView) -> *mut BNBinaryView;
}
unsafe extern "C" {
pub fn BNReadViewData(
view: *mut BNBinaryView,
dest: *mut ::std::os::raw::c_void,
offset: u64,
len: usize,
) -> usize;
}
unsafe extern "C" {
pub fn BNReadViewBuffer(view: *mut BNBinaryView, offset: u64, len: usize) -> *mut BNDataBuffer;
}
unsafe extern "C" {
pub fn BNGetViewDataPointer(view: *mut BNBinaryView) -> *const u8;
}
unsafe extern "C" {
pub fn BNGetViewDataLength(view: *mut BNBinaryView) -> usize;
}
unsafe extern "C" {
pub fn BNWriteViewData(
view: *mut BNBinaryView,
offset: u64,
data: *const ::std::os::raw::c_void,
len: usize,
) -> usize;
}
unsafe extern "C" {
pub fn BNWriteViewBuffer(
view: *mut BNBinaryView,
offset: u64,
data: *mut BNDataBuffer,
) -> usize;
}
unsafe extern "C" {
pub fn BNInsertViewData(
view: *mut BNBinaryView,
offset: u64,
data: *const ::std::os::raw::c_void,
len: usize,
) -> usize;
}
unsafe extern "C" {
pub fn BNInsertViewBuffer(
view: *mut BNBinaryView,
offset: u64,
data: *mut BNDataBuffer,
) -> usize;
}
unsafe extern "C" {
pub fn BNRemoveViewData(view: *mut BNBinaryView, offset: u64, len: u64) -> usize;
}
unsafe extern "C" {
pub fn BNNotifyDataWritten(view: *mut BNBinaryView, offset: u64, len: usize);
}
unsafe extern "C" {
pub fn BNNotifyDataInserted(view: *mut BNBinaryView, offset: u64, len: usize);
}
unsafe extern "C" {
pub fn BNNotifyDataRemoved(view: *mut BNBinaryView, offset: u64, len: u64);
}
unsafe extern "C" {
pub fn BNGetEntropy(
view: *mut BNBinaryView,
offset: u64,
len: usize,
blockSize: usize,
result: *mut f32,
) -> usize;
}
unsafe extern "C" {
pub fn BNGetModification(view: *mut BNBinaryView, offset: u64) -> BNModificationStatus;
}
unsafe extern "C" {
pub fn BNGetModificationArray(
view: *mut BNBinaryView,
offset: u64,
result: *mut BNModificationStatus,
len: usize,
) -> usize;
}
unsafe extern "C" {
pub fn BNIsValidOffset(view: *mut BNBinaryView, offset: u64) -> bool;
}
unsafe extern "C" {
pub fn BNIsOffsetReadable(view: *mut BNBinaryView, offset: u64) -> bool;
}
unsafe extern "C" {
pub fn BNIsOffsetWritable(view: *mut BNBinaryView, offset: u64) -> bool;
}
unsafe extern "C" {
pub fn BNIsOffsetExecutable(view: *mut BNBinaryView, offset: u64) -> bool;
}
unsafe extern "C" {
pub fn BNIsOffsetBackedByFile(view: *mut BNBinaryView, offset: u64) -> bool;
}
unsafe extern "C" {
pub fn BNIsOffsetCodeSemantics(view: *mut BNBinaryView, offset: u64) -> bool;
}
unsafe extern "C" {
pub fn BNIsOffsetExternSemantics(view: *mut BNBinaryView, offset: u64) -> bool;
}
unsafe extern "C" {
pub fn BNIsOffsetWritableSemantics(view: *mut BNBinaryView, offset: u64) -> bool;
}
unsafe extern "C" {
pub fn BNIsOffsetReadOnlySemantics(view: *mut BNBinaryView, offset: u64) -> bool;
}
unsafe extern "C" {
pub fn BNGetNextValidOffset(view: *mut BNBinaryView, offset: u64) -> u64;
}
unsafe extern "C" {
pub fn BNGetImageBase(view: *mut BNBinaryView) -> u64;
}
unsafe extern "C" {
pub fn BNGetOriginalImageBase(view: *mut BNBinaryView) -> u64;
}
unsafe extern "C" {
pub fn BNSetOriginalImageBase(view: *mut BNBinaryView, imageBase: u64);
}
unsafe extern "C" {
pub fn BNGetStartOffset(view: *mut BNBinaryView) -> u64;
}
unsafe extern "C" {
pub fn BNGetEndOffset(view: *mut BNBinaryView) -> u64;
}
unsafe extern "C" {
pub fn BNGetViewLength(view: *mut BNBinaryView) -> u64;
}
unsafe extern "C" {
pub fn BNGetEntryPoint(view: *mut BNBinaryView) -> u64;
}
unsafe extern "C" {
pub fn BNGetDefaultArchitecture(view: *mut BNBinaryView) -> *mut BNArchitecture;
}
unsafe extern "C" {
pub fn BNSetDefaultArchitecture(view: *mut BNBinaryView, arch: *mut BNArchitecture);
}
unsafe extern "C" {
pub fn BNGetDefaultPlatform(view: *mut BNBinaryView) -> *mut BNPlatform;
}
unsafe extern "C" {
pub fn BNSetDefaultPlatform(view: *mut BNBinaryView, platform: *mut BNPlatform);
}
unsafe extern "C" {
pub fn BNGetDefaultEndianness(view: *mut BNBinaryView) -> BNEndianness;
}
unsafe extern "C" {
pub fn BNIsRelocatable(view: *mut BNBinaryView) -> bool;
}
unsafe extern "C" {
pub fn BNGetViewAddressSize(view: *mut BNBinaryView) -> usize;
}
unsafe extern "C" {
pub fn BNIsViewModified(view: *mut BNBinaryView) -> bool;
}
unsafe extern "C" {
pub fn BNIsExecutableView(view: *mut BNBinaryView) -> bool;
}
unsafe extern "C" {
pub fn BNSaveToFile(view: *mut BNBinaryView, file: *mut BNFileAccessor) -> bool;
}
unsafe extern "C" {
pub fn BNSaveToFilename(
view: *mut BNBinaryView,
filename: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNDefineRelocation(
view: *mut BNBinaryView,
arch: *mut BNArchitecture,
info: *mut BNRelocationInfo,
target: u64,
reloc: u64,
);
}
unsafe extern "C" {
pub fn BNDefineSymbolRelocation(
view: *mut BNBinaryView,
arch: *mut BNArchitecture,
info: *mut BNRelocationInfo,
target: *mut BNSymbol,
reloc: u64,
);
}
unsafe extern "C" {
pub fn BNGetRelocationRanges(view: *mut BNBinaryView, count: *mut usize) -> *mut BNRange;
}
unsafe extern "C" {
pub fn BNGetRelocationRangesAtAddress(
view: *mut BNBinaryView,
addr: u64,
count: *mut usize,
) -> *mut BNRange;
}
unsafe extern "C" {
pub fn BNGetRelocationRangesInRange(
view: *mut BNBinaryView,
addr: u64,
size: u64,
count: *mut usize,
) -> *mut BNRange;
}
unsafe extern "C" {
pub fn BNRangeContainsRelocation(view: *mut BNBinaryView, addr: u64, size: usize) -> bool;
}
unsafe extern "C" {
pub fn BNGetRelocationsAt(
view: *mut BNBinaryView,
addr: u64,
count: *mut usize,
) -> *mut *mut BNRelocation;
}
unsafe extern "C" {
pub fn BNFreeRelocationList(relocations: *mut *mut BNRelocation, count: usize);
}
unsafe extern "C" {
pub fn BNFreeRelocationRanges(ranges: *mut BNRange);
}
unsafe extern "C" {
pub fn BNRegisterDataNotification(
view: *mut BNBinaryView,
notify: *mut BNBinaryDataNotification,
);
}
unsafe extern "C" {
pub fn BNUnregisterDataNotification(
view: *mut BNBinaryView,
notify: *mut BNBinaryDataNotification,
);
}
unsafe extern "C" {
pub fn BNRegisterProjectNotification(
project: *mut BNProject,
notify: *mut BNProjectNotification,
);
}
unsafe extern "C" {
pub fn BNUnregisterProjectNotification(
project: *mut BNProject,
notify: *mut BNProjectNotification,
);
}
unsafe extern "C" {
pub fn BNCanAssemble(view: *mut BNBinaryView, arch: *mut BNArchitecture) -> bool;
}
unsafe extern "C" {
pub fn BNIsNeverBranchPatchAvailable(
view: *mut BNBinaryView,
arch: *mut BNArchitecture,
addr: u64,
) -> bool;
}
unsafe extern "C" {
pub fn BNIsAlwaysBranchPatchAvailable(
view: *mut BNBinaryView,
arch: *mut BNArchitecture,
addr: u64,
) -> bool;
}
unsafe extern "C" {
pub fn BNIsInvertBranchPatchAvailable(
view: *mut BNBinaryView,
arch: *mut BNArchitecture,
addr: u64,
) -> bool;
}
unsafe extern "C" {
pub fn BNIsSkipAndReturnZeroPatchAvailable(
view: *mut BNBinaryView,
arch: *mut BNArchitecture,
addr: u64,
) -> bool;
}
unsafe extern "C" {
pub fn BNIsSkipAndReturnValuePatchAvailable(
view: *mut BNBinaryView,
arch: *mut BNArchitecture,
addr: u64,
) -> bool;
}
unsafe extern "C" {
pub fn BNConvertToNop(view: *mut BNBinaryView, arch: *mut BNArchitecture, addr: u64) -> bool;
}
unsafe extern "C" {
pub fn BNAlwaysBranch(view: *mut BNBinaryView, arch: *mut BNArchitecture, addr: u64) -> bool;
}
unsafe extern "C" {
pub fn BNInvertBranch(view: *mut BNBinaryView, arch: *mut BNArchitecture, addr: u64) -> bool;
}
unsafe extern "C" {
pub fn BNSkipAndReturnValue(
view: *mut BNBinaryView,
arch: *mut BNArchitecture,
addr: u64,
value: u64,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetInstructionLength(
view: *mut BNBinaryView,
arch: *mut BNArchitecture,
addr: u64,
) -> usize;
}
unsafe extern "C" {
pub fn BNFindNextData(
view: *mut BNBinaryView,
start: u64,
data: *mut BNDataBuffer,
result: *mut u64,
flags: BNFindFlag,
) -> bool;
}
unsafe extern "C" {
pub fn BNFindNextText(
view: *mut BNBinaryView,
start: u64,
data: *const ::std::os::raw::c_char,
result: *mut u64,
settings: *mut BNDisassemblySettings,
flags: BNFindFlag,
viewType: BNFunctionViewType,
) -> bool;
}
unsafe extern "C" {
pub fn BNFindNextConstant(
view: *mut BNBinaryView,
start: u64,
constant: u64,
result: *mut u64,
settings: *mut BNDisassemblySettings,
viewType: BNFunctionViewType,
) -> bool;
}
unsafe extern "C" {
pub fn BNFindNextDataWithProgress(
view: *mut BNBinaryView,
start: u64,
end: u64,
data: *mut BNDataBuffer,
result: *mut u64,
flags: BNFindFlag,
ctxt: *mut ::std::os::raw::c_void,
progress: BNProgressFunction,
) -> bool;
}
unsafe extern "C" {
pub fn BNFindNextTextWithProgress(
view: *mut BNBinaryView,
start: u64,
end: u64,
data: *const ::std::os::raw::c_char,
result: *mut u64,
settings: *mut BNDisassemblySettings,
flags: BNFindFlag,
viewType: BNFunctionViewType,
ctxt: *mut ::std::os::raw::c_void,
progress: BNProgressFunction,
) -> bool;
}
unsafe extern "C" {
pub fn BNFindNextConstantWithProgress(
view: *mut BNBinaryView,
start: u64,
end: u64,
constant: u64,
result: *mut u64,
settings: *mut BNDisassemblySettings,
viewType: BNFunctionViewType,
ctxt: *mut ::std::os::raw::c_void,
progress: BNProgressFunction,
) -> bool;
}
unsafe extern "C" {
pub fn BNFindAllDataWithProgress(
view: *mut BNBinaryView,
start: u64,
end: u64,
data: *mut BNDataBuffer,
flags: BNFindFlag,
ctxt: *mut ::std::os::raw::c_void,
progress: BNProgressFunction,
matchCtxt: *mut ::std::os::raw::c_void,
matchCallback: ::std::option::Option<
unsafe extern "C" fn(
matchCtxt: *mut ::std::os::raw::c_void,
addr: u64,
match_: *mut BNDataBuffer,
) -> bool,
>,
) -> bool;
}
unsafe extern "C" {
pub fn BNFindAllTextWithProgress(
view: *mut BNBinaryView,
start: u64,
end: u64,
data: *const ::std::os::raw::c_char,
settings: *mut BNDisassemblySettings,
flags: BNFindFlag,
viewType: BNFunctionViewType,
ctxt: *mut ::std::os::raw::c_void,
progress: BNProgressFunction,
matchCtxt: *mut ::std::os::raw::c_void,
matchCallback: ::std::option::Option<
unsafe extern "C" fn(
matchCtxt: *mut ::std::os::raw::c_void,
addr: u64,
match_: *const ::std::os::raw::c_char,
line: *mut BNLinearDisassemblyLine,
) -> bool,
>,
) -> bool;
}
unsafe extern "C" {
pub fn BNFindAllConstantWithProgress(
view: *mut BNBinaryView,
start: u64,
end: u64,
constant: u64,
settings: *mut BNDisassemblySettings,
viewType: BNFunctionViewType,
ctxt: *mut ::std::os::raw::c_void,
progress: BNProgressFunction,
matchCtxt: *mut ::std::os::raw::c_void,
matchCallback: ::std::option::Option<
unsafe extern "C" fn(
matchCtxt: *mut ::std::os::raw::c_void,
addr: u64,
line: *mut BNLinearDisassemblyLine,
) -> bool,
>,
) -> bool;
}
unsafe extern "C" {
pub fn BNSearch(
view: *mut BNBinaryView,
query: *const ::std::os::raw::c_char,
context: *mut ::std::os::raw::c_void,
progressCallback: BNProgressFunction,
matchContext: *mut ::std::os::raw::c_void,
callback: ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut ::std::os::raw::c_void,
arg2: u64,
arg3: *mut BNDataBuffer,
) -> bool,
>,
) -> bool;
}
unsafe extern "C" {
pub fn BNDetectSearchMode(query: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNPerformSearch(
query: *const ::std::os::raw::c_char,
buffer: *const u8,
size: usize,
callback: BNProgressFunction,
context: *mut ::std::os::raw::c_void,
) -> bool;
}
unsafe extern "C" {
pub fn BNBeginBulkAddSegments(view: *mut BNBinaryView);
}
unsafe extern "C" {
pub fn BNEndBulkAddSegments(view: *mut BNBinaryView);
}
unsafe extern "C" {
pub fn BNCancelBulkAddSegments(view: *mut BNBinaryView);
}
unsafe extern "C" {
pub fn BNAddAutoSegment(
view: *mut BNBinaryView,
start: u64,
length: u64,
dataOffset: u64,
dataLength: u64,
flags: u32,
);
}
unsafe extern "C" {
pub fn BNAddAutoSegments(
view: *mut BNBinaryView,
segmentInfo: *const BNSegmentInfo,
count: usize,
);
}
unsafe extern "C" {
pub fn BNRemoveAutoSegment(view: *mut BNBinaryView, start: u64, length: u64);
}
unsafe extern "C" {
pub fn BNAddUserSegment(
view: *mut BNBinaryView,
start: u64,
length: u64,
dataOffset: u64,
dataLength: u64,
flags: u32,
);
}
unsafe extern "C" {
pub fn BNAddUserSegments(
view: *mut BNBinaryView,
segmentInfo: *const BNSegmentInfo,
count: usize,
);
}
unsafe extern "C" {
pub fn BNRemoveUserSegment(view: *mut BNBinaryView, start: u64, length: u64);
}
unsafe extern "C" {
pub fn BNGetSegments(view: *mut BNBinaryView, count: *mut usize) -> *mut *mut BNSegment;
}
unsafe extern "C" {
pub fn BNFreeSegmentList(segments: *mut *mut BNSegment, count: usize);
}
unsafe extern "C" {
pub fn BNGetSegmentAt(view: *mut BNBinaryView, addr: u64) -> *mut BNSegment;
}
unsafe extern "C" {
pub fn BNGetAddressForDataOffset(view: *mut BNBinaryView, offset: u64, addr: *mut u64) -> bool;
}
unsafe extern "C" {
pub fn BNGetComponentByGuid(
view: *mut BNBinaryView,
guid: *const ::std::os::raw::c_char,
) -> *mut BNComponent;
}
unsafe extern "C" {
pub fn BNGetRootComponent(view: *mut BNBinaryView) -> *mut BNComponent;
}
unsafe extern "C" {
pub fn BNCreateComponent(view: *mut BNBinaryView) -> *mut BNComponent;
}
unsafe extern "C" {
pub fn BNCreateComponentWithParent(
view: *mut BNBinaryView,
parentGUID: *const ::std::os::raw::c_char,
) -> *mut BNComponent;
}
unsafe extern "C" {
pub fn BNCreateComponentWithName(
view: *mut BNBinaryView,
name: *const ::std::os::raw::c_char,
) -> *mut BNComponent;
}
unsafe extern "C" {
pub fn BNCreateComponentWithParentAndName(
view: *mut BNBinaryView,
parentGUID: *const ::std::os::raw::c_char,
name: *const ::std::os::raw::c_char,
) -> *mut BNComponent;
}
unsafe extern "C" {
pub fn BNGetComponentByPath(
view: *mut BNBinaryView,
path: *const ::std::os::raw::c_char,
) -> *mut BNComponent;
}
unsafe extern "C" {
pub fn BNRemoveComponent(view: *mut BNBinaryView, component: *mut BNComponent) -> bool;
}
unsafe extern "C" {
pub fn BNRemoveComponentByGuid(
view: *mut BNBinaryView,
guid: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNAddAutoSection(
view: *mut BNBinaryView,
name: *const ::std::os::raw::c_char,
start: u64,
length: u64,
semantics: BNSectionSemantics,
type_: *const ::std::os::raw::c_char,
align: u64,
entrySize: u64,
linkedSection: *const ::std::os::raw::c_char,
infoSection: *const ::std::os::raw::c_char,
infoData: u64,
);
}
unsafe extern "C" {
pub fn BNAddAutoSections(
view: *mut BNBinaryView,
sectionInfo: *const BNSectionInfo,
count: usize,
);
}
unsafe extern "C" {
pub fn BNRemoveAutoSection(view: *mut BNBinaryView, name: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn BNAddUserSection(
view: *mut BNBinaryView,
name: *const ::std::os::raw::c_char,
start: u64,
length: u64,
semantics: BNSectionSemantics,
type_: *const ::std::os::raw::c_char,
align: u64,
entrySize: u64,
linkedSection: *const ::std::os::raw::c_char,
infoSection: *const ::std::os::raw::c_char,
infoData: u64,
);
}
unsafe extern "C" {
pub fn BNAddUserSections(
view: *mut BNBinaryView,
sectionInfo: *const BNSectionInfo,
count: usize,
);
}
unsafe extern "C" {
pub fn BNRemoveUserSection(view: *mut BNBinaryView, name: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn BNGetSections(view: *mut BNBinaryView, count: *mut usize) -> *mut *mut BNSection;
}
unsafe extern "C" {
pub fn BNGetSectionsAt(
view: *mut BNBinaryView,
addr: u64,
count: *mut usize,
) -> *mut *mut BNSection;
}
unsafe extern "C" {
pub fn BNFreeSectionList(sections: *mut *mut BNSection, count: usize);
}
unsafe extern "C" {
pub fn BNGetSectionByName(
view: *mut BNBinaryView,
name: *const ::std::os::raw::c_char,
) -> *mut BNSection;
}
unsafe extern "C" {
pub fn BNGetUniqueSectionNames(
view: *mut BNBinaryView,
names: *mut *const ::std::os::raw::c_char,
count: usize,
) -> *mut *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetAllocatedRanges(view: *mut BNBinaryView, count: *mut usize) -> *mut BNAddressRange;
}
unsafe extern "C" {
pub fn BNGetMappedAddressRanges(
view: *mut BNBinaryView,
count: *mut usize,
) -> *mut BNAddressRange;
}
unsafe extern "C" {
pub fn BNGetBackedAddressRanges(
view: *mut BNBinaryView,
count: *mut usize,
) -> *mut BNAddressRange;
}
unsafe extern "C" {
pub fn BNFreeAddressRanges(ranges: *mut BNAddressRange);
}
unsafe extern "C" {
pub fn BNGetNameSpaces(view: *mut BNBinaryView, count: *mut usize) -> *mut BNNameSpace;
}
unsafe extern "C" {
pub fn BNFreeNameSpaceList(nameSpace: *mut BNNameSpace, count: usize);
}
unsafe extern "C" {
pub fn BNGetExternalNameSpace() -> BNNameSpace;
}
unsafe extern "C" {
pub fn BNGetInternalNameSpace() -> BNNameSpace;
}
unsafe extern "C" {
pub fn BNFreeNameSpace(name: *mut BNNameSpace);
}
unsafe extern "C" {
pub fn BNGetGlobalPointerValue(view: *mut BNBinaryView) -> BNRegisterValueWithConfidence;
}
unsafe extern "C" {
pub fn BNUserGlobalPointerValueSet(view: *mut BNBinaryView) -> bool;
}
unsafe extern "C" {
pub fn BNClearUserGlobalPointerValue(view: *mut BNBinaryView);
}
unsafe extern "C" {
pub fn BNSetUserGlobalPointerValue(
view: *mut BNBinaryView,
value: BNRegisterValueWithConfidence,
);
}
unsafe extern "C" {
pub fn BNStringifyUnicodeData(
data: *mut BNBinaryView,
arch: *mut BNArchitecture,
buffer: *const BNDataBuffer,
nullTerminates: bool,
allowShortStrings: bool,
string: *mut *mut ::std::os::raw::c_char,
type_: *mut BNStringType,
) -> bool;
}
unsafe extern "C" {
#[doc = " Raw binary data view"]
pub fn BNCreateBinaryDataView(file: *mut BNFileMetadata) -> *mut BNBinaryView;
}
unsafe extern "C" {
pub fn BNCreateBinaryDataViewFromBuffer(
file: *mut BNFileMetadata,
buf: *mut BNDataBuffer,
) -> *mut BNBinaryView;
}
unsafe extern "C" {
pub fn BNCreateBinaryDataViewFromData(
file: *mut BNFileMetadata,
data: *const ::std::os::raw::c_void,
len: usize,
) -> *mut BNBinaryView;
}
unsafe extern "C" {
pub fn BNCreateBinaryDataViewFromFilename(
file: *mut BNFileMetadata,
filename: *const ::std::os::raw::c_char,
) -> *mut BNBinaryView;
}
unsafe extern "C" {
pub fn BNCreateBinaryDataViewFromFile(
file: *mut BNFileMetadata,
accessor: *mut BNFileAccessor,
) -> *mut BNBinaryView;
}
unsafe extern "C" {
#[doc = " Creation of new types of binary views"]
pub fn BNCreateCustomBinaryView(
name: *const ::std::os::raw::c_char,
file: *mut BNFileMetadata,
parent: *mut BNBinaryView,
view: *mut BNCustomBinaryView,
) -> *mut BNBinaryView;
}
unsafe extern "C" {
pub fn BNGetBinaryViewTypeByName(name: *const ::std::os::raw::c_char) -> *mut BNBinaryViewType;
}
unsafe extern "C" {
pub fn BNGetBinaryViewTypes(count: *mut usize) -> *mut *mut BNBinaryViewType;
}
unsafe extern "C" {
pub fn BNGetBinaryViewTypesForData(
data: *mut BNBinaryView,
count: *mut usize,
) -> *mut *mut BNBinaryViewType;
}
unsafe extern "C" {
pub fn BNFreeBinaryViewTypeList(types: *mut *mut BNBinaryViewType);
}
unsafe extern "C" {
pub fn BNGetBinaryViewTypeName(type_: *mut BNBinaryViewType) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetBinaryViewTypeLongName(type_: *mut BNBinaryViewType)
-> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNIsBinaryViewTypeDeprecated(type_: *mut BNBinaryViewType) -> bool;
}
unsafe extern "C" {
pub fn BNCreateBinaryViewOfType(
type_: *mut BNBinaryViewType,
data: *mut BNBinaryView,
) -> *mut BNBinaryView;
}
unsafe extern "C" {
pub fn BNParseBinaryViewOfType(
type_: *mut BNBinaryViewType,
data: *mut BNBinaryView,
) -> *mut BNBinaryView;
}
unsafe extern "C" {
pub fn BNIsBinaryViewTypeValidForData(
type_: *mut BNBinaryViewType,
data: *mut BNBinaryView,
) -> bool;
}
unsafe extern "C" {
pub fn BNIsBinaryViewTypeForceLoadable(type_: *mut BNBinaryViewType) -> bool;
}
unsafe extern "C" {
pub fn BNGetBinaryViewDefaultLoadSettingsForData(
type_: *mut BNBinaryViewType,
data: *mut BNBinaryView,
) -> *mut BNSettings;
}
unsafe extern "C" {
pub fn BNGetBinaryViewLoadSettingsForData(
type_: *mut BNBinaryViewType,
data: *mut BNBinaryView,
) -> *mut BNSettings;
}
unsafe extern "C" {
pub fn BNRegisterBinaryViewType(
name: *const ::std::os::raw::c_char,
longName: *const ::std::os::raw::c_char,
type_: *mut BNCustomBinaryViewType,
) -> *mut BNBinaryViewType;
}
unsafe extern "C" {
pub fn BNRegisterArchitectureForViewType(
type_: *mut BNBinaryViewType,
id: u32,
endian: BNEndianness,
arch: *mut BNArchitecture,
);
}
unsafe extern "C" {
pub fn BNGetArchitectureForViewType(
type_: *mut BNBinaryViewType,
id: u32,
endian: BNEndianness,
) -> *mut BNArchitecture;
}
unsafe extern "C" {
pub fn BNRegisterPlatformForViewType(
type_: *mut BNBinaryViewType,
id: u32,
arch: *mut BNArchitecture,
platform: *mut BNPlatform,
);
}
unsafe extern "C" {
pub fn BNGetPlatformForViewType(
type_: *mut BNBinaryViewType,
id: u32,
arch: *mut BNArchitecture,
) -> *mut BNPlatform;
}
unsafe extern "C" {
pub fn BNRegisterDefaultPlatformForViewType(
type_: *mut BNBinaryViewType,
arch: *mut BNArchitecture,
platform: *mut BNPlatform,
);
}
unsafe extern "C" {
#[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."]
pub fn BNRegisterPlatformRecognizerForViewType(
type_: *mut BNBinaryViewType,
id: u64,
endian: BNEndianness,
callback: ::std::option::Option<
unsafe extern "C" fn(
ctx: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
metadata: *mut BNMetadata,
) -> *mut BNPlatform,
>,
ctx: *mut ::std::os::raw::c_void,
);
}
unsafe extern "C" {
#[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."]
pub fn BNRecognizePlatformForViewType(
type_: *mut BNBinaryViewType,
id: u64,
endian: BNEndianness,
view: *mut BNBinaryView,
metadata: *mut BNMetadata,
) -> *mut BNPlatform;
}
unsafe extern "C" {
pub fn BNRegisterBinaryViewEvent(
type_: BNBinaryViewEventType,
callback: ::std::option::Option<
unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
>,
ctx: *mut ::std::os::raw::c_void,
);
}
unsafe extern "C" {
#[doc = " Stream reader object"]
pub fn BNCreateBinaryReader(view: *mut BNBinaryView) -> *mut BNBinaryReader;
}
unsafe extern "C" {
pub fn BNFreeBinaryReader(stream: *mut BNBinaryReader);
}
unsafe extern "C" {
pub fn BNGetBinaryReaderEndianness(stream: *mut BNBinaryReader) -> BNEndianness;
}
unsafe extern "C" {
pub fn BNSetBinaryReaderEndianness(stream: *mut BNBinaryReader, endian: BNEndianness);
}
unsafe extern "C" {
pub fn BNReadData(
stream: *mut BNBinaryReader,
dest: *mut ::std::os::raw::c_void,
len: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNRead8(stream: *mut BNBinaryReader, result: *mut u8) -> bool;
}
unsafe extern "C" {
pub fn BNRead16(stream: *mut BNBinaryReader, result: *mut u16) -> bool;
}
unsafe extern "C" {
pub fn BNRead32(stream: *mut BNBinaryReader, result: *mut u32) -> bool;
}
unsafe extern "C" {
pub fn BNRead64(stream: *mut BNBinaryReader, result: *mut u64) -> bool;
}
unsafe extern "C" {
pub fn BNReadLE16(stream: *mut BNBinaryReader, result: *mut u16) -> bool;
}
unsafe extern "C" {
pub fn BNReadLE32(stream: *mut BNBinaryReader, result: *mut u32) -> bool;
}
unsafe extern "C" {
pub fn BNReadLE64(stream: *mut BNBinaryReader, result: *mut u64) -> bool;
}
unsafe extern "C" {
pub fn BNReadBE16(stream: *mut BNBinaryReader, result: *mut u16) -> bool;
}
unsafe extern "C" {
pub fn BNReadBE32(stream: *mut BNBinaryReader, result: *mut u32) -> bool;
}
unsafe extern "C" {
pub fn BNReadBE64(stream: *mut BNBinaryReader, result: *mut u64) -> bool;
}
unsafe extern "C" {
pub fn BNReadPointer(
view: *mut BNBinaryView,
stream: *mut BNBinaryReader,
result: *mut u64,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetReaderPosition(stream: *mut BNBinaryReader) -> u64;
}
unsafe extern "C" {
pub fn BNSeekBinaryReader(stream: *mut BNBinaryReader, offset: u64);
}
unsafe extern "C" {
pub fn BNSeekBinaryReaderRelative(stream: *mut BNBinaryReader, offset: i64);
}
unsafe extern "C" {
pub fn BNGetBinaryReaderVirtualBase(stream: *mut BNBinaryReader) -> u64;
}
unsafe extern "C" {
pub fn BNSetBinaryReaderVirtualBase(stream: *mut BNBinaryReader, base: u64);
}
unsafe extern "C" {
pub fn BNIsEndOfFile(stream: *mut BNBinaryReader) -> bool;
}
unsafe extern "C" {
#[doc = " Stream writer object"]
pub fn BNCreateBinaryWriter(view: *mut BNBinaryView) -> *mut BNBinaryWriter;
}
unsafe extern "C" {
pub fn BNFreeBinaryWriter(stream: *mut BNBinaryWriter);
}
unsafe extern "C" {
pub fn BNGetBinaryWriterEndianness(stream: *mut BNBinaryWriter) -> BNEndianness;
}
unsafe extern "C" {
pub fn BNSetBinaryWriterEndianness(stream: *mut BNBinaryWriter, endian: BNEndianness);
}
unsafe extern "C" {
pub fn BNWriteData(
stream: *mut BNBinaryWriter,
src: *const ::std::os::raw::c_void,
len: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNWrite8(stream: *mut BNBinaryWriter, val: u8) -> bool;
}
unsafe extern "C" {
pub fn BNWrite16(stream: *mut BNBinaryWriter, val: u16) -> bool;
}
unsafe extern "C" {
pub fn BNWrite32(stream: *mut BNBinaryWriter, val: u32) -> bool;
}
unsafe extern "C" {
pub fn BNWrite64(stream: *mut BNBinaryWriter, val: u64) -> bool;
}
unsafe extern "C" {
pub fn BNWriteLE16(stream: *mut BNBinaryWriter, val: u16) -> bool;
}
unsafe extern "C" {
pub fn BNWriteLE32(stream: *mut BNBinaryWriter, val: u32) -> bool;
}
unsafe extern "C" {
pub fn BNWriteLE64(stream: *mut BNBinaryWriter, val: u64) -> bool;
}
unsafe extern "C" {
pub fn BNWriteBE16(stream: *mut BNBinaryWriter, val: u16) -> bool;
}
unsafe extern "C" {
pub fn BNWriteBE32(stream: *mut BNBinaryWriter, val: u32) -> bool;
}
unsafe extern "C" {
pub fn BNWriteBE64(stream: *mut BNBinaryWriter, val: u64) -> bool;
}
unsafe extern "C" {
pub fn BNGetWriterPosition(stream: *mut BNBinaryWriter) -> u64;
}
unsafe extern "C" {
pub fn BNSeekBinaryWriter(stream: *mut BNBinaryWriter, offset: u64);
}
unsafe extern "C" {
pub fn BNSeekBinaryWriterRelative(stream: *mut BNBinaryWriter, offset: i64);
}
unsafe extern "C" {
#[doc = " Transforms"]
pub fn BNGetTransformByName(name: *const ::std::os::raw::c_char) -> *mut BNTransform;
}
unsafe extern "C" {
pub fn BNGetTransformTypeList(count: *mut usize) -> *mut *mut BNTransform;
}
unsafe extern "C" {
pub fn BNFreeTransformTypeList(xforms: *mut *mut BNTransform);
}
unsafe extern "C" {
pub fn BNRegisterTransformType(
type_: BNTransformType,
name: *const ::std::os::raw::c_char,
longName: *const ::std::os::raw::c_char,
group: *const ::std::os::raw::c_char,
xform: *mut BNCustomTransform,
) -> *mut BNTransform;
}
unsafe extern "C" {
pub fn BNRegisterTransformTypeWithCapabilities(
type_: BNTransformType,
capabilities: u32,
name: *const ::std::os::raw::c_char,
longName: *const ::std::os::raw::c_char,
group: *const ::std::os::raw::c_char,
xform: *mut BNCustomTransform,
) -> *mut BNTransform;
}
unsafe extern "C" {
pub fn BNGetTransformType(xform: *mut BNTransform) -> BNTransformType;
}
unsafe extern "C" {
pub fn BNGetTransformCapabilities(xform: *mut BNTransform) -> u32;
}
unsafe extern "C" {
pub fn BNTransformSupportsDetection(xform: *mut BNTransform) -> bool;
}
unsafe extern "C" {
pub fn BNTransformSupportsContext(xform: *mut BNTransform) -> bool;
}
unsafe extern "C" {
pub fn BNGetTransformName(xform: *mut BNTransform) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetTransformLongName(xform: *mut BNTransform) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetTransformGroup(xform: *mut BNTransform) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetTransformParameterList(
xform: *mut BNTransform,
count: *mut usize,
) -> *mut BNTransformParameterInfo;
}
unsafe extern "C" {
pub fn BNFreeTransformParameterList(params: *mut BNTransformParameterInfo, count: usize);
}
unsafe extern "C" {
pub fn BNDecode(
xform: *mut BNTransform,
input: *mut BNDataBuffer,
output: *mut BNDataBuffer,
params: *mut BNTransformParameter,
paramCount: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNEncode(
xform: *mut BNTransform,
input: *mut BNDataBuffer,
output: *mut BNDataBuffer,
params: *mut BNTransformParameter,
paramCount: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNDecodeWithContext(
xform: *mut BNTransform,
context: *mut BNTransformContext,
params: *mut BNTransformParameter,
paramCount: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNCanDecode(xform: *mut BNTransform, input: *mut BNBinaryView) -> bool;
}
unsafe extern "C" {
#[doc = " Transform Context"]
pub fn BNNewTransformContextReference(
context: *mut BNTransformContext,
) -> *mut BNTransformContext;
}
unsafe extern "C" {
pub fn BNFreeTransformContext(context: *mut BNTransformContext);
}
unsafe extern "C" {
pub fn BNTransformContextGetInput(context: *mut BNTransformContext) -> *mut BNBinaryView;
}
unsafe extern "C" {
pub fn BNTransformContextGetFileName(
context: *mut BNTransformContext,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNTransformContextGetAvailableTransforms(
context: *mut BNTransformContext,
count: *mut usize,
) -> *mut *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNTransformContextGetTransformName(
context: *mut BNTransformContext,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNTransformContextSetTransformName(
context: *mut BNTransformContext,
transformName: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNTransformContextSetTransformParameters(
context: *mut BNTransformContext,
params: *mut BNTransformParameter,
paramCount: usize,
);
}
unsafe extern "C" {
pub fn BNTransformContextSetTransformParameter(
context: *mut BNTransformContext,
name: *const ::std::os::raw::c_char,
data: *mut BNDataBuffer,
);
}
unsafe extern "C" {
pub fn BNTransformContextHasTransformParameter(
context: *mut BNTransformContext,
name: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNTransformContextClearTransformParameter(
context: *mut BNTransformContext,
name: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNTransformContextGetExtractionMessage(
context: *mut BNTransformContext,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNTransformContextGetExtractionResult(
context: *mut BNTransformContext,
) -> BNTransformResult;
}
unsafe extern "C" {
pub fn BNTransformContextGetTransformResult(
context: *mut BNTransformContext,
) -> BNTransformResult;
}
unsafe extern "C" {
pub fn BNTransformContextSetTransformResult(
context: *mut BNTransformContext,
result: BNTransformResult,
);
}
unsafe extern "C" {
pub fn BNTransformContextGetMetadata(context: *mut BNTransformContext) -> *mut BNMetadata;
}
unsafe extern "C" {
pub fn BNTransformContextGetParent(context: *mut BNTransformContext)
-> *mut BNTransformContext;
}
unsafe extern "C" {
pub fn BNTransformContextGetChildCount(context: *mut BNTransformContext) -> usize;
}
unsafe extern "C" {
pub fn BNTransformContextGetChildren(
context: *mut BNTransformContext,
count: *mut usize,
) -> *mut *mut BNTransformContext;
}
unsafe extern "C" {
pub fn BNFreeTransformContextList(contexts: *mut *mut BNTransformContext, count: usize);
}
unsafe extern "C" {
pub fn BNTransformContextGetChild(
context: *mut BNTransformContext,
filename: *const ::std::os::raw::c_char,
) -> *mut BNTransformContext;
}
unsafe extern "C" {
pub fn BNTransformContextSetChild(
context: *mut BNTransformContext,
data: *mut BNDataBuffer,
filename: *const ::std::os::raw::c_char,
result: BNTransformResult,
message: *const ::std::os::raw::c_char,
) -> *mut BNTransformContext;
}
unsafe extern "C" {
pub fn BNTransformContextIsLeaf(context: *mut BNTransformContext) -> bool;
}
unsafe extern "C" {
pub fn BNTransformContextIsRoot(context: *mut BNTransformContext) -> bool;
}
unsafe extern "C" {
pub fn BNTransformContextGetAvailableFiles(
context: *mut BNTransformContext,
count: *mut usize,
) -> *mut *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNTransformContextSetAvailableFiles(
context: *mut BNTransformContext,
files: *mut *const ::std::os::raw::c_char,
count: usize,
);
}
unsafe extern "C" {
pub fn BNTransformContextHasAvailableFiles(context: *mut BNTransformContext) -> bool;
}
unsafe extern "C" {
pub fn BNTransformContextGetRequestedFiles(
context: *mut BNTransformContext,
count: *mut usize,
) -> *mut *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNTransformContextSetRequestedFiles(
context: *mut BNTransformContext,
files: *mut *const ::std::os::raw::c_char,
count: usize,
);
}
unsafe extern "C" {
pub fn BNTransformContextHasRequestedFiles(context: *mut BNTransformContext) -> bool;
}
unsafe extern "C" {
pub fn BNTransformContextIsDatabase(context: *mut BNTransformContext) -> bool;
}
unsafe extern "C" {
#[doc = " Transform Session"]
pub fn BNCreateTransformSession(
filename: *const ::std::os::raw::c_char,
) -> *mut BNTransformSession;
}
unsafe extern "C" {
pub fn BNCreateTransformSessionWithMode(
filename: *const ::std::os::raw::c_char,
mode: BNTransformSessionMode,
) -> *mut BNTransformSession;
}
unsafe extern "C" {
pub fn BNCreateTransformSessionFromBinaryView(
initialView: *mut BNBinaryView,
) -> *mut BNTransformSession;
}
unsafe extern "C" {
pub fn BNCreateTransformSessionFromBinaryViewWithMode(
initialView: *mut BNBinaryView,
mode: BNTransformSessionMode,
) -> *mut BNTransformSession;
}
unsafe extern "C" {
pub fn BNNewTransformSessionReference(
session: *mut BNTransformSession,
) -> *mut BNTransformSession;
}
unsafe extern "C" {
pub fn BNFreeTransformSession(session: *mut BNTransformSession);
}
unsafe extern "C" {
pub fn BNTransformSessionGetCurrentView(session: *mut BNTransformSession) -> *mut BNBinaryView;
}
unsafe extern "C" {
pub fn BNTransformSessionGetRootContext(
session: *mut BNTransformSession,
) -> *mut BNTransformContext;
}
unsafe extern "C" {
pub fn BNTransformSessionGetCurrentContext(
session: *mut BNTransformSession,
) -> *mut BNTransformContext;
}
unsafe extern "C" {
pub fn BNTransformSessionProcessFrom(
session: *mut BNTransformSession,
context: *mut BNTransformContext,
) -> bool;
}
unsafe extern "C" {
pub fn BNTransformSessionProcess(session: *mut BNTransformSession) -> bool;
}
unsafe extern "C" {
pub fn BNTransformSessionHasAnyStages(session: *mut BNTransformSession) -> bool;
}
unsafe extern "C" {
pub fn BNTransformSessionHasSinglePath(session: *mut BNTransformSession) -> bool;
}
unsafe extern "C" {
pub fn BNTransformSessionGetSelectedContexts(
session: *mut BNTransformSession,
count: *mut usize,
) -> *mut *mut BNTransformContext;
}
unsafe extern "C" {
pub fn BNTransformSessionSetSelectedContexts(
session: *mut BNTransformSession,
contexts: *mut *mut BNTransformContext,
count: usize,
);
}
unsafe extern "C" {
#[doc = " Architectures"]
pub fn BNGetArchitectureByName(name: *const ::std::os::raw::c_char) -> *mut BNArchitecture;
}
unsafe extern "C" {
pub fn BNGetArchitectureList(count: *mut usize) -> *mut *mut BNArchitecture;
}
unsafe extern "C" {
pub fn BNFreeArchitectureList(archs: *mut *mut BNArchitecture);
}
unsafe extern "C" {
pub fn BNRegisterArchitecture(
name: *const ::std::os::raw::c_char,
arch: *mut BNCustomArchitecture,
) -> *mut BNArchitecture;
}
unsafe extern "C" {
pub fn BNRegisterArchitectureExtension(
name: *const ::std::os::raw::c_char,
base: *mut BNArchitecture,
arch: *mut BNCustomArchitecture,
) -> *mut BNArchitecture;
}
unsafe extern "C" {
pub fn BNAddArchitectureRedirection(
arch: *mut BNArchitecture,
from: *mut BNArchitecture,
to: *mut BNArchitecture,
);
}
unsafe extern "C" {
pub fn BNRegisterArchitectureHook(
base: *mut BNArchitecture,
arch: *mut BNCustomArchitecture,
) -> *mut BNArchitecture;
}
unsafe extern "C" {
pub fn BNFinalizeArchitectureHook(base: *mut BNArchitecture);
}
unsafe extern "C" {
pub fn BNGetNativeTypeParserArchitecture() -> *mut BNArchitecture;
}
unsafe extern "C" {
pub fn BNGetArchitectureName(arch: *mut BNArchitecture) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetArchitectureEndianness(arch: *mut BNArchitecture) -> BNEndianness;
}
unsafe extern "C" {
pub fn BNGetArchitectureAddressSize(arch: *mut BNArchitecture) -> usize;
}
unsafe extern "C" {
pub fn BNGetArchitectureDefaultIntegerSize(arch: *mut BNArchitecture) -> usize;
}
unsafe extern "C" {
pub fn BNGetArchitectureInstructionAlignment(arch: *mut BNArchitecture) -> usize;
}
unsafe extern "C" {
pub fn BNGetArchitectureMaxInstructionLength(arch: *mut BNArchitecture) -> usize;
}
unsafe extern "C" {
pub fn BNGetArchitectureOpcodeDisplayLength(arch: *mut BNArchitecture) -> usize;
}
unsafe extern "C" {
pub fn BNGetAssociatedArchitectureByAddress(
arch: *mut BNArchitecture,
addr: *mut u64,
) -> *mut BNArchitecture;
}
unsafe extern "C" {
pub fn BNGetInstructionInfo(
arch: *mut BNArchitecture,
data: *const u8,
addr: u64,
maxLen: usize,
result: *mut BNInstructionInfo,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetInstructionText(
arch: *mut BNArchitecture,
data: *const u8,
addr: u64,
len: *mut usize,
result: *mut *mut BNInstructionTextToken,
count: *mut usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetInstructionLowLevelIL(
arch: *mut BNArchitecture,
data: *const u8,
addr: u64,
len: *mut usize,
il: *mut BNLowLevelILFunction,
) -> bool;
}
unsafe extern "C" {
pub fn BNFreeInstructionText(tokens: *mut BNInstructionTextToken, count: usize);
}
unsafe extern "C" {
pub fn BNArchitectureSetDefaultAnalyzeBasicBlocksCallback(
callback: *mut ::std::os::raw::c_void,
) -> bool;
}
unsafe extern "C" {
pub fn BNArchitectureDefaultAnalyzeBasicBlocks(
function: *mut BNFunction,
context: *mut BNBasicBlockAnalysisContext,
);
}
unsafe extern "C" {
pub fn BNArchitectureAnalyzeBasicBlocks(
arch: *mut BNArchitecture,
function: *mut BNFunction,
context: *mut BNBasicBlockAnalysisContext,
);
}
unsafe extern "C" {
pub fn BNFreeInstructionTextLines(lines: *mut BNInstructionTextLine, count: usize);
}
unsafe extern "C" {
pub fn BNGetArchitectureRegisterName(
arch: *mut BNArchitecture,
reg: u32,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetArchitectureFlagName(
arch: *mut BNArchitecture,
flag: u32,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetArchitectureFlagWriteTypeName(
arch: *mut BNArchitecture,
flags: u32,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetArchitectureSemanticFlagClassName(
arch: *mut BNArchitecture,
semClass: u32,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetArchitectureSemanticFlagGroupName(
arch: *mut BNArchitecture,
semGroup: u32,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetFullWidthArchitectureRegisters(
arch: *mut BNArchitecture,
count: *mut usize,
) -> *mut u32;
}
unsafe extern "C" {
pub fn BNGetAllArchitectureRegisters(arch: *mut BNArchitecture, count: *mut usize) -> *mut u32;
}
unsafe extern "C" {
pub fn BNGetAllArchitectureFlags(arch: *mut BNArchitecture, count: *mut usize) -> *mut u32;
}
unsafe extern "C" {
pub fn BNGetAllArchitectureFlagWriteTypes(
arch: *mut BNArchitecture,
count: *mut usize,
) -> *mut u32;
}
unsafe extern "C" {
pub fn BNGetAllArchitectureSemanticFlagClasses(
arch: *mut BNArchitecture,
count: *mut usize,
) -> *mut u32;
}
unsafe extern "C" {
pub fn BNGetAllArchitectureSemanticFlagGroups(
arch: *mut BNArchitecture,
count: *mut usize,
) -> *mut u32;
}
unsafe extern "C" {
pub fn BNGetArchitectureFlagRole(
arch: *mut BNArchitecture,
flag: u32,
semClass: u32,
) -> BNFlagRole;
}
unsafe extern "C" {
pub fn BNGetArchitectureFlagsRequiredForFlagCondition(
arch: *mut BNArchitecture,
cond: BNLowLevelILFlagCondition,
semClass: u32,
count: *mut usize,
) -> *mut u32;
}
unsafe extern "C" {
pub fn BNGetArchitectureFlagsRequiredForSemanticFlagGroup(
arch: *mut BNArchitecture,
semGroup: u32,
count: *mut usize,
) -> *mut u32;
}
unsafe extern "C" {
pub fn BNGetArchitectureFlagConditionsForSemanticFlagGroup(
arch: *mut BNArchitecture,
semGroup: u32,
count: *mut usize,
) -> *mut BNFlagConditionForSemanticClass;
}
unsafe extern "C" {
pub fn BNFreeFlagConditionsForSemanticFlagGroup(
conditions: *mut BNFlagConditionForSemanticClass,
);
}
unsafe extern "C" {
pub fn BNGetArchitectureFlagsWrittenByFlagWriteType(
arch: *mut BNArchitecture,
writeType: u32,
count: *mut usize,
) -> *mut u32;
}
unsafe extern "C" {
pub fn BNGetArchitectureSemanticClassForFlagWriteType(
arch: *mut BNArchitecture,
writeType: u32,
) -> u32;
}
unsafe extern "C" {
pub fn BNGetArchitectureFlagWriteLowLevelIL(
arch: *mut BNArchitecture,
op: BNLowLevelILOperation,
size: usize,
flagWriteType: u32,
flag: u32,
operands: *mut BNRegisterOrConstant,
operandCount: usize,
il: *mut BNLowLevelILFunction,
) -> usize;
}
unsafe extern "C" {
pub fn BNGetDefaultArchitectureFlagWriteLowLevelIL(
arch: *mut BNArchitecture,
op: BNLowLevelILOperation,
size: usize,
role: BNFlagRole,
operands: *mut BNRegisterOrConstant,
operandCount: usize,
il: *mut BNLowLevelILFunction,
) -> usize;
}
unsafe extern "C" {
pub fn BNGetArchitectureFlagConditionLowLevelIL(
arch: *mut BNArchitecture,
cond: BNLowLevelILFlagCondition,
semClass: u32,
il: *mut BNLowLevelILFunction,
) -> usize;
}
unsafe extern "C" {
pub fn BNGetDefaultArchitectureFlagConditionLowLevelIL(
arch: *mut BNArchitecture,
cond: BNLowLevelILFlagCondition,
semClass: u32,
il: *mut BNLowLevelILFunction,
) -> usize;
}
unsafe extern "C" {
pub fn BNGetArchitectureSemanticFlagGroupLowLevelIL(
arch: *mut BNArchitecture,
semGroup: u32,
il: *mut BNLowLevelILFunction,
) -> usize;
}
unsafe extern "C" {
pub fn BNGetModifiedArchitectureRegistersOnWrite(
arch: *mut BNArchitecture,
reg: u32,
count: *mut usize,
) -> *mut u32;
}
unsafe extern "C" {
pub fn BNFreeRegisterList(regs: *mut u32);
}
unsafe extern "C" {
pub fn BNGetArchitectureRegisterInfo(arch: *mut BNArchitecture, reg: u32) -> BNRegisterInfo;
}
unsafe extern "C" {
pub fn BNGetArchitectureStackPointerRegister(arch: *mut BNArchitecture) -> u32;
}
unsafe extern "C" {
pub fn BNGetArchitectureLinkRegister(arch: *mut BNArchitecture) -> u32;
}
unsafe extern "C" {
pub fn BNGetArchitectureGlobalRegisters(
arch: *mut BNArchitecture,
count: *mut usize,
) -> *mut u32;
}
unsafe extern "C" {
pub fn BNIsArchitectureGlobalRegister(arch: *mut BNArchitecture, reg: u32) -> bool;
}
unsafe extern "C" {
pub fn BNGetArchitectureSystemRegisters(
arch: *mut BNArchitecture,
count: *mut usize,
) -> *mut u32;
}
unsafe extern "C" {
pub fn BNIsArchitectureSystemRegister(arch: *mut BNArchitecture, reg: u32) -> bool;
}
unsafe extern "C" {
pub fn BNGetArchitectureRegisterByName(
arch: *mut BNArchitecture,
name: *const ::std::os::raw::c_char,
) -> u32;
}
unsafe extern "C" {
pub fn BNGetArchitectureRegisterStackName(
arch: *mut BNArchitecture,
regStack: u32,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetAllArchitectureRegisterStacks(
arch: *mut BNArchitecture,
count: *mut usize,
) -> *mut u32;
}
unsafe extern "C" {
pub fn BNGetArchitectureRegisterStackInfo(
arch: *mut BNArchitecture,
regStack: u32,
) -> BNRegisterStackInfo;
}
unsafe extern "C" {
pub fn BNGetArchitectureRegisterStackForRegister(arch: *mut BNArchitecture, reg: u32) -> u32;
}
unsafe extern "C" {
pub fn BNGetArchitectureIntrinsicClass(
arch: *mut BNArchitecture,
intrinsic: u32,
) -> BNIntrinsicClass;
}
unsafe extern "C" {
pub fn BNGetArchitectureIntrinsicName(
arch: *mut BNArchitecture,
intrinsic: u32,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetAllArchitectureIntrinsics(arch: *mut BNArchitecture, count: *mut usize)
-> *mut u32;
}
unsafe extern "C" {
pub fn BNGetArchitectureIntrinsicInputs(
arch: *mut BNArchitecture,
intrinsic: u32,
count: *mut usize,
) -> *mut BNNameAndType;
}
unsafe extern "C" {
pub fn BNFreeNameAndTypeList(nt: *mut BNNameAndType, count: usize);
}
unsafe extern "C" {
pub fn BNGetArchitectureIntrinsicOutputs(
arch: *mut BNArchitecture,
intrinsic: u32,
count: *mut usize,
) -> *mut BNTypeWithConfidence;
}
unsafe extern "C" {
pub fn BNFreeOutputTypeList(types: *mut BNTypeWithConfidence, count: usize);
}
unsafe extern "C" {
pub fn BNCanArchitectureAssemble(arch: *mut BNArchitecture) -> bool;
}
unsafe extern "C" {
pub fn BNAssemble(
arch: *mut BNArchitecture,
code: *const ::std::os::raw::c_char,
addr: u64,
result: *mut BNDataBuffer,
errors: *mut *mut ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNIsArchitectureNeverBranchPatchAvailable(
arch: *mut BNArchitecture,
data: *const u8,
addr: u64,
len: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNIsArchitectureAlwaysBranchPatchAvailable(
arch: *mut BNArchitecture,
data: *const u8,
addr: u64,
len: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNIsArchitectureInvertBranchPatchAvailable(
arch: *mut BNArchitecture,
data: *const u8,
addr: u64,
len: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNIsArchitectureSkipAndReturnZeroPatchAvailable(
arch: *mut BNArchitecture,
data: *const u8,
addr: u64,
len: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNIsArchitectureSkipAndReturnValuePatchAvailable(
arch: *mut BNArchitecture,
data: *const u8,
addr: u64,
len: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNArchitectureConvertToNop(
arch: *mut BNArchitecture,
data: *mut u8,
addr: u64,
len: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNArchitectureAlwaysBranch(
arch: *mut BNArchitecture,
data: *mut u8,
addr: u64,
len: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNArchitectureInvertBranch(
arch: *mut BNArchitecture,
data: *mut u8,
addr: u64,
len: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNArchitectureSkipAndReturnValue(
arch: *mut BNArchitecture,
data: *mut u8,
addr: u64,
len: usize,
value: u64,
) -> bool;
}
unsafe extern "C" {
pub fn BNRegisterArchitectureFunctionRecognizer(
arch: *mut BNArchitecture,
rec: *mut BNFunctionRecognizer,
);
}
unsafe extern "C" {
pub fn BNArchitectureRegisterRelocationHandler(
arch: *mut BNArchitecture,
viewName: *const ::std::os::raw::c_char,
handler: *mut BNRelocationHandler,
);
}
unsafe extern "C" {
pub fn BNCreateRelocationHandler(
handler: *mut BNCustomRelocationHandler,
) -> *mut BNRelocationHandler;
}
unsafe extern "C" {
pub fn BNArchitectureGetRelocationHandler(
arch: *mut BNArchitecture,
viewName: *const ::std::os::raw::c_char,
) -> *mut BNRelocationHandler;
}
unsafe extern "C" {
pub fn BNNewRelocationHandlerReference(
handler: *mut BNRelocationHandler,
) -> *mut BNRelocationHandler;
}
unsafe extern "C" {
pub fn BNFreeRelocationHandler(handler: *mut BNRelocationHandler);
}
unsafe extern "C" {
pub fn BNRelocationHandlerGetRelocationInfo(
handler: *mut BNRelocationHandler,
data: *mut BNBinaryView,
arch: *mut BNArchitecture,
info: *mut BNRelocationInfo,
infoCount: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNRelocationHandlerApplyRelocation(
handler: *mut BNRelocationHandler,
view: *mut BNBinaryView,
arch: *mut BNArchitecture,
reloc: *mut BNRelocation,
dest: *mut u8,
len: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNRelocationHandlerDefaultApplyRelocation(
handler: *mut BNRelocationHandler,
view: *mut BNBinaryView,
arch: *mut BNArchitecture,
reloc: *mut BNRelocation,
dest: *mut u8,
len: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNRelocationHandlerGetOperandForExternalRelocation(
handler: *mut BNRelocationHandler,
data: *const u8,
addr: u64,
length: usize,
il: *const BNLowLevelILFunction,
relocation: *mut BNRelocation,
) -> usize;
}
unsafe extern "C" {
#[doc = " Analysis"]
pub fn BNAddAnalysisOption(view: *mut BNBinaryView, name: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn BNAddFunctionForAnalysis(
view: *mut BNBinaryView,
platform: *mut BNPlatform,
addr: u64,
autoDiscovered: bool,
type_: *mut BNType,
) -> *mut BNFunction;
}
unsafe extern "C" {
pub fn BNAddEntryPointForAnalysis(
view: *mut BNBinaryView,
platform: *mut BNPlatform,
addr: u64,
);
}
unsafe extern "C" {
pub fn BNRemoveAnalysisFunction(
view: *mut BNBinaryView,
func: *mut BNFunction,
updateRefs: bool,
);
}
unsafe extern "C" {
pub fn BNCreateUserFunction(
view: *mut BNBinaryView,
platform: *mut BNPlatform,
addr: u64,
) -> *mut BNFunction;
}
unsafe extern "C" {
pub fn BNRemoveUserFunction(view: *mut BNBinaryView, func: *mut BNFunction);
}
unsafe extern "C" {
pub fn BNHasInitialAnalysis(view: *mut BNBinaryView) -> bool;
}
unsafe extern "C" {
pub fn BNSetAnalysisHold(view: *mut BNBinaryView, enable: bool);
}
unsafe extern "C" {
pub fn BNGetFunctionAnalysisUpdateDisabled(view: *mut BNBinaryView) -> bool;
}
unsafe extern "C" {
pub fn BNSetFunctionAnalysisUpdateDisabled(view: *mut BNBinaryView, disabled: bool);
}
unsafe extern "C" {
pub fn BNUpdateAnalysisAndWait(view: *mut BNBinaryView);
}
unsafe extern "C" {
pub fn BNUpdateAnalysis(view: *mut BNBinaryView);
}
unsafe extern "C" {
pub fn BNAbortAnalysis(view: *mut BNBinaryView);
}
unsafe extern "C" {
pub fn BNAnalysisIsAborted(view: *mut BNBinaryView) -> bool;
}
unsafe extern "C" {
pub fn BNIsFunctionUpdateNeeded(func: *mut BNFunction) -> bool;
}
unsafe extern "C" {
pub fn BNRequestAdvancedFunctionAnalysisData(func: *mut BNFunction);
}
unsafe extern "C" {
pub fn BNReleaseAdvancedFunctionAnalysisData(func: *mut BNFunction);
}
unsafe extern "C" {
pub fn BNReleaseAdvancedFunctionAnalysisDataMultiple(func: *mut BNFunction, count: usize);
}
unsafe extern "C" {
pub fn BNNewFunctionReference(func: *mut BNFunction) -> *mut BNFunction;
}
unsafe extern "C" {
pub fn BNFreeFunction(func: *mut BNFunction);
}
unsafe extern "C" {
pub fn BNGetAnalysisFunctionList(
view: *mut BNBinaryView,
count: *mut usize,
) -> *mut *mut BNFunction;
}
unsafe extern "C" {
pub fn BNFreeFunctionList(funcs: *mut *mut BNFunction, count: usize);
}
unsafe extern "C" {
pub fn BNHasFunctions(view: *mut BNBinaryView) -> bool;
}
unsafe extern "C" {
pub fn BNHasSymbols(view: *mut BNBinaryView) -> bool;
}
unsafe extern "C" {
pub fn BNHasDataVariables(view: *mut BNBinaryView) -> bool;
}
unsafe extern "C" {
pub fn BNGetAnalysisFunction(
view: *mut BNBinaryView,
platform: *mut BNPlatform,
addr: u64,
) -> *mut BNFunction;
}
unsafe extern "C" {
pub fn BNGetRecentAnalysisFunctionForAddress(
view: *mut BNBinaryView,
addr: u64,
) -> *mut BNFunction;
}
unsafe extern "C" {
pub fn BNGetAnalysisFunctionsForAddress(
view: *mut BNBinaryView,
addr: u64,
count: *mut usize,
) -> *mut *mut BNFunction;
}
unsafe extern "C" {
pub fn BNGetAnalysisFunctionsContainingAddress(
view: *mut BNBinaryView,
addr: u64,
count: *mut usize,
) -> *mut *mut BNFunction;
}
unsafe extern "C" {
pub fn BNGetAnalysisEntryPoint(view: *mut BNBinaryView) -> *mut BNFunction;
}
unsafe extern "C" {
pub fn BNGetAllEntryFunctions(
view: *mut BNBinaryView,
count: *mut usize,
) -> *mut *mut BNFunction;
}
unsafe extern "C" {
pub fn BNAddToEntryFunctions(view: *mut BNBinaryView, func: *mut BNFunction);
}
unsafe extern "C" {
pub fn BNGetGlobalCommentForAddress(
view: *mut BNBinaryView,
addr: u64,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetGlobalCommentedAddresses(view: *mut BNBinaryView, count: *mut usize) -> *mut u64;
}
unsafe extern "C" {
pub fn BNSetGlobalCommentForAddress(
view: *mut BNBinaryView,
addr: u64,
comment: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNGetFunctionData(func: *mut BNFunction) -> *mut BNBinaryView;
}
unsafe extern "C" {
pub fn BNGetFunctionArchitecture(func: *mut BNFunction) -> *mut BNArchitecture;
}
unsafe extern "C" {
pub fn BNGetFunctionPlatform(func: *mut BNFunction) -> *mut BNPlatform;
}
unsafe extern "C" {
pub fn BNGetFunctionStart(func: *mut BNFunction) -> u64;
}
unsafe extern "C" {
pub fn BNGetFunctionSymbol(func: *mut BNFunction) -> *mut BNSymbol;
}
unsafe extern "C" {
pub fn BNWasFunctionAutomaticallyDiscovered(func: *mut BNFunction) -> bool;
}
unsafe extern "C" {
pub fn BNFunctionHasUserAnnotations(func: *mut BNFunction) -> bool;
}
unsafe extern "C" {
pub fn BNCanFunctionReturn(func: *mut BNFunction) -> BNBoolWithConfidence;
}
unsafe extern "C" {
pub fn BNIsFunctionPure(func: *mut BNFunction) -> BNBoolWithConfidence;
}
unsafe extern "C" {
pub fn BNSetFunctionAutoType(func: *mut BNFunction, type_: *mut BNType);
}
unsafe extern "C" {
pub fn BNSetFunctionUserType(func: *mut BNFunction, type_: *mut BNType);
}
unsafe extern "C" {
pub fn BNFunctionHasUserType(func: *mut BNFunction) -> bool;
}
unsafe extern "C" {
pub fn BNGetFunctionComment(func: *mut BNFunction) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetCommentForAddress(func: *mut BNFunction, addr: u64) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetCommentedAddresses(func: *mut BNFunction, count: *mut usize) -> *mut u64;
}
unsafe extern "C" {
pub fn BNFreeAddressList(addrs: *mut u64);
}
unsafe extern "C" {
pub fn BNSetFunctionComment(func: *mut BNFunction, comment: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn BNSetCommentForAddress(
func: *mut BNFunction,
addr: u64,
comment: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNAddUserCodeReference(
func: *mut BNFunction,
fromArch: *mut BNArchitecture,
fromAddr: u64,
toAddr: u64,
);
}
unsafe extern "C" {
pub fn BNRemoveUserCodeReference(
func: *mut BNFunction,
fromArch: *mut BNArchitecture,
fromAddr: u64,
toAddr: u64,
);
}
unsafe extern "C" {
pub fn BNAddUserTypeReference(
func: *mut BNFunction,
fromArch: *mut BNArchitecture,
fromAddr: u64,
name: *mut BNQualifiedName,
);
}
unsafe extern "C" {
pub fn BNRemoveUserTypeReference(
func: *mut BNFunction,
fromArch: *mut BNArchitecture,
fromAddr: u64,
name: *mut BNQualifiedName,
);
}
unsafe extern "C" {
pub fn BNAddUserTypeFieldReference(
func: *mut BNFunction,
fromArch: *mut BNArchitecture,
fromAddr: u64,
name: *mut BNQualifiedName,
offset: u64,
size: usize,
);
}
unsafe extern "C" {
pub fn BNRemoveUserTypeFieldReference(
func: *mut BNFunction,
fromArch: *mut BNArchitecture,
fromAddr: u64,
name: *mut BNQualifiedName,
offset: u64,
size: usize,
);
}
unsafe extern "C" {
pub fn BNNewBasicBlockReference(block: *mut BNBasicBlock) -> *mut BNBasicBlock;
}
unsafe extern "C" {
pub fn BNFreeBasicBlock(block: *mut BNBasicBlock);
}
unsafe extern "C" {
pub fn BNGetFunctionBasicBlockList(
func: *mut BNFunction,
count: *mut usize,
) -> *mut *mut BNBasicBlock;
}
unsafe extern "C" {
pub fn BNFreeBasicBlockList(blocks: *mut *mut BNBasicBlock, count: usize);
}
unsafe extern "C" {
pub fn BNGetFunctionBasicBlockAtAddress(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
) -> *mut BNBasicBlock;
}
unsafe extern "C" {
pub fn BNGetRecentBasicBlockForAddress(view: *mut BNBinaryView, addr: u64)
-> *mut BNBasicBlock;
}
unsafe extern "C" {
pub fn BNGetBasicBlocksForAddress(
view: *mut BNBinaryView,
addr: u64,
count: *mut usize,
) -> *mut *mut BNBasicBlock;
}
unsafe extern "C" {
pub fn BNGetBasicBlocksStartingAtAddress(
view: *mut BNBinaryView,
addr: u64,
count: *mut usize,
) -> *mut *mut BNBasicBlock;
}
unsafe extern "C" {
pub fn BNGetFunctionHighestAddress(func: *mut BNFunction) -> u64;
}
unsafe extern "C" {
pub fn BNGetFunctionLowestAddress(func: *mut BNFunction) -> u64;
}
unsafe extern "C" {
pub fn BNGetFunctionAddressRanges(
func: *mut BNFunction,
count: *mut usize,
) -> *mut BNAddressRange;
}
unsafe extern "C" {
pub fn BNGetFunctionLowLevelIL(func: *mut BNFunction) -> *mut BNLowLevelILFunction;
}
unsafe extern "C" {
pub fn BNGetFunctionLowLevelILIfAvailable(func: *mut BNFunction) -> *mut BNLowLevelILFunction;
}
unsafe extern "C" {
pub fn BNFreeILInstructionList(list: *mut usize);
}
unsafe extern "C" {
pub fn BNGetFunctionMediumLevelIL(func: *mut BNFunction) -> *mut BNMediumLevelILFunction;
}
unsafe extern "C" {
pub fn BNGetFunctionMediumLevelILIfAvailable(
func: *mut BNFunction,
) -> *mut BNMediumLevelILFunction;
}
unsafe extern "C" {
pub fn BNGetFunctionMappedMediumLevelIL(func: *mut BNFunction) -> *mut BNMediumLevelILFunction;
}
unsafe extern "C" {
pub fn BNGetFunctionMappedMediumLevelILIfAvailable(
func: *mut BNFunction,
) -> *mut BNMediumLevelILFunction;
}
unsafe extern "C" {
pub fn BNGetFunctionHighLevelIL(func: *mut BNFunction) -> *mut BNHighLevelILFunction;
}
unsafe extern "C" {
pub fn BNGetFunctionHighLevelILIfAvailable(func: *mut BNFunction)
-> *mut BNHighLevelILFunction;
}
unsafe extern "C" {
pub fn BNGetFunctionLanguageRepresentation(
func: *mut BNFunction,
language: *const ::std::os::raw::c_char,
) -> *mut BNLanguageRepresentationFunction;
}
unsafe extern "C" {
pub fn BNGetFunctionLanguageRepresentationIfAvailable(
func: *mut BNFunction,
language: *const ::std::os::raw::c_char,
) -> *mut BNLanguageRepresentationFunction;
}
unsafe extern "C" {
pub fn BNGetConstantData(
func: *mut BNFunction,
state: BNRegisterValueType,
value: u64,
size: usize,
builtin: *mut BNBuiltinType,
) -> *mut BNDataBuffer;
}
unsafe extern "C" {
pub fn BNGetRegisterValueAtInstruction(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
reg: u32,
) -> BNRegisterValue;
}
unsafe extern "C" {
pub fn BNGetRegisterValueAfterInstruction(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
reg: u32,
) -> BNRegisterValue;
}
unsafe extern "C" {
pub fn BNGetStackContentsAtInstruction(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
offset: i64,
size: usize,
) -> BNRegisterValue;
}
unsafe extern "C" {
pub fn BNGetStackContentsAfterInstruction(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
offset: i64,
size: usize,
) -> BNRegisterValue;
}
unsafe extern "C" {
pub fn BNGetParameterValueAtInstruction(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
functionType: *mut BNType,
i: usize,
) -> BNRegisterValue;
}
unsafe extern "C" {
pub fn BNGetParameterValueAtLowLevelILInstruction(
func: *mut BNFunction,
instr: usize,
functionType: *mut BNType,
i: usize,
) -> BNRegisterValue;
}
unsafe extern "C" {
pub fn BNGetRegistersReadByInstruction(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
count: *mut usize,
) -> *mut u32;
}
unsafe extern "C" {
pub fn BNGetRegistersWrittenByInstruction(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
count: *mut usize,
) -> *mut u32;
}
unsafe extern "C" {
pub fn BNGetStackVariablesReferencedByInstruction(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
count: *mut usize,
) -> *mut BNStackVariableReference;
}
unsafe extern "C" {
pub fn BNGetStackVariablesReferencedByInstructionIfAvailable(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
count: *mut usize,
) -> *mut BNStackVariableReference;
}
unsafe extern "C" {
pub fn BNFreeStackVariableReferenceList(refs: *mut BNStackVariableReference, count: usize);
}
unsafe extern "C" {
pub fn BNGetConstantsReferencedByInstruction(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
count: *mut usize,
) -> *mut BNConstantReference;
}
unsafe extern "C" {
pub fn BNGetConstantsReferencedByInstructionIfAvailable(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
count: *mut usize,
) -> *mut BNConstantReference;
}
unsafe extern "C" {
pub fn BNFreeConstantReferenceList(refs: *mut BNConstantReference);
}
unsafe extern "C" {
pub fn BNGetFunctionLiftedIL(func: *mut BNFunction) -> *mut BNLowLevelILFunction;
}
unsafe extern "C" {
pub fn BNGetFunctionLiftedILIfAvailable(func: *mut BNFunction) -> *mut BNLowLevelILFunction;
}
unsafe extern "C" {
pub fn BNGetLiftedILFlagUsesForDefinition(
func: *mut BNFunction,
i: usize,
flag: u32,
count: *mut usize,
) -> *mut usize;
}
unsafe extern "C" {
pub fn BNGetLiftedILFlagDefinitionsForUse(
func: *mut BNFunction,
i: usize,
flag: u32,
count: *mut usize,
) -> *mut usize;
}
unsafe extern "C" {
pub fn BNGetFlagsReadByLiftedILInstruction(
func: *mut BNFunction,
i: usize,
count: *mut usize,
) -> *mut u32;
}
unsafe extern "C" {
pub fn BNGetFlagsWrittenByLiftedILInstruction(
func: *mut BNFunction,
i: usize,
count: *mut usize,
) -> *mut u32;
}
unsafe extern "C" {
pub fn BNGetFunctionType(func: *mut BNFunction) -> *mut BNType;
}
unsafe extern "C" {
pub fn BNGetFunctionReturnType(func: *mut BNFunction) -> BNTypeWithConfidence;
}
unsafe extern "C" {
pub fn BNGetFunctionReturnRegisters(func: *mut BNFunction) -> BNRegisterSetWithConfidence;
}
unsafe extern "C" {
pub fn BNGetFunctionCallingConvention(
func: *mut BNFunction,
) -> BNCallingConventionWithConfidence;
}
unsafe extern "C" {
pub fn BNGetFunctionParameterVariables(
func: *mut BNFunction,
) -> BNParameterVariablesWithConfidence;
}
unsafe extern "C" {
pub fn BNFreeParameterVariables(vars: *mut BNParameterVariablesWithConfidence);
}
unsafe extern "C" {
pub fn BNFunctionHasVariableArguments(func: *mut BNFunction) -> BNBoolWithConfidence;
}
unsafe extern "C" {
pub fn BNGetFunctionStackAdjustment(func: *mut BNFunction) -> BNOffsetWithConfidence;
}
unsafe extern "C" {
pub fn BNGetFunctionRegisterStackAdjustments(
func: *mut BNFunction,
count: *mut usize,
) -> *mut BNRegisterStackAdjustment;
}
unsafe extern "C" {
pub fn BNFreeRegisterStackAdjustments(adjustments: *mut BNRegisterStackAdjustment);
}
unsafe extern "C" {
pub fn BNGetFunctionClobberedRegisters(func: *mut BNFunction) -> BNRegisterSetWithConfidence;
}
unsafe extern "C" {
pub fn BNFreeRegisterSet(regs: *mut BNRegisterSetWithConfidence);
}
unsafe extern "C" {
pub fn BNSetAutoFunctionReturnType(func: *mut BNFunction, type_: *mut BNTypeWithConfidence);
}
unsafe extern "C" {
pub fn BNSetAutoFunctionReturnRegisters(
func: *mut BNFunction,
regs: *mut BNRegisterSetWithConfidence,
);
}
unsafe extern "C" {
pub fn BNSetAutoFunctionCallingConvention(
func: *mut BNFunction,
convention: *mut BNCallingConventionWithConfidence,
);
}
unsafe extern "C" {
pub fn BNSetAutoFunctionParameterVariables(
func: *mut BNFunction,
vars: *mut BNParameterVariablesWithConfidence,
);
}
unsafe extern "C" {
pub fn BNSetAutoFunctionHasVariableArguments(
func: *mut BNFunction,
varArgs: *mut BNBoolWithConfidence,
);
}
unsafe extern "C" {
pub fn BNSetAutoFunctionCanReturn(func: *mut BNFunction, returns: *mut BNBoolWithConfidence);
}
unsafe extern "C" {
pub fn BNSetAutoFunctionPure(func: *mut BNFunction, pure_: *mut BNBoolWithConfidence);
}
unsafe extern "C" {
pub fn BNSetAutoFunctionStackAdjustment(
func: *mut BNFunction,
stackAdjust: *mut BNOffsetWithConfidence,
);
}
unsafe extern "C" {
pub fn BNSetAutoFunctionRegisterStackAdjustments(
func: *mut BNFunction,
adjustments: *mut BNRegisterStackAdjustment,
count: usize,
);
}
unsafe extern "C" {
pub fn BNSetAutoFunctionClobberedRegisters(
func: *mut BNFunction,
regs: *mut BNRegisterSetWithConfidence,
);
}
unsafe extern "C" {
pub fn BNSetUserFunctionReturnType(func: *mut BNFunction, type_: *mut BNTypeWithConfidence);
}
unsafe extern "C" {
pub fn BNSetUserFunctionReturnRegisters(
func: *mut BNFunction,
regs: *mut BNRegisterSetWithConfidence,
);
}
unsafe extern "C" {
pub fn BNSetUserFunctionCallingConvention(
func: *mut BNFunction,
convention: *mut BNCallingConventionWithConfidence,
);
}
unsafe extern "C" {
pub fn BNSetUserFunctionParameterVariables(
func: *mut BNFunction,
vars: *mut BNParameterVariablesWithConfidence,
);
}
unsafe extern "C" {
pub fn BNSetUserFunctionHasVariableArguments(
func: *mut BNFunction,
varArgs: *mut BNBoolWithConfidence,
);
}
unsafe extern "C" {
pub fn BNSetUserFunctionCanReturn(func: *mut BNFunction, returns: *mut BNBoolWithConfidence);
}
unsafe extern "C" {
pub fn BNSetUserFunctionPure(func: *mut BNFunction, pure_: *mut BNBoolWithConfidence);
}
unsafe extern "C" {
pub fn BNSetUserFunctionStackAdjustment(
func: *mut BNFunction,
stackAdjust: *mut BNOffsetWithConfidence,
);
}
unsafe extern "C" {
pub fn BNSetUserFunctionRegisterStackAdjustments(
func: *mut BNFunction,
adjustments: *mut BNRegisterStackAdjustment,
count: usize,
);
}
unsafe extern "C" {
pub fn BNSetUserFunctionClobberedRegisters(
func: *mut BNFunction,
regs: *mut BNRegisterSetWithConfidence,
);
}
unsafe extern "C" {
pub fn BNApplyImportedTypes(func: *mut BNFunction, sym: *mut BNSymbol, type_: *mut BNType);
}
unsafe extern "C" {
pub fn BNApplyAutoDiscoveredFunctionType(func: *mut BNFunction, type_: *mut BNType);
}
unsafe extern "C" {
pub fn BNFunctionHasExplicitlyDefinedType(func: *mut BNFunction) -> bool;
}
unsafe extern "C" {
pub fn BNGetFunctionTypeTokens(
func: *mut BNFunction,
settings: *mut BNDisassemblySettings,
count: *mut usize,
) -> *mut BNDisassemblyTextLine;
}
unsafe extern "C" {
pub fn BNGetFunctionGlobalPointerValue(func: *mut BNFunction) -> BNRegisterValueWithConfidence;
}
unsafe extern "C" {
pub fn BNFunctionUsesIncomingGlobalPointer(func: *mut BNFunction) -> bool;
}
unsafe extern "C" {
pub fn BNGetFunctionRegisterValueAtExit(
func: *mut BNFunction,
reg: u32,
) -> BNRegisterValueWithConfidence;
}
unsafe extern "C" {
pub fn BNIsFunctionInlinedDuringAnalysis(func: *mut BNFunction) -> BNBoolWithConfidence;
}
unsafe extern "C" {
pub fn BNSetAutoFunctionInlinedDuringAnalysis(
func: *mut BNFunction,
inlined: BNBoolWithConfidence,
);
}
unsafe extern "C" {
pub fn BNSetUserFunctionInlinedDuringAnalysis(
func: *mut BNFunction,
inlined: BNBoolWithConfidence,
);
}
unsafe extern "C" {
pub fn BNGetInstructionContainingAddress(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
start: *mut u64,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetBasicBlockFunction(block: *mut BNBasicBlock) -> *mut BNFunction;
}
unsafe extern "C" {
pub fn BNGetBasicBlockArchitecture(block: *mut BNBasicBlock) -> *mut BNArchitecture;
}
unsafe extern "C" {
pub fn BNGetBasicBlockSource(block: *mut BNBasicBlock) -> *mut BNBasicBlock;
}
unsafe extern "C" {
pub fn BNGetBasicBlockStart(block: *mut BNBasicBlock) -> u64;
}
unsafe extern "C" {
pub fn BNSetBasicBlockEnd(block: *mut BNBasicBlock, end: u64);
}
unsafe extern "C" {
pub fn BNGetBasicBlockEnd(block: *mut BNBasicBlock) -> u64;
}
unsafe extern "C" {
pub fn BNGetBasicBlockLength(block: *mut BNBasicBlock) -> u64;
}
unsafe extern "C" {
pub fn BNGetBasicBlockOutgoingEdges(
block: *mut BNBasicBlock,
count: *mut usize,
) -> *mut BNBasicBlockEdge;
}
unsafe extern "C" {
pub fn BNGetBasicBlockIncomingEdges(
block: *mut BNBasicBlock,
count: *mut usize,
) -> *mut BNBasicBlockEdge;
}
unsafe extern "C" {
pub fn BNFreeBasicBlockEdgeList(edges: *mut BNBasicBlockEdge, count: usize);
}
unsafe extern "C" {
pub fn BNBasicBlockHasUndeterminedOutgoingEdges(block: *mut BNBasicBlock) -> bool;
}
unsafe extern "C" {
pub fn BNBasicBlockAddPendingOutgoingEdge(
block: *mut BNBasicBlock,
type_: BNBranchType,
addr: u64,
arch: *mut BNArchitecture,
fallThrough: bool,
);
}
unsafe extern "C" {
pub fn BNGetBasicBlockPendingOutgoingEdges(
block: *mut BNBasicBlock,
count: *mut usize,
) -> *mut BNPendingBasicBlockEdge;
}
unsafe extern "C" {
pub fn BNFreePendingBasicBlockEdgeList(edges: *mut BNPendingBasicBlockEdge);
}
unsafe extern "C" {
pub fn BNClearBasicBlockPendingOutgoingEdges(block: *mut BNBasicBlock);
}
unsafe extern "C" {
pub fn BNBasicBlockSetUndeterminedOutgoingEdges(block: *mut BNBasicBlock, value: bool);
}
unsafe extern "C" {
pub fn BNBasicBlockGetInstructionData(
block: *mut BNBasicBlock,
addr: u64,
len: *mut usize,
) -> *const u8;
}
unsafe extern "C" {
pub fn BNBasicBlockAddInstructionData(
block: *mut BNBasicBlock,
data: *const ::std::os::raw::c_void,
len: usize,
);
}
unsafe extern "C" {
pub fn BNBasicBlockSetFallThroughToFunction(block: *mut BNBasicBlock, value: bool);
}
unsafe extern "C" {
pub fn BNBasicBlockIsFallThroughToFunction(block: *mut BNBasicBlock) -> bool;
}
unsafe extern "C" {
pub fn BNBasicBlockCanExit(block: *mut BNBasicBlock) -> bool;
}
unsafe extern "C" {
pub fn BNBasicBlockSetCanExit(block: *mut BNBasicBlock, value: bool);
}
unsafe extern "C" {
pub fn BNBasicBlockSetHasInvalidInstructions(block: *mut BNBasicBlock, value: bool);
}
unsafe extern "C" {
pub fn BNBasicBlockHasInvalidInstructions(block: *mut BNBasicBlock) -> bool;
}
unsafe extern "C" {
pub fn BNGetBasicBlockIndex(block: *mut BNBasicBlock) -> usize;
}
unsafe extern "C" {
pub fn BNGetBasicBlockDominators(
block: *mut BNBasicBlock,
count: *mut usize,
post: bool,
) -> *mut *mut BNBasicBlock;
}
unsafe extern "C" {
pub fn BNGetBasicBlockStrictDominators(
block: *mut BNBasicBlock,
count: *mut usize,
post: bool,
) -> *mut *mut BNBasicBlock;
}
unsafe extern "C" {
pub fn BNGetBasicBlockImmediateDominator(
block: *mut BNBasicBlock,
post: bool,
) -> *mut BNBasicBlock;
}
unsafe extern "C" {
pub fn BNGetBasicBlockDominatorTreeChildren(
block: *mut BNBasicBlock,
count: *mut usize,
post: bool,
) -> *mut *mut BNBasicBlock;
}
unsafe extern "C" {
pub fn BNGetBasicBlockDominanceFrontier(
block: *mut BNBasicBlock,
count: *mut usize,
post: bool,
) -> *mut *mut BNBasicBlock;
}
unsafe extern "C" {
pub fn BNGetBasicBlockIteratedDominanceFrontier(
blocks: *mut *mut BNBasicBlock,
incomingCount: usize,
outputCount: *mut usize,
) -> *mut *mut BNBasicBlock;
}
unsafe extern "C" {
pub fn BNIsILBasicBlock(block: *mut BNBasicBlock) -> bool;
}
unsafe extern "C" {
pub fn BNIsLowLevelILBasicBlock(block: *mut BNBasicBlock) -> bool;
}
unsafe extern "C" {
pub fn BNIsMediumLevelILBasicBlock(block: *mut BNBasicBlock) -> bool;
}
unsafe extern "C" {
pub fn BNIsHighLevelILBasicBlock(block: *mut BNBasicBlock) -> bool;
}
unsafe extern "C" {
pub fn BNGetBasicBlockFunctionGraphType(block: *mut BNBasicBlock) -> BNFunctionGraphType;
}
unsafe extern "C" {
pub fn BNGetBasicBlockLowLevelILFunction(block: *mut BNBasicBlock)
-> *mut BNLowLevelILFunction;
}
unsafe extern "C" {
pub fn BNGetBasicBlockMediumLevelILFunction(
block: *mut BNBasicBlock,
) -> *mut BNMediumLevelILFunction;
}
unsafe extern "C" {
pub fn BNGetBasicBlockHighLevelILFunction(
block: *mut BNBasicBlock,
) -> *mut BNHighLevelILFunction;
}
unsafe extern "C" {
pub fn BNGetBasicBlockInstructionContainingAddress(
block: *mut BNBasicBlock,
addr: u64,
start: *mut u64,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetBasicBlockSourceBlock(block: *mut BNBasicBlock) -> *mut BNBasicBlock;
}
unsafe extern "C" {
pub fn BNGetBasicBlockDisassemblyText(
block: *mut BNBasicBlock,
settings: *mut BNDisassemblySettings,
count: *mut usize,
) -> *mut BNDisassemblyTextLine;
}
unsafe extern "C" {
pub fn BNFreeDisassemblyTextLines(lines: *mut BNDisassemblyTextLine, count: usize);
}
unsafe extern "C" {
pub fn BNGetDisplayStringForInteger(
binaryView: *mut BNBinaryView,
type_: BNIntegerDisplayType,
value: u64,
inputWidth: usize,
isSigned: bool,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNCreateDisassemblyTextRenderer(
func: *mut BNFunction,
settings: *mut BNDisassemblySettings,
) -> *mut BNDisassemblyTextRenderer;
}
unsafe extern "C" {
pub fn BNCreateLowLevelILDisassemblyTextRenderer(
func: *mut BNLowLevelILFunction,
settings: *mut BNDisassemblySettings,
) -> *mut BNDisassemblyTextRenderer;
}
unsafe extern "C" {
pub fn BNCreateMediumLevelILDisassemblyTextRenderer(
func: *mut BNMediumLevelILFunction,
settings: *mut BNDisassemblySettings,
) -> *mut BNDisassemblyTextRenderer;
}
unsafe extern "C" {
pub fn BNCreateHighLevelILDisassemblyTextRenderer(
func: *mut BNHighLevelILFunction,
settings: *mut BNDisassemblySettings,
) -> *mut BNDisassemblyTextRenderer;
}
unsafe extern "C" {
pub fn BNNewDisassemblyTextRendererReference(
renderer: *mut BNDisassemblyTextRenderer,
) -> *mut BNDisassemblyTextRenderer;
}
unsafe extern "C" {
pub fn BNFreeDisassemblyTextRenderer(renderer: *mut BNDisassemblyTextRenderer);
}
unsafe extern "C" {
pub fn BNGetDisassemblyTextRendererFunction(
renderer: *mut BNDisassemblyTextRenderer,
) -> *mut BNFunction;
}
unsafe extern "C" {
pub fn BNGetDisassemblyTextRendererLowLevelILFunction(
renderer: *mut BNDisassemblyTextRenderer,
) -> *mut BNLowLevelILFunction;
}
unsafe extern "C" {
pub fn BNGetDisassemblyTextRendererMediumLevelILFunction(
renderer: *mut BNDisassemblyTextRenderer,
) -> *mut BNMediumLevelILFunction;
}
unsafe extern "C" {
pub fn BNGetDisassemblyTextRendererHighLevelILFunction(
renderer: *mut BNDisassemblyTextRenderer,
) -> *mut BNHighLevelILFunction;
}
unsafe extern "C" {
pub fn BNGetDisassemblyTextRendererBasicBlock(
renderer: *mut BNDisassemblyTextRenderer,
) -> *mut BNBasicBlock;
}
unsafe extern "C" {
pub fn BNGetDisassemblyTextRendererArchitecture(
renderer: *mut BNDisassemblyTextRenderer,
) -> *mut BNArchitecture;
}
unsafe extern "C" {
pub fn BNGetDisassemblyTextRendererSettings(
renderer: *mut BNDisassemblyTextRenderer,
) -> *mut BNDisassemblySettings;
}
unsafe extern "C" {
pub fn BNSetDisassemblyTextRendererBasicBlock(
renderer: *mut BNDisassemblyTextRenderer,
block: *mut BNBasicBlock,
);
}
unsafe extern "C" {
pub fn BNSetDisassemblyTextRendererArchitecture(
renderer: *mut BNDisassemblyTextRenderer,
arch: *mut BNArchitecture,
);
}
unsafe extern "C" {
pub fn BNSetDisassemblyTextRendererSettings(
renderer: *mut BNDisassemblyTextRenderer,
settings: *mut BNDisassemblySettings,
);
}
unsafe extern "C" {
pub fn BNIsILDisassemblyTextRenderer(renderer: *mut BNDisassemblyTextRenderer) -> bool;
}
unsafe extern "C" {
pub fn BNDisassemblyTextRendererHasDataFlow(renderer: *mut BNDisassemblyTextRenderer) -> bool;
}
unsafe extern "C" {
pub fn BNGetDisassemblyTextRendererInstructionAnnotations(
renderer: *mut BNDisassemblyTextRenderer,
addr: u64,
count: *mut usize,
) -> *mut BNInstructionTextToken;
}
unsafe extern "C" {
pub fn BNGetDisassemblyTextRendererInstructionText(
renderer: *mut BNDisassemblyTextRenderer,
addr: u64,
len: *mut usize,
result: *mut *mut BNDisassemblyTextLine,
count: *mut usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetDisassemblyTextRendererLines(
renderer: *mut BNDisassemblyTextRenderer,
addr: u64,
len: *mut usize,
result: *mut *mut BNDisassemblyTextLine,
count: *mut usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNPostProcessDisassemblyTextRendererLines(
renderer: *mut BNDisassemblyTextRenderer,
addr: u64,
len: usize,
inLines: *mut BNDisassemblyTextLine,
inCount: usize,
outCount: *mut usize,
indentSpaces: *const ::std::os::raw::c_char,
) -> *mut BNDisassemblyTextLine;
}
unsafe extern "C" {
pub fn BNResetDisassemblyTextRendererDeduplicatedComments(
renderer: *mut BNDisassemblyTextRenderer,
);
}
unsafe extern "C" {
pub fn BNGetDisassemblyTextRendererSymbolTokens(
renderer: *mut BNDisassemblyTextRenderer,
addr: u64,
size: usize,
operand: usize,
result: *mut *mut BNInstructionTextToken,
count: *mut usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetDisassemblyTextRendererSymbolTokensStatic(
addr: u64,
size: usize,
operand: usize,
data: *mut BNBinaryView,
maxSymbolWidth: usize,
func: *mut BNFunction,
confidence: u8,
symbolDisplay: BNSymbolDisplayType,
precedence: BNOperatorPrecedence,
instrAddr: u64,
exprIndex: u64,
result: *mut *mut BNInstructionTextToken,
count: *mut usize,
) -> BNSymbolDisplayResult;
}
unsafe extern "C" {
pub fn BNGetDisassemblyTextRendererStackVariableReferenceTokens(
renderer: *mut BNDisassemblyTextRenderer,
ref_: *mut BNStackVariableReference,
count: *mut usize,
) -> *mut BNInstructionTextToken;
}
unsafe extern "C" {
pub fn BNIsIntegerToken(type_: BNInstructionTextTokenType) -> bool;
}
unsafe extern "C" {
pub fn BNGetDisassemblyTextRendererIntegerTokens(
renderer: *mut BNDisassemblyTextRenderer,
token: *mut BNInstructionTextToken,
arch: *mut BNArchitecture,
addr: u64,
count: *mut usize,
) -> *mut BNInstructionTextToken;
}
unsafe extern "C" {
pub fn BNDisassemblyTextRendererWrapComment(
renderer: *mut BNDisassemblyTextRenderer,
inLine: *const BNDisassemblyTextLine,
outLineCount: *mut usize,
comment: *const ::std::os::raw::c_char,
hasAutoAnnotations: bool,
leadingSpaces: *const ::std::os::raw::c_char,
indentSpaces: *const ::std::os::raw::c_char,
) -> *mut BNDisassemblyTextLine;
}
unsafe extern "C" {
pub fn BNGetStringLiteralPrefix(type_: BNStringType) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNMarkFunctionAsRecentlyUsed(func: *mut BNFunction);
}
unsafe extern "C" {
pub fn BNMarkBasicBlockAsRecentlyUsed(block: *mut BNBasicBlock);
}
unsafe extern "C" {
pub fn BNGetCodeReferences(
view: *mut BNBinaryView,
addr: u64,
count: *mut usize,
limit: bool,
maxItems: usize,
) -> *mut BNReferenceSource;
}
unsafe extern "C" {
pub fn BNGetCodeReferencesInRange(
view: *mut BNBinaryView,
addr: u64,
len: u64,
count: *mut usize,
limit: bool,
maxItems: usize,
) -> *mut BNReferenceSource;
}
unsafe extern "C" {
pub fn BNFreeCodeReferences(refs: *mut BNReferenceSource, count: usize);
}
unsafe extern "C" {
pub fn BNFreeTypeFieldReferences(refs: *mut BNTypeFieldReference, count: usize);
}
unsafe extern "C" {
pub fn BNFreeILReferences(refs: *mut BNILReferenceSource, count: usize);
}
unsafe extern "C" {
pub fn BNGetCodeReferencesFrom(
view: *mut BNBinaryView,
src: *mut BNReferenceSource,
count: *mut usize,
) -> *mut u64;
}
unsafe extern "C" {
pub fn BNGetCodeReferencesFromInRange(
view: *mut BNBinaryView,
src: *mut BNReferenceSource,
len: u64,
count: *mut usize,
) -> *mut u64;
}
unsafe extern "C" {
pub fn BNGetDataReferences(
view: *mut BNBinaryView,
addr: u64,
count: *mut usize,
limit: bool,
maxItems: usize,
) -> *mut u64;
}
unsafe extern "C" {
pub fn BNGetDataReferencesInRange(
view: *mut BNBinaryView,
addr: u64,
len: u64,
count: *mut usize,
limit: bool,
maxItems: usize,
) -> *mut u64;
}
unsafe extern "C" {
pub fn BNGetDataReferencesFrom(
view: *mut BNBinaryView,
addr: u64,
count: *mut usize,
) -> *mut u64;
}
unsafe extern "C" {
pub fn BNGetDataReferencesFromInRange(
view: *mut BNBinaryView,
addr: u64,
len: u64,
count: *mut usize,
) -> *mut u64;
}
unsafe extern "C" {
pub fn BNAddDataReference(view: *mut BNBinaryView, fromAddr: u64, toAddr: u64);
}
unsafe extern "C" {
pub fn BNRemoveDataReference(view: *mut BNBinaryView, fromAddr: u64, toAddr: u64);
}
unsafe extern "C" {
pub fn BNAddUserDataReference(view: *mut BNBinaryView, fromAddr: u64, toAddr: u64);
}
unsafe extern "C" {
pub fn BNRemoveUserDataReference(view: *mut BNBinaryView, fromAddr: u64, toAddr: u64);
}
unsafe extern "C" {
pub fn BNFreeDataReferences(refs: *mut u64);
}
unsafe extern "C" {
pub fn BNFreeTypeReferences(refs: *mut BNTypeReferenceSource, count: usize);
}
unsafe extern "C" {
pub fn BNFreeTypeFieldReferenceSizeInfo(refs: *mut BNTypeFieldReferenceSizeInfo, count: usize);
}
unsafe extern "C" {
pub fn BNFreeTypeFieldReferenceTypeInfo(refs: *mut BNTypeFieldReferenceTypeInfo, count: usize);
}
unsafe extern "C" {
pub fn BNFreeTypeFieldReferenceSizes(refs: *mut usize, count: usize);
}
unsafe extern "C" {
pub fn BNFreeTypeFieldReferenceTypes(refs: *mut BNTypeWithConfidence, count: usize);
}
unsafe extern "C" {
#[doc = " References to type"]
pub fn BNGetCodeReferencesForType(
view: *mut BNBinaryView,
type_: *mut BNQualifiedName,
count: *mut usize,
limit: bool,
maxItems: usize,
) -> *mut BNReferenceSource;
}
unsafe extern "C" {
pub fn BNGetDataReferencesForType(
view: *mut BNBinaryView,
type_: *mut BNQualifiedName,
count: *mut usize,
limit: bool,
maxItems: usize,
) -> *mut u64;
}
unsafe extern "C" {
pub fn BNGetTypeReferencesForType(
view: *mut BNBinaryView,
type_: *mut BNQualifiedName,
count: *mut usize,
limit: bool,
maxItems: usize,
) -> *mut BNTypeReferenceSource;
}
unsafe extern "C" {
#[doc = " References to type field"]
pub fn BNGetCodeReferencesForTypeField(
view: *mut BNBinaryView,
type_: *mut BNQualifiedName,
offset: u64,
count: *mut usize,
limit: bool,
maxItems: usize,
) -> *mut BNTypeFieldReference;
}
unsafe extern "C" {
pub fn BNGetDataReferencesForTypeField(
view: *mut BNBinaryView,
type_: *mut BNQualifiedName,
offset: u64,
count: *mut usize,
limit: bool,
maxItems: usize,
) -> *mut u64;
}
unsafe extern "C" {
pub fn BNGetDataReferencesFromForTypeField(
view: *mut BNBinaryView,
type_: *mut BNQualifiedName,
offset: u64,
count: *mut usize,
limit: bool,
maxItems: usize,
) -> *mut u64;
}
unsafe extern "C" {
pub fn BNGetTypeReferencesForTypeField(
view: *mut BNBinaryView,
type_: *mut BNQualifiedName,
offset: u64,
count: *mut usize,
limit: bool,
maxItems: usize,
) -> *mut BNTypeReferenceSource;
}
unsafe extern "C" {
pub fn BNGetAllReferencesForType(
view: *mut BNBinaryView,
type_: *mut BNQualifiedName,
limit: bool,
maxItems: usize,
) -> BNAllTypeReferences;
}
unsafe extern "C" {
pub fn BNFreeAllTypeReferences(refs: *mut BNAllTypeReferences);
}
unsafe extern "C" {
pub fn BNGetAllReferencesForTypeField(
view: *mut BNBinaryView,
type_: *mut BNQualifiedName,
offset: u64,
limit: bool,
maxItems: usize,
) -> BNAllTypeFieldReferences;
}
unsafe extern "C" {
pub fn BNFreeAllTypeFieldReferences(refs: *mut BNAllTypeFieldReferences);
}
unsafe extern "C" {
pub fn BNGetCodeReferencesForTypeFrom(
view: *mut BNBinaryView,
addr: *mut BNReferenceSource,
count: *mut usize,
) -> *mut BNTypeReferenceSource;
}
unsafe extern "C" {
pub fn BNGetCodeReferencesForTypeFromInRange(
view: *mut BNBinaryView,
addr: *mut BNReferenceSource,
len: u64,
count: *mut usize,
) -> *mut BNTypeReferenceSource;
}
unsafe extern "C" {
pub fn BNGetCodeReferencesForTypeFieldsFrom(
view: *mut BNBinaryView,
addr: *mut BNReferenceSource,
count: *mut usize,
) -> *mut BNTypeReferenceSource;
}
unsafe extern "C" {
pub fn BNGetCodeReferencesForTypeFieldsFromInRange(
view: *mut BNBinaryView,
addr: *mut BNReferenceSource,
len: u64,
count: *mut usize,
) -> *mut BNTypeReferenceSource;
}
unsafe extern "C" {
pub fn BNGetAllFieldsReferenced(
view: *mut BNBinaryView,
type_: *mut BNQualifiedName,
count: *mut usize,
) -> *mut u64;
}
unsafe extern "C" {
pub fn BNGetAllSizesReferenced(
view: *mut BNBinaryView,
type_: *mut BNQualifiedName,
count: *mut usize,
) -> *mut BNTypeFieldReferenceSizeInfo;
}
unsafe extern "C" {
pub fn BNGetAllTypesReferenced(
view: *mut BNBinaryView,
type_: *mut BNQualifiedName,
count: *mut usize,
) -> *mut BNTypeFieldReferenceTypeInfo;
}
unsafe extern "C" {
pub fn BNGetSizesReferenced(
view: *mut BNBinaryView,
type_: *mut BNQualifiedName,
offset: u64,
count: *mut usize,
) -> *mut usize;
}
unsafe extern "C" {
pub fn BNGetTypesReferenced(
view: *mut BNBinaryView,
type_: *mut BNQualifiedName,
offset: u64,
count: *mut usize,
) -> *mut BNTypeWithConfidence;
}
unsafe extern "C" {
pub fn BNGetOutgoingDirectTypeReferences(
view: *mut BNBinaryView,
type_: *mut BNQualifiedName,
count: *mut usize,
) -> *mut BNQualifiedName;
}
unsafe extern "C" {
pub fn BNGetOutgoingRecursiveTypeReferences(
view: *mut BNBinaryView,
types: *mut BNQualifiedName,
typeCount: usize,
count: *mut usize,
) -> *mut BNQualifiedName;
}
unsafe extern "C" {
pub fn BNGetIncomingDirectTypeReferences(
view: *mut BNBinaryView,
type_: *mut BNQualifiedName,
count: *mut usize,
) -> *mut BNQualifiedName;
}
unsafe extern "C" {
pub fn BNGetIncomingRecursiveTypeReferences(
view: *mut BNBinaryView,
types: *mut BNQualifiedName,
typeCount: usize,
count: *mut usize,
) -> *mut BNQualifiedName;
}
unsafe extern "C" {
pub fn BNRegisterGlobalFunctionRecognizer(rec: *mut BNFunctionRecognizer);
}
unsafe extern "C" {
pub fn BNGetStringAtAddress(
view: *mut BNBinaryView,
addr: u64,
strRef: *mut BNStringReference,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetStrings(view: *mut BNBinaryView, count: *mut usize) -> *mut BNStringReference;
}
unsafe extern "C" {
pub fn BNGetStringsInRange(
view: *mut BNBinaryView,
start: u64,
len: u64,
count: *mut usize,
) -> *mut BNStringReference;
}
unsafe extern "C" {
pub fn BNFreeStringReferenceList(strings: *mut BNStringReference);
}
unsafe extern "C" {
pub fn BNGetDerivedStrings(view: *mut BNBinaryView, count: *mut usize) -> *mut BNDerivedString;
}
unsafe extern "C" {
pub fn BNGetDerivedStringCodeReferences(
view: *mut BNBinaryView,
str_: *mut BNDerivedString,
count: *mut usize,
limit: bool,
maxItems: usize,
) -> *mut BNReferenceSource;
}
unsafe extern "C" {
pub fn BNFreeDerivedStringList(strings: *mut BNDerivedString, count: usize);
}
unsafe extern "C" {
pub fn BNGetStackLayout(func: *mut BNFunction, count: *mut usize)
-> *mut BNVariableNameAndType;
}
unsafe extern "C" {
pub fn BNFreeVariableNameAndTypeList(vars: *mut BNVariableNameAndType, count: usize);
}
unsafe extern "C" {
pub fn BNCreateAutoStackVariable(
func: *mut BNFunction,
offset: i64,
type_: *mut BNTypeWithConfidence,
name: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNCreateUserStackVariable(
func: *mut BNFunction,
offset: i64,
type_: *mut BNTypeWithConfidence,
name: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNDeleteAutoStackVariable(func: *mut BNFunction, offset: i64);
}
unsafe extern "C" {
pub fn BNDeleteUserStackVariable(func: *mut BNFunction, offset: i64);
}
unsafe extern "C" {
pub fn BNGetStackVariableAtFrameOffset(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
offset: i64,
var: *mut BNVariableNameAndType,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetStackVariableAtFrameOffsetAfterInstruction(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
offset: i64,
var: *mut BNVariableNameAndType,
) -> bool;
}
unsafe extern "C" {
pub fn BNFreeVariableNameAndType(var: *mut BNVariableNameAndType);
}
unsafe extern "C" {
pub fn BNGetFunctionVariables(
func: *mut BNFunction,
count: *mut usize,
) -> *mut BNVariableNameAndType;
}
unsafe extern "C" {
pub fn BNCreateAutoVariable(
func: *mut BNFunction,
var: *const BNVariable,
type_: *mut BNTypeWithConfidence,
name: *const ::std::os::raw::c_char,
ignoreDisjointUses: bool,
);
}
unsafe extern "C" {
pub fn BNCreateUserVariable(
func: *mut BNFunction,
var: *const BNVariable,
type_: *mut BNTypeWithConfidence,
name: *const ::std::os::raw::c_char,
ignoreDisjointUses: bool,
);
}
unsafe extern "C" {
pub fn BNDeleteUserVariable(func: *mut BNFunction, var: *const BNVariable);
}
unsafe extern "C" {
pub fn BNIsVariableUserDefined(func: *mut BNFunction, var: *const BNVariable) -> bool;
}
unsafe extern "C" {
pub fn BNGetVariableType(func: *mut BNFunction, var: *const BNVariable)
-> BNTypeWithConfidence;
}
unsafe extern "C" {
pub fn BNGetVariableName(
func: *mut BNFunction,
var: *const BNVariable,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetVariableNameOrDefault(
func: *mut BNFunction,
var: *const BNVariable,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetLastSeenVariableNameOrDefault(
func: *mut BNFunction,
var: *const BNVariable,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNToVariableIdentifier(var: *const BNVariable) -> u64;
}
unsafe extern "C" {
pub fn BNFromVariableIdentifier(id: u64) -> BNVariable;
}
unsafe extern "C" {
pub fn BNGetFunctionVariableDeadStoreElimination(
func: *mut BNFunction,
var: *const BNVariable,
) -> BNDeadStoreElimination;
}
unsafe extern "C" {
pub fn BNSetFunctionVariableDeadStoreElimination(
func: *mut BNFunction,
var: *const BNVariable,
mode: BNDeadStoreElimination,
);
}
unsafe extern "C" {
pub fn BNGetExprFolding(func: *mut BNFunction, addr: u64) -> BNExprFolding;
}
unsafe extern "C" {
pub fn BNSetExprFolding(func: *mut BNFunction, addr: u64, mode: BNExprFolding);
}
unsafe extern "C" {
pub fn BNIsConditionInverted(func: *mut BNFunction, addr: u64) -> bool;
}
unsafe extern "C" {
pub fn BNSetConditionInverted(func: *mut BNFunction, addr: u64, invert: bool);
}
unsafe extern "C" {
pub fn BNGetEarlyReturn(func: *mut BNFunction, addr: u64) -> BNEarlyReturn;
}
unsafe extern "C" {
pub fn BNSetEarlyReturn(func: *mut BNFunction, addr: u64, mode: BNEarlyReturn);
}
unsafe extern "C" {
pub fn BNGetSwitchRecovery(func: *mut BNFunction, addr: u64) -> BNSwitchRecovery;
}
unsafe extern "C" {
pub fn BNSetSwitchRecovery(func: *mut BNFunction, addr: u64, mode: BNSwitchRecovery);
}
unsafe extern "C" {
pub fn BNGetMergedVariables(func: *mut BNFunction, count: *mut usize) -> *mut BNMergedVariable;
}
unsafe extern "C" {
pub fn BNFreeMergedVariableList(vars: *mut BNMergedVariable, count: usize);
}
unsafe extern "C" {
pub fn BNMergeVariables(
func: *mut BNFunction,
target: *const BNVariable,
sources: *const BNVariable,
sourceCount: usize,
);
}
unsafe extern "C" {
pub fn BNUnmergeVariables(
func: *mut BNFunction,
target: *const BNVariable,
sources: *const BNVariable,
sourceCount: usize,
);
}
unsafe extern "C" {
pub fn BNGetSplitVariables(func: *mut BNFunction, count: *mut usize) -> *mut BNVariable;
}
unsafe extern "C" {
pub fn BNSplitVariable(func: *mut BNFunction, var: *const BNVariable);
}
unsafe extern "C" {
pub fn BNUnsplitVariable(func: *mut BNFunction, var: *const BNVariable);
}
unsafe extern "C" {
pub fn BNGetFunctionCallSites(
func: *mut BNFunction,
count: *mut usize,
) -> *mut BNReferenceSource;
}
unsafe extern "C" {
pub fn BNGetCallees(
view: *mut BNBinaryView,
callSite: *mut BNReferenceSource,
count: *mut usize,
) -> *mut u64;
}
unsafe extern "C" {
pub fn BNGetCallers(
view: *mut BNBinaryView,
callee: u64,
count: *mut usize,
) -> *mut BNReferenceSource;
}
unsafe extern "C" {
pub fn BNSetAutoIndirectBranches(
func: *mut BNFunction,
sourceArch: *mut BNArchitecture,
source: u64,
branches: *mut BNArchitectureAndAddress,
count: usize,
);
}
unsafe extern "C" {
pub fn BNSetUserIndirectBranches(
func: *mut BNFunction,
sourceArch: *mut BNArchitecture,
source: u64,
branches: *mut BNArchitectureAndAddress,
count: usize,
);
}
unsafe extern "C" {
pub fn BNSetGuidedSourceBlocks(
func: *mut BNFunction,
addresses: *mut BNArchitectureAndAddress,
count: usize,
);
}
unsafe extern "C" {
pub fn BNAddGuidedSourceBlocks(
func: *mut BNFunction,
addresses: *mut BNArchitectureAndAddress,
count: usize,
);
}
unsafe extern "C" {
pub fn BNRemoveGuidedSourceBlocks(
func: *mut BNFunction,
addresses: *mut BNArchitectureAndAddress,
count: usize,
);
}
unsafe extern "C" {
pub fn BNIsGuidedSourceBlock(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetGuidedSourceBlocks(
func: *mut BNFunction,
count: *mut usize,
) -> *mut BNArchitectureAndAddress;
}
unsafe extern "C" {
pub fn BNHasGuidedSourceBlocks(func: *mut BNFunction) -> bool;
}
unsafe extern "C" {
pub fn BNFreeArchitectureAndAddressList(addresses: *mut BNArchitectureAndAddress);
}
unsafe extern "C" {
pub fn BNGetIndirectBranches(
func: *mut BNFunction,
count: *mut usize,
) -> *mut BNIndirectBranchInfo;
}
unsafe extern "C" {
pub fn BNGetIndirectBranchesAt(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
count: *mut usize,
) -> *mut BNIndirectBranchInfo;
}
unsafe extern "C" {
pub fn BNFreeIndirectBranchList(branches: *mut BNIndirectBranchInfo);
}
unsafe extern "C" {
pub fn BNGetCalleeForAnalysis(
func: *mut BNFunction,
platform: *mut BNPlatform,
addr: u64,
exact: bool,
) -> *mut BNFunction;
}
unsafe extern "C" {
pub fn BNGetUnresolvedIndirectBranches(
func: *mut BNFunction,
count: *mut usize,
) -> *mut BNArchitectureAndAddress;
}
unsafe extern "C" {
pub fn BNHasUnresolvedIndirectBranches(func: *mut BNFunction) -> bool;
}
unsafe extern "C" {
pub fn BNFunctionToggleRegion(func: *mut BNFunction, hash: u64);
}
unsafe extern "C" {
pub fn BNFunctionIsRegionCollapsed(func: *mut BNFunction, hash: u64) -> bool;
}
unsafe extern "C" {
pub fn BNFunctionExpandAll(func: *mut BNFunction);
}
unsafe extern "C" {
pub fn BNFunctionCollapseRegion(func: *mut BNFunction, hash: u64);
}
unsafe extern "C" {
pub fn BNFunctionExpandRegion(func: *mut BNFunction, hash: u64);
}
unsafe extern "C" {
pub fn BNFunctionStoreMetadata(
func: *mut BNFunction,
key: *const ::std::os::raw::c_char,
value: *mut BNMetadata,
isAuto: bool,
);
}
unsafe extern "C" {
pub fn BNFunctionQueryMetadata(
func: *mut BNFunction,
key: *const ::std::os::raw::c_char,
) -> *mut BNMetadata;
}
unsafe extern "C" {
pub fn BNFunctionRemoveMetadata(func: *mut BNFunction, key: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn BNFunctionGetMetadata(func: *mut BNFunction) -> *mut BNMetadata;
}
unsafe extern "C" {
pub fn BNFunctionGetAutoMetadata(func: *mut BNFunction) -> *mut BNMetadata;
}
unsafe extern "C" {
pub fn BNSetAutoCallTypeAdjustment(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
type_: *mut BNTypeWithConfidence,
);
}
unsafe extern "C" {
pub fn BNSetUserCallTypeAdjustment(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
type_: *mut BNTypeWithConfidence,
);
}
unsafe extern "C" {
pub fn BNSetAutoCallStackAdjustment(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
adjust: i64,
confidence: u8,
);
}
unsafe extern "C" {
pub fn BNSetUserCallStackAdjustment(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
adjust: i64,
confidence: u8,
);
}
unsafe extern "C" {
pub fn BNSetAutoCallRegisterStackAdjustment(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
adjust: *mut BNRegisterStackAdjustment,
count: usize,
);
}
unsafe extern "C" {
pub fn BNSetUserCallRegisterStackAdjustment(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
adjust: *mut BNRegisterStackAdjustment,
count: usize,
);
}
unsafe extern "C" {
pub fn BNSetAutoCallRegisterStackAdjustmentForRegisterStack(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
regStack: u32,
adjust: i32,
confidence: u8,
);
}
unsafe extern "C" {
pub fn BNSetUserCallRegisterStackAdjustmentForRegisterStack(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
regStack: u32,
adjust: i32,
confidence: u8,
);
}
unsafe extern "C" {
pub fn BNGetCallTypeAdjustment(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
) -> BNTypeWithConfidence;
}
unsafe extern "C" {
pub fn BNGetCallStackAdjustment(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
) -> BNOffsetWithConfidence;
}
unsafe extern "C" {
pub fn BNGetCallRegisterStackAdjustment(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
count: *mut usize,
) -> *mut BNRegisterStackAdjustment;
}
unsafe extern "C" {
pub fn BNGetCallRegisterStackAdjustmentForRegisterStack(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
regStack: u32,
) -> BNRegisterStackAdjustment;
}
unsafe extern "C" {
pub fn BNIsCallInstruction(func: *mut BNFunction, arch: *mut BNArchitecture, addr: u64)
-> bool;
}
unsafe extern "C" {
pub fn BNGetFunctionBlockAnnotations(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
count: *mut usize,
) -> *mut BNInstructionTextLine;
}
unsafe extern "C" {
pub fn BNGetIntegerConstantDisplayType(
func: *mut BNFunction,
arch: *mut BNArchitecture,
instrAddr: u64,
value: u64,
operand: usize,
) -> BNIntegerDisplayType;
}
unsafe extern "C" {
pub fn BNSetIntegerConstantDisplayType(
func: *mut BNFunction,
arch: *mut BNArchitecture,
instrAddr: u64,
value: u64,
operand: usize,
type_: BNIntegerDisplayType,
typeID: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNGetIntegerConstantDisplayTypeEnumerationType(
func: *mut BNFunction,
arch: *mut BNArchitecture,
instrAddr: u64,
value: u64,
operand: usize,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNIsFunctionTooLarge(func: *mut BNFunction) -> bool;
}
unsafe extern "C" {
pub fn BNIsFunctionAnalysisSkipped(func: *mut BNFunction) -> bool;
}
unsafe extern "C" {
pub fn BNGetAnalysisSkipReason(func: *mut BNFunction) -> BNAnalysisSkipReason;
}
unsafe extern "C" {
pub fn BNGetFunctionAnalysisSkipOverride(
func: *mut BNFunction,
) -> BNFunctionAnalysisSkipOverride;
}
unsafe extern "C" {
pub fn BNSetFunctionAnalysisSkipOverride(
func: *mut BNFunction,
skip: BNFunctionAnalysisSkipOverride,
);
}
unsafe extern "C" {
pub fn BNGetGotoLabelName(func: *mut BNFunction, labelId: u64) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNSetUserGotoLabelName(
func: *mut BNFunction,
labelId: u64,
name: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
#[doc = " BNAnalyzeBasicBlockContext operations"]
pub fn BNAnalyzeBasicBlocksContextCreateBasicBlock(
abb: *mut BNBasicBlockAnalysisContext,
arch: *mut BNArchitecture,
addr: u64,
) -> *mut BNBasicBlock;
}
unsafe extern "C" {
pub fn BNAnalyzeBasicBlocksContextAddBasicBlockToFunction(
abb: *mut BNBasicBlockAnalysisContext,
block: *mut BNBasicBlock,
);
}
unsafe extern "C" {
pub fn BNAnalyzeBasicBlocksContextFinalize(abb: *mut BNBasicBlockAnalysisContext);
}
unsafe extern "C" {
pub fn BNAnalyzeBasicBlocksContextAddTempReference(
abb: *mut BNBasicBlockAnalysisContext,
target: *mut BNFunction,
);
}
unsafe extern "C" {
pub fn BNAnalyzeBasicBlocksContextSetDirectCodeReferences(
abb: *mut BNBasicBlockAnalysisContext,
sources: *mut BNArchitectureAndAddress,
targets: *mut u64,
count: usize,
);
}
unsafe extern "C" {
pub fn BNAnalyzeBasicBlocksContextSetDirectNoReturnCalls(
abb: *mut BNBasicBlockAnalysisContext,
sources: *mut BNArchitectureAndAddress,
count: usize,
);
}
unsafe extern "C" {
pub fn BNAnalyzeBasicBlocksContextSetContextualFunctionReturns(
abb: *mut BNBasicBlockAnalysisContext,
sources: *mut BNArchitectureAndAddress,
values: *mut bool,
count: usize,
);
}
unsafe extern "C" {
pub fn BNAnalyzeBasicBlocksContextSetHaltedDisassemblyAddresses(
abb: *mut BNBasicBlockAnalysisContext,
sources: *mut BNArchitectureAndAddress,
count: usize,
);
}
unsafe extern "C" {
pub fn BNAnalyzeBasicBlocksContextSetInlinedUnresolvedIndirectBranches(
abb: *mut BNBasicBlockAnalysisContext,
locations: *mut BNArchitectureAndAddress,
count: usize,
);
}
unsafe extern "C" {
pub fn BNGetParametersForAnalysis(view: *mut BNBinaryView) -> BNAnalysisParameters;
}
unsafe extern "C" {
pub fn BNSetParametersForAnalysis(view: *mut BNBinaryView, params: BNAnalysisParameters);
}
unsafe extern "C" {
pub fn BNGetMaxFunctionSizeForAnalysis(view: *mut BNBinaryView) -> u64;
}
unsafe extern "C" {
pub fn BNSetMaxFunctionSizeForAnalysis(view: *mut BNBinaryView, size: u64);
}
unsafe extern "C" {
pub fn BNGetNewAutoFunctionAnalysisSuppressed(view: *mut BNBinaryView) -> bool;
}
unsafe extern "C" {
pub fn BNSetNewAutoFunctionAnalysisSuppressed(view: *mut BNBinaryView, suppress: bool);
}
unsafe extern "C" {
pub fn BNAddAnalysisCompletionEvent(
view: *mut BNBinaryView,
ctxt: *mut ::std::os::raw::c_void,
callback: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
) -> *mut BNAnalysisCompletionEvent;
}
unsafe extern "C" {
pub fn BNNewAnalysisCompletionEventReference(
event: *mut BNAnalysisCompletionEvent,
) -> *mut BNAnalysisCompletionEvent;
}
unsafe extern "C" {
pub fn BNFreeAnalysisCompletionEvent(event: *mut BNAnalysisCompletionEvent);
}
unsafe extern "C" {
pub fn BNCancelAnalysisCompletionEvent(event: *mut BNAnalysisCompletionEvent);
}
unsafe extern "C" {
pub fn BNShouldSkipTargetAnalysis(
view: *mut BNBinaryView,
source: *mut BNArchitectureAndAddress,
sourceFunc: *mut BNFunction,
sourceEnd: u64,
target: *mut BNArchitectureAndAddress,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetAnalysisInfo(view: *mut BNBinaryView) -> *mut BNAnalysisInfo;
}
unsafe extern "C" {
pub fn BNFreeAnalysisInfo(info: *mut BNAnalysisInfo);
}
unsafe extern "C" {
pub fn BNGetAnalysisProgress(view: *mut BNBinaryView) -> BNAnalysisProgress;
}
unsafe extern "C" {
pub fn BNGetAnalysisState(view: *mut BNBinaryView) -> BNAnalysisState;
}
unsafe extern "C" {
pub fn BNGetBackgroundAnalysisTask(view: *mut BNBinaryView) -> *mut BNBackgroundTask;
}
unsafe extern "C" {
pub fn BNGetNextFunctionStartAfterAddress(view: *mut BNBinaryView, addr: u64) -> u64;
}
unsafe extern "C" {
pub fn BNGetNextBasicBlockStartAfterAddress(view: *mut BNBinaryView, addr: u64) -> u64;
}
unsafe extern "C" {
pub fn BNGetNextDataAfterAddress(view: *mut BNBinaryView, addr: u64) -> u64;
}
unsafe extern "C" {
pub fn BNGetNextDataVariableStartAfterAddress(view: *mut BNBinaryView, addr: u64) -> u64;
}
unsafe extern "C" {
pub fn BNGetPreviousFunctionStartBeforeAddress(view: *mut BNBinaryView, addr: u64) -> u64;
}
unsafe extern "C" {
pub fn BNGetPreviousBasicBlockStartBeforeAddress(view: *mut BNBinaryView, addr: u64) -> u64;
}
unsafe extern "C" {
pub fn BNGetPreviousBasicBlockEndBeforeAddress(view: *mut BNBinaryView, addr: u64) -> u64;
}
unsafe extern "C" {
pub fn BNGetPreviousDataBeforeAddress(view: *mut BNBinaryView, addr: u64) -> u64;
}
unsafe extern "C" {
pub fn BNGetPreviousDataVariableStartBeforeAddress(view: *mut BNBinaryView, addr: u64) -> u64;
}
unsafe extern "C" {
pub fn BNCreateLinearViewDisassembly(
view: *mut BNBinaryView,
settings: *mut BNDisassemblySettings,
) -> *mut BNLinearViewObject;
}
unsafe extern "C" {
pub fn BNCreateLinearViewLiftedIL(
view: *mut BNBinaryView,
settings: *mut BNDisassemblySettings,
) -> *mut BNLinearViewObject;
}
unsafe extern "C" {
pub fn BNCreateLinearViewLowLevelIL(
view: *mut BNBinaryView,
settings: *mut BNDisassemblySettings,
) -> *mut BNLinearViewObject;
}
unsafe extern "C" {
pub fn BNCreateLinearViewLowLevelILSSAForm(
view: *mut BNBinaryView,
settings: *mut BNDisassemblySettings,
) -> *mut BNLinearViewObject;
}
unsafe extern "C" {
pub fn BNCreateLinearViewMediumLevelIL(
view: *mut BNBinaryView,
settings: *mut BNDisassemblySettings,
) -> *mut BNLinearViewObject;
}
unsafe extern "C" {
pub fn BNCreateLinearViewMediumLevelILSSAForm(
view: *mut BNBinaryView,
settings: *mut BNDisassemblySettings,
) -> *mut BNLinearViewObject;
}
unsafe extern "C" {
pub fn BNCreateLinearViewMappedMediumLevelIL(
view: *mut BNBinaryView,
settings: *mut BNDisassemblySettings,
) -> *mut BNLinearViewObject;
}
unsafe extern "C" {
pub fn BNCreateLinearViewMappedMediumLevelILSSAForm(
view: *mut BNBinaryView,
settings: *mut BNDisassemblySettings,
) -> *mut BNLinearViewObject;
}
unsafe extern "C" {
pub fn BNCreateLinearViewHighLevelIL(
view: *mut BNBinaryView,
settings: *mut BNDisassemblySettings,
) -> *mut BNLinearViewObject;
}
unsafe extern "C" {
pub fn BNCreateLinearViewHighLevelILSSAForm(
view: *mut BNBinaryView,
settings: *mut BNDisassemblySettings,
) -> *mut BNLinearViewObject;
}
unsafe extern "C" {
pub fn BNCreateLinearViewLanguageRepresentation(
view: *mut BNBinaryView,
settings: *mut BNDisassemblySettings,
language: *const ::std::os::raw::c_char,
) -> *mut BNLinearViewObject;
}
unsafe extern "C" {
pub fn BNCreateLinearViewDataOnly(
view: *mut BNBinaryView,
settings: *mut BNDisassemblySettings,
) -> *mut BNLinearViewObject;
}
unsafe extern "C" {
pub fn BNCreateLinearViewSingleFunctionDisassembly(
func: *mut BNFunction,
settings: *mut BNDisassemblySettings,
) -> *mut BNLinearViewObject;
}
unsafe extern "C" {
pub fn BNCreateLinearViewSingleFunctionLiftedIL(
func: *mut BNFunction,
settings: *mut BNDisassemblySettings,
) -> *mut BNLinearViewObject;
}
unsafe extern "C" {
pub fn BNCreateLinearViewSingleFunctionLowLevelIL(
func: *mut BNFunction,
settings: *mut BNDisassemblySettings,
) -> *mut BNLinearViewObject;
}
unsafe extern "C" {
pub fn BNCreateLinearViewSingleFunctionLowLevelILSSAForm(
func: *mut BNFunction,
settings: *mut BNDisassemblySettings,
) -> *mut BNLinearViewObject;
}
unsafe extern "C" {
pub fn BNCreateLinearViewSingleFunctionMediumLevelIL(
func: *mut BNFunction,
settings: *mut BNDisassemblySettings,
) -> *mut BNLinearViewObject;
}
unsafe extern "C" {
pub fn BNCreateLinearViewSingleFunctionMediumLevelILSSAForm(
func: *mut BNFunction,
settings: *mut BNDisassemblySettings,
) -> *mut BNLinearViewObject;
}
unsafe extern "C" {
pub fn BNCreateLinearViewSingleFunctionMappedMediumLevelIL(
func: *mut BNFunction,
settings: *mut BNDisassemblySettings,
) -> *mut BNLinearViewObject;
}
unsafe extern "C" {
pub fn BNCreateLinearViewSingleFunctionMappedMediumLevelILSSAForm(
func: *mut BNFunction,
settings: *mut BNDisassemblySettings,
) -> *mut BNLinearViewObject;
}
unsafe extern "C" {
pub fn BNCreateLinearViewSingleFunctionHighLevelIL(
func: *mut BNFunction,
settings: *mut BNDisassemblySettings,
) -> *mut BNLinearViewObject;
}
unsafe extern "C" {
pub fn BNCreateLinearViewSingleFunctionHighLevelILSSAForm(
func: *mut BNFunction,
settings: *mut BNDisassemblySettings,
) -> *mut BNLinearViewObject;
}
unsafe extern "C" {
pub fn BNCreateLinearViewSingleFunctionLanguageRepresentation(
func: *mut BNFunction,
settings: *mut BNDisassemblySettings,
language: *const ::std::os::raw::c_char,
) -> *mut BNLinearViewObject;
}
unsafe extern "C" {
pub fn BNNewLinearViewObjectReference(obj: *mut BNLinearViewObject) -> *mut BNLinearViewObject;
}
unsafe extern "C" {
pub fn BNFreeLinearViewObject(obj: *mut BNLinearViewObject);
}
unsafe extern "C" {
pub fn BNGetFirstLinearViewObjectChild(obj: *mut BNLinearViewObject)
-> *mut BNLinearViewObject;
}
unsafe extern "C" {
pub fn BNGetLastLinearViewObjectChild(obj: *mut BNLinearViewObject) -> *mut BNLinearViewObject;
}
unsafe extern "C" {
pub fn BNGetPreviousLinearViewObjectChild(
parent: *mut BNLinearViewObject,
child: *mut BNLinearViewObject,
) -> *mut BNLinearViewObject;
}
unsafe extern "C" {
pub fn BNGetNextLinearViewObjectChild(
parent: *mut BNLinearViewObject,
child: *mut BNLinearViewObject,
) -> *mut BNLinearViewObject;
}
unsafe extern "C" {
pub fn BNGetLinearViewObjectChildForAddress(
parent: *mut BNLinearViewObject,
addr: u64,
) -> *mut BNLinearViewObject;
}
unsafe extern "C" {
pub fn BNGetLinearViewObjectChildForIdentifier(
parent: *mut BNLinearViewObject,
id: *mut BNLinearViewObjectIdentifier,
) -> *mut BNLinearViewObject;
}
unsafe extern "C" {
pub fn BNGetLinearViewObjectLines(
obj: *mut BNLinearViewObject,
prev: *mut BNLinearViewObject,
next: *mut BNLinearViewObject,
count: *mut usize,
) -> *mut BNLinearDisassemblyLine;
}
unsafe extern "C" {
pub fn BNFreeLinearDisassemblyLines(lines: *mut BNLinearDisassemblyLine, count: usize);
}
unsafe extern "C" {
pub fn BNGetLinearViewObjectStart(obj: *mut BNLinearViewObject) -> u64;
}
unsafe extern "C" {
pub fn BNGetLinearViewObjectEnd(obj: *mut BNLinearViewObject) -> u64;
}
unsafe extern "C" {
pub fn BNGetLinearViewObjectIdentifier(
obj: *mut BNLinearViewObject,
) -> BNLinearViewObjectIdentifier;
}
unsafe extern "C" {
pub fn BNFreeLinearViewObjectIdentifier(id: *mut BNLinearViewObjectIdentifier);
}
unsafe extern "C" {
pub fn BNCompareLinearViewObjectChildren(
obj: *mut BNLinearViewObject,
a: *mut BNLinearViewObject,
b: *mut BNLinearViewObject,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn BNGetLinearViewObjectOrderingIndexTotal(obj: *mut BNLinearViewObject) -> u64;
}
unsafe extern "C" {
pub fn BNGetLinearViewObjectOrderingIndexForChild(
parent: *mut BNLinearViewObject,
child: *mut BNLinearViewObject,
) -> u64;
}
unsafe extern "C" {
pub fn BNGetLinearViewObjectChildForOrderingIndex(
parent: *mut BNLinearViewObject,
idx: u64,
) -> *mut BNLinearViewObject;
}
unsafe extern "C" {
pub fn BNCreateLinearViewCursor(root: *mut BNLinearViewObject) -> *mut BNLinearViewCursor;
}
unsafe extern "C" {
pub fn BNDuplicateLinearViewCursor(cursor: *mut BNLinearViewCursor) -> *mut BNLinearViewCursor;
}
unsafe extern "C" {
pub fn BNNewLinearViewCursorReference(
cursor: *mut BNLinearViewCursor,
) -> *mut BNLinearViewCursor;
}
unsafe extern "C" {
pub fn BNFreeLinearViewCursor(cursor: *mut BNLinearViewCursor);
}
unsafe extern "C" {
pub fn BNIsLinearViewCursorBeforeBegin(cursor: *mut BNLinearViewCursor) -> bool;
}
unsafe extern "C" {
pub fn BNIsLinearViewCursorAfterEnd(cursor: *mut BNLinearViewCursor) -> bool;
}
unsafe extern "C" {
pub fn BNGetLinearViewCursorCurrentObject(
cursor: *mut BNLinearViewCursor,
) -> *mut BNLinearViewObject;
}
unsafe extern "C" {
pub fn BNGetLinearViewCursorPath(
cursor: *mut BNLinearViewCursor,
count: *mut usize,
) -> *mut BNLinearViewObjectIdentifier;
}
unsafe extern "C" {
pub fn BNFreeLinearViewCursorPath(objs: *mut BNLinearViewObjectIdentifier, count: usize);
}
unsafe extern "C" {
pub fn BNGetLinearViewCursorPathObjects(
cursor: *mut BNLinearViewCursor,
count: *mut usize,
) -> *mut *mut BNLinearViewObject;
}
unsafe extern "C" {
pub fn BNFreeLinearViewCursorPathObjects(objs: *mut *mut BNLinearViewObject, count: usize);
}
unsafe extern "C" {
pub fn BNGetLinearViewCursorOrderingIndex(cursor: *mut BNLinearViewCursor) -> BNAddressRange;
}
unsafe extern "C" {
pub fn BNGetLinearViewCursorOrderingIndexTotal(cursor: *mut BNLinearViewCursor) -> u64;
}
unsafe extern "C" {
pub fn BNSeekLinearViewCursorToBegin(cursor: *mut BNLinearViewCursor);
}
unsafe extern "C" {
pub fn BNSeekLinearViewCursorToEnd(cursor: *mut BNLinearViewCursor);
}
unsafe extern "C" {
pub fn BNSeekLinearViewCursorToAddress(cursor: *mut BNLinearViewCursor, addr: u64);
}
unsafe extern "C" {
pub fn BNSeekLinearViewCursorToPath(
cursor: *mut BNLinearViewCursor,
ids: *mut BNLinearViewObjectIdentifier,
count: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNSeekLinearViewCursorToPathAndAddress(
cursor: *mut BNLinearViewCursor,
ids: *mut BNLinearViewObjectIdentifier,
count: usize,
addr: u64,
) -> bool;
}
unsafe extern "C" {
pub fn BNSeekLinearViewCursorToCursorPath(
cursor: *mut BNLinearViewCursor,
path: *mut BNLinearViewCursor,
) -> bool;
}
unsafe extern "C" {
pub fn BNSeekLinearViewCursorToCursorPathAndAddress(
cursor: *mut BNLinearViewCursor,
path: *mut BNLinearViewCursor,
addr: u64,
) -> bool;
}
unsafe extern "C" {
pub fn BNSeekLinearViewCursorToOrderingIndex(cursor: *mut BNLinearViewCursor, idx: u64);
}
unsafe extern "C" {
pub fn BNLinearViewCursorNext(cursor: *mut BNLinearViewCursor) -> bool;
}
unsafe extern "C" {
pub fn BNLinearViewCursorPrevious(cursor: *mut BNLinearViewCursor) -> bool;
}
unsafe extern "C" {
pub fn BNGetLinearViewCursorLines(
cursor: *mut BNLinearViewCursor,
count: *mut usize,
) -> *mut BNLinearDisassemblyLine;
}
unsafe extern "C" {
pub fn BNCompareLinearViewCursors(
a: *mut BNLinearViewCursor,
b: *mut BNLinearViewCursor,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn BNGetLinearViewCursorRenderLayers(
cursor: *mut BNLinearViewCursor,
count: *mut usize,
) -> *mut *mut BNRenderLayer;
}
unsafe extern "C" {
pub fn BNAddLinearViewCursorRenderLayer(
cursor: *mut BNLinearViewCursor,
layer: *mut BNRenderLayer,
);
}
unsafe extern "C" {
pub fn BNRemoveLinearViewCursorRenderLayer(
cursor: *mut BNLinearViewCursor,
layer: *mut BNRenderLayer,
);
}
unsafe extern "C" {
pub fn BNDefineDataVariable(
view: *mut BNBinaryView,
addr: u64,
type_: *mut BNTypeWithConfidence,
);
}
unsafe extern "C" {
pub fn BNDefineUserDataVariable(
view: *mut BNBinaryView,
addr: u64,
type_: *mut BNTypeWithConfidence,
);
}
unsafe extern "C" {
pub fn BNUndefineDataVariable(view: *mut BNBinaryView, addr: u64, blacklist: bool);
}
unsafe extern "C" {
pub fn BNUndefineUserDataVariable(view: *mut BNBinaryView, addr: u64);
}
unsafe extern "C" {
pub fn BNGetDataVariables(view: *mut BNBinaryView, count: *mut usize) -> *mut BNDataVariable;
}
unsafe extern "C" {
pub fn BNFreeDataVariable(var: *mut BNDataVariable);
}
unsafe extern "C" {
pub fn BNFreeDataVariables(vars: *mut BNDataVariable, count: usize);
}
unsafe extern "C" {
pub fn BNFreeDataVariableAndName(var: *mut BNDataVariableAndName);
}
unsafe extern "C" {
pub fn BNFreeDataVariablesAndName(vars: *mut BNDataVariableAndName, count: usize);
}
unsafe extern "C" {
pub fn BNFreeDataVariableAndNameAndDebugParserList(
vars: *mut BNDataVariableAndNameAndDebugParser,
count: usize,
);
}
unsafe extern "C" {
pub fn BNGetDataVariableAtAddress(
view: *mut BNBinaryView,
addr: u64,
var: *mut BNDataVariable,
) -> bool;
}
unsafe extern "C" {
pub fn BNParseTypeString(
view: *mut BNBinaryView,
text: *const ::std::os::raw::c_char,
result: *mut BNQualifiedNameAndType,
errors: *mut *mut ::std::os::raw::c_char,
typesAllowRedefinition: *mut BNQualifiedNameList,
importDepencencies: bool,
) -> bool;
}
unsafe extern "C" {
pub fn BNParseTypesString(
view: *mut BNBinaryView,
text: *const ::std::os::raw::c_char,
options: *const *const ::std::os::raw::c_char,
optionCount: usize,
includeDirs: *const *const ::std::os::raw::c_char,
includeDirCount: usize,
result: *mut BNTypeParserResult,
errors: *mut *mut ::std::os::raw::c_char,
typesAllowRedefinition: *mut BNQualifiedNameList,
importDepencencies: bool,
) -> bool;
}
unsafe extern "C" {
pub fn BNFreeQualifiedNameAndType(obj: *mut BNQualifiedNameAndType);
}
unsafe extern "C" {
pub fn BNFreeQualifiedNameAndTypeArray(obj: *mut BNQualifiedNameAndType, count: usize);
}
unsafe extern "C" {
pub fn BNFreeQualifiedNameTypeAndId(obj: *mut BNQualifiedNameTypeAndId);
}
unsafe extern "C" {
pub fn BNEscapeTypeName(
name: *const ::std::os::raw::c_char,
escaping: BNTokenEscapingType,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNUnescapeTypeName(
name: *const ::std::os::raw::c_char,
escaping: BNTokenEscapingType,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetAnalysisTypeList(
view: *mut BNBinaryView,
count: *mut usize,
) -> *mut BNQualifiedNameAndType;
}
unsafe extern "C" {
pub fn BNGetAnalysisDependencySortedTypeList(
view: *mut BNBinaryView,
count: *mut usize,
) -> *mut BNQualifiedNameAndType;
}
unsafe extern "C" {
pub fn BNFreeTypeAndNameList(types: *mut BNQualifiedNameAndType, count: usize);
}
unsafe extern "C" {
pub fn BNFreeTypeIdList(types: *mut BNQualifiedNameTypeAndId, count: usize);
}
unsafe extern "C" {
pub fn BNGetAnalysisTypeNames(
view: *mut BNBinaryView,
count: *mut usize,
matching: *const ::std::os::raw::c_char,
) -> *mut BNQualifiedName;
}
unsafe extern "C" {
pub fn BNFreeTypeNameList(names: *mut BNQualifiedName, count: usize);
}
unsafe extern "C" {
pub fn BNGetAnalysisTypeContainer(view: *mut BNBinaryView) -> *mut BNTypeContainer;
}
unsafe extern "C" {
pub fn BNGetAnalysisAutoTypeContainer(view: *mut BNBinaryView) -> *mut BNTypeContainer;
}
unsafe extern "C" {
pub fn BNGetAnalysisUserTypeContainer(view: *mut BNBinaryView) -> *mut BNTypeContainer;
}
unsafe extern "C" {
pub fn BNGetAnalysisTypeByName(
view: *mut BNBinaryView,
name: *mut BNQualifiedName,
) -> *mut BNType;
}
unsafe extern "C" {
pub fn BNGetAnalysisTypeByRef(
view: *mut BNBinaryView,
ref_: *mut BNNamedTypeReference,
) -> *mut BNType;
}
unsafe extern "C" {
pub fn BNGetAnalysisTypeById(
view: *mut BNBinaryView,
id: *const ::std::os::raw::c_char,
) -> *mut BNType;
}
unsafe extern "C" {
pub fn BNGetAnalysisTypeId(
view: *mut BNBinaryView,
name: *mut BNQualifiedName,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetAnalysisTypeNameById(
view: *mut BNBinaryView,
id: *const ::std::os::raw::c_char,
) -> BNQualifiedName;
}
unsafe extern "C" {
pub fn BNIsAnalysisTypeAutoDefined(view: *mut BNBinaryView, name: *mut BNQualifiedName)
-> bool;
}
unsafe extern "C" {
pub fn BNDefineAnalysisType(
view: *mut BNBinaryView,
id: *const ::std::os::raw::c_char,
defaultName: *mut BNQualifiedName,
type_: *mut BNType,
) -> BNQualifiedName;
}
unsafe extern "C" {
pub fn BNDefineUserAnalysisType(
view: *mut BNBinaryView,
name: *mut BNQualifiedName,
type_: *mut BNType,
);
}
unsafe extern "C" {
pub fn BNDefineAnalysisTypes(
view: *mut BNBinaryView,
types: *mut BNQualifiedNameTypeAndId,
count: usize,
progress: BNProgressFunction,
progressContext: *mut ::std::os::raw::c_void,
resultIds: *mut *mut *mut ::std::os::raw::c_char,
resultNames: *mut *mut BNQualifiedName,
) -> usize;
}
unsafe extern "C" {
pub fn BNDefineUserAnalysisTypes(
view: *mut BNBinaryView,
types: *mut BNQualifiedNameAndType,
count: usize,
progress: BNProgressFunction,
progressContext: *mut ::std::os::raw::c_void,
);
}
unsafe extern "C" {
pub fn BNUndefineAnalysisType(view: *mut BNBinaryView, id: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn BNUndefineUserAnalysisType(view: *mut BNBinaryView, name: *mut BNQualifiedName);
}
unsafe extern "C" {
pub fn BNRenameAnalysisType(
view: *mut BNBinaryView,
oldName: *mut BNQualifiedName,
newName: *mut BNQualifiedName,
);
}
unsafe extern "C" {
pub fn BNGetAnalysisSystemCallType(
view: *mut BNBinaryView,
platform: *mut BNPlatform,
id: u32,
) -> *mut BNType;
}
unsafe extern "C" {
pub fn BNGetAnalysisSystemCallName(
view: *mut BNBinaryView,
platform: *mut BNPlatform,
id: u32,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGenerateAutoTypeId(
source: *const ::std::os::raw::c_char,
name: *mut BNQualifiedName,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGenerateAutoPlatformTypeId(
platform: *mut BNPlatform,
name: *mut BNQualifiedName,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGenerateAutoDemangledTypeId(name: *mut BNQualifiedName)
-> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetAutoPlatformTypeIdSource(platform: *mut BNPlatform) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetAutoDemangledTypeIdSource() -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGenerateAutoDebugTypeId(name: *mut BNQualifiedName) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetAutoDebugTypeIdSource() -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNRegisterPlatformTypes(view: *mut BNBinaryView, platform: *mut BNPlatform);
}
unsafe extern "C" {
pub fn BNLookupImportedTypePlatform(
view: *mut BNBinaryView,
typeName: *const BNQualifiedName,
platform: *mut *mut BNPlatform,
resultName: *mut BNQualifiedName,
) -> bool;
}
unsafe extern "C" {
pub fn BNReanalyzeAllFunctions(view: *mut BNBinaryView);
}
unsafe extern "C" {
pub fn BNAnalyzeFunction(func: *mut BNFunction);
}
unsafe extern "C" {
pub fn BNReanalyzeFunction(func: *mut BNFunction, type_: BNFunctionUpdateType);
}
unsafe extern "C" {
pub fn BNMarkUpdatesRequired(func: *mut BNFunction, type_: BNFunctionUpdateType);
}
unsafe extern "C" {
pub fn BNMarkCallerUpdatesRequired(func: *mut BNFunction, type_: BNFunctionUpdateType);
}
unsafe extern "C" {
pub fn BNGetInstructionHighlight(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
) -> BNHighlightColor;
}
unsafe extern "C" {
pub fn BNSetAutoInstructionHighlight(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
color: BNHighlightColor,
);
}
unsafe extern "C" {
pub fn BNSetUserInstructionHighlight(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
color: BNHighlightColor,
);
}
unsafe extern "C" {
pub fn BNGetBasicBlockHighlight(block: *mut BNBasicBlock) -> BNHighlightColor;
}
unsafe extern "C" {
pub fn BNSetAutoBasicBlockHighlight(block: *mut BNBasicBlock, color: BNHighlightColor);
}
unsafe extern "C" {
pub fn BNSetUserBasicBlockHighlight(block: *mut BNBasicBlock, color: BNHighlightColor);
}
unsafe extern "C" {
pub fn BNFreeTypeContainer(container: *mut BNTypeContainer);
}
unsafe extern "C" {
pub fn BNDuplicateTypeContainer(container: *mut BNTypeContainer) -> *mut BNTypeContainer;
}
unsafe extern "C" {
pub fn BNTypeContainerGetId(container: *mut BNTypeContainer) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNTypeContainerGetName(container: *mut BNTypeContainer) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNTypeContainerGetType(container: *mut BNTypeContainer) -> BNTypeContainerType;
}
unsafe extern "C" {
pub fn BNTypeContainerIsMutable(container: *mut BNTypeContainer) -> bool;
}
unsafe extern "C" {
pub fn BNTypeContainerGetPlatform(container: *mut BNTypeContainer) -> *mut BNPlatform;
}
unsafe extern "C" {
pub fn BNTypeContainerAddTypes(
container: *mut BNTypeContainer,
typeNames: *const BNQualifiedName,
types: *mut *mut BNType,
typeCount: usize,
progress: BNProgressFunction,
progressContext: *mut ::std::os::raw::c_void,
resultNames: *mut *mut BNQualifiedName,
resultIds: *mut *mut *mut ::std::os::raw::c_char,
resultCount: *mut usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNTypeContainerRenameType(
container: *mut BNTypeContainer,
typeId: *const ::std::os::raw::c_char,
newName: *const BNQualifiedName,
) -> bool;
}
unsafe extern "C" {
pub fn BNTypeContainerDeleteType(
container: *mut BNTypeContainer,
typeId: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNTypeContainerGetTypeId(
container: *mut BNTypeContainer,
typeName: *const BNQualifiedName,
result: *mut *mut ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNTypeContainerGetTypeName(
container: *mut BNTypeContainer,
typeId: *const ::std::os::raw::c_char,
result: *mut BNQualifiedName,
) -> bool;
}
unsafe extern "C" {
pub fn BNTypeContainerGetTypeById(
container: *mut BNTypeContainer,
typeId: *const ::std::os::raw::c_char,
result: *mut *mut BNType,
) -> bool;
}
unsafe extern "C" {
pub fn BNTypeContainerGetTypes(
container: *mut BNTypeContainer,
typeIds: *mut *mut *mut ::std::os::raw::c_char,
typeNames: *mut *mut BNQualifiedName,
types: *mut *mut *mut BNType,
count: *mut usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNTypeContainerGetTypeByName(
container: *mut BNTypeContainer,
typeName: *const BNQualifiedName,
result: *mut *mut BNType,
) -> bool;
}
unsafe extern "C" {
pub fn BNTypeContainerGetTypeIds(
container: *mut BNTypeContainer,
typeIds: *mut *mut *mut ::std::os::raw::c_char,
count: *mut usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNTypeContainerGetTypeNames(
container: *mut BNTypeContainer,
typeNames: *mut *mut BNQualifiedName,
count: *mut usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNTypeContainerGetTypeNamesAndIds(
container: *mut BNTypeContainer,
typeIds: *mut *mut *mut ::std::os::raw::c_char,
typeNames: *mut *mut BNQualifiedName,
count: *mut usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNTypeContainerGetTypeCount(container: *mut BNTypeContainer) -> usize;
}
unsafe extern "C" {
pub fn BNTypeContainerParseTypeString(
container: *mut BNTypeContainer,
source: *const ::std::os::raw::c_char,
importDepencencies: bool,
result: *mut BNQualifiedNameAndType,
errors: *mut *mut BNTypeParserError,
errorCount: *mut usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNTypeContainerParseTypesFromSource(
container: *mut BNTypeContainer,
source: *const ::std::os::raw::c_char,
fileName: *const ::std::os::raw::c_char,
options: *const *const ::std::os::raw::c_char,
optionCount: usize,
includeDirs: *const *const ::std::os::raw::c_char,
includeDirCount: usize,
autoTypeSource: *const ::std::os::raw::c_char,
importDepencencies: bool,
result: *mut BNTypeParserResult,
errors: *mut *mut BNTypeParserError,
errorCount: *mut usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetEmptyTypeContainer() -> *mut BNTypeContainer;
}
unsafe extern "C" {
pub fn BNCreateTagType(view: *mut BNBinaryView) -> *mut BNTagType;
}
unsafe extern "C" {
pub fn BNNewTagTypeReference(tagType: *mut BNTagType) -> *mut BNTagType;
}
unsafe extern "C" {
pub fn BNFreeTagType(tagType: *mut BNTagType);
}
unsafe extern "C" {
pub fn BNFreeTagTypeList(tagTypes: *mut *mut BNTagType, count: usize);
}
unsafe extern "C" {
pub fn BNTagTypeGetView(tagType: *mut BNTagType) -> *mut BNBinaryView;
}
unsafe extern "C" {
pub fn BNTagTypeGetId(tagType: *mut BNTagType) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNTagTypeGetName(tagType: *mut BNTagType) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNTagTypeSetName(tagType: *mut BNTagType, name: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn BNTagTypeGetIcon(tagType: *mut BNTagType) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNTagTypeSetIcon(tagType: *mut BNTagType, icon: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn BNTagTypeGetVisible(tagType: *mut BNTagType) -> bool;
}
unsafe extern "C" {
pub fn BNTagTypeSetVisible(tagType: *mut BNTagType, visible: bool);
}
unsafe extern "C" {
pub fn BNTagTypeGetType(tagType: *mut BNTagType) -> BNTagTypeType;
}
unsafe extern "C" {
pub fn BNTagTypeSetType(tagType: *mut BNTagType, type_: BNTagTypeType);
}
unsafe extern "C" {
pub fn BNCreateTag(type_: *mut BNTagType, data: *const ::std::os::raw::c_char) -> *mut BNTag;
}
unsafe extern "C" {
pub fn BNNewTagReference(tag: *mut BNTag) -> *mut BNTag;
}
unsafe extern "C" {
pub fn BNFreeTag(tag: *mut BNTag);
}
unsafe extern "C" {
pub fn BNFreeTagList(tags: *mut *mut BNTag, count: usize);
}
unsafe extern "C" {
pub fn BNTagGetId(tag: *mut BNTag) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNTagGetType(tag: *mut BNTag) -> *mut BNTagType;
}
unsafe extern "C" {
pub fn BNTagGetData(tag: *mut BNTag) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNTagSetData(tag: *mut BNTag, data: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn BNAddTagType(view: *mut BNBinaryView, tagType: *mut BNTagType);
}
unsafe extern "C" {
pub fn BNRemoveTagType(view: *mut BNBinaryView, tagType: *mut BNTagType);
}
unsafe extern "C" {
pub fn BNGetTagType(
view: *mut BNBinaryView,
name: *const ::std::os::raw::c_char,
) -> *mut BNTagType;
}
unsafe extern "C" {
pub fn BNGetTagTypeWithType(
view: *mut BNBinaryView,
name: *const ::std::os::raw::c_char,
type_: BNTagTypeType,
) -> *mut BNTagType;
}
unsafe extern "C" {
pub fn BNGetTagTypeById(
view: *mut BNBinaryView,
id: *const ::std::os::raw::c_char,
) -> *mut BNTagType;
}
unsafe extern "C" {
pub fn BNGetTagTypeByIdWithType(
view: *mut BNBinaryView,
id: *const ::std::os::raw::c_char,
type_: BNTagTypeType,
) -> *mut BNTagType;
}
unsafe extern "C" {
pub fn BNGetTagTypes(view: *mut BNBinaryView, count: *mut usize) -> *mut *mut BNTagType;
}
unsafe extern "C" {
pub fn BNAddTag(view: *mut BNBinaryView, tag: *mut BNTag, user: bool);
}
unsafe extern "C" {
pub fn BNGetTag(view: *mut BNBinaryView, tagId: *const ::std::os::raw::c_char) -> *mut BNTag;
}
unsafe extern "C" {
pub fn BNRemoveTag(view: *mut BNBinaryView, tag: *mut BNTag, user: bool);
}
unsafe extern "C" {
pub fn BNGetAllTagReferences(view: *mut BNBinaryView, count: *mut usize)
-> *mut BNTagReference;
}
unsafe extern "C" {
pub fn BNGetAllAddressTagReferences(
view: *mut BNBinaryView,
count: *mut usize,
) -> *mut BNTagReference;
}
unsafe extern "C" {
pub fn BNGetAllFunctionTagReferences(
view: *mut BNBinaryView,
count: *mut usize,
) -> *mut BNTagReference;
}
unsafe extern "C" {
pub fn BNGetAllTagReferencesOfType(
view: *mut BNBinaryView,
tagType: *mut BNTagType,
count: *mut usize,
) -> *mut BNTagReference;
}
unsafe extern "C" {
pub fn BNGetTagReferencesOfType(
view: *mut BNBinaryView,
tagType: *mut BNTagType,
count: *mut usize,
) -> *mut BNTagReference;
}
unsafe extern "C" {
pub fn BNGetDataTagReferences(
view: *mut BNBinaryView,
count: *mut usize,
) -> *mut BNTagReference;
}
unsafe extern "C" {
pub fn BNGetAutoDataTagReferences(
view: *mut BNBinaryView,
count: *mut usize,
) -> *mut BNTagReference;
}
unsafe extern "C" {
pub fn BNGetUserDataTagReferences(
view: *mut BNBinaryView,
count: *mut usize,
) -> *mut BNTagReference;
}
unsafe extern "C" {
pub fn BNRemoveTagReference(view: *mut BNBinaryView, ref_: BNTagReference);
}
unsafe extern "C" {
pub fn BNFreeTagReferences(refs: *mut BNTagReference, count: usize);
}
unsafe extern "C" {
pub fn BNGetDataTags(view: *mut BNBinaryView, addr: u64, count: *mut usize) -> *mut *mut BNTag;
}
unsafe extern "C" {
pub fn BNGetAutoDataTags(
view: *mut BNBinaryView,
addr: u64,
count: *mut usize,
) -> *mut *mut BNTag;
}
unsafe extern "C" {
pub fn BNGetUserDataTags(
view: *mut BNBinaryView,
addr: u64,
count: *mut usize,
) -> *mut *mut BNTag;
}
unsafe extern "C" {
pub fn BNGetDataTagsOfType(
view: *mut BNBinaryView,
addr: u64,
tagType: *mut BNTagType,
count: *mut usize,
) -> *mut *mut BNTag;
}
unsafe extern "C" {
pub fn BNGetAutoDataTagsOfType(
view: *mut BNBinaryView,
addr: u64,
tagType: *mut BNTagType,
count: *mut usize,
) -> *mut *mut BNTag;
}
unsafe extern "C" {
pub fn BNGetUserDataTagsOfType(
view: *mut BNBinaryView,
addr: u64,
tagType: *mut BNTagType,
count: *mut usize,
) -> *mut *mut BNTag;
}
unsafe extern "C" {
pub fn BNGetDataTagsInRange(
view: *mut BNBinaryView,
start: u64,
end: u64,
count: *mut usize,
) -> *mut BNTagReference;
}
unsafe extern "C" {
pub fn BNGetAutoDataTagsInRange(
view: *mut BNBinaryView,
start: u64,
end: u64,
count: *mut usize,
) -> *mut BNTagReference;
}
unsafe extern "C" {
pub fn BNGetUserDataTagsInRange(
view: *mut BNBinaryView,
start: u64,
end: u64,
count: *mut usize,
) -> *mut BNTagReference;
}
unsafe extern "C" {
pub fn BNAddAutoDataTag(view: *mut BNBinaryView, addr: u64, tag: *mut BNTag);
}
unsafe extern "C" {
pub fn BNRemoveAutoDataTag(view: *mut BNBinaryView, addr: u64, tag: *mut BNTag);
}
unsafe extern "C" {
pub fn BNRemoveAutoDataTagsOfType(view: *mut BNBinaryView, addr: u64, tagType: *mut BNTagType);
}
unsafe extern "C" {
pub fn BNAddUserDataTag(view: *mut BNBinaryView, addr: u64, tag: *mut BNTag);
}
unsafe extern "C" {
pub fn BNRemoveUserDataTag(view: *mut BNBinaryView, addr: u64, tag: *mut BNTag);
}
unsafe extern "C" {
pub fn BNRemoveUserDataTagsOfType(view: *mut BNBinaryView, addr: u64, tagType: *mut BNTagType);
}
unsafe extern "C" {
pub fn BNGetTagReferencesOfTypeCount(view: *mut BNBinaryView, tagType: *mut BNTagType)
-> usize;
}
unsafe extern "C" {
pub fn BNGetAllTagReferencesOfTypeCount(
view: *mut BNBinaryView,
tagType: *mut BNTagType,
) -> usize;
}
unsafe extern "C" {
pub fn BNGetAllTagReferenceTypeCounts(
view: *mut BNBinaryView,
tagTypes: *mut *mut *mut BNTagType,
counts: *mut *mut usize,
count: *mut usize,
);
}
unsafe extern "C" {
pub fn BNFreeTagReferenceTypeCounts(
tagTypes: *mut *mut BNTagType,
counts: *mut usize,
count: usize,
);
}
unsafe extern "C" {
pub fn BNGetFunctionAllTagReferences(
func: *mut BNFunction,
count: *mut usize,
) -> *mut BNTagReference;
}
unsafe extern "C" {
pub fn BNGetFunctionTagReferencesOfType(
func: *mut BNFunction,
tagType: *mut BNTagType,
count: *mut usize,
) -> *mut BNTagReference;
}
unsafe extern "C" {
pub fn BNGetAddressTagReferences(
func: *mut BNFunction,
count: *mut usize,
) -> *mut BNTagReference;
}
unsafe extern "C" {
pub fn BNGetAutoAddressTagReferences(
func: *mut BNFunction,
count: *mut usize,
) -> *mut BNTagReference;
}
unsafe extern "C" {
pub fn BNGetUserAddressTagReferences(
func: *mut BNFunction,
count: *mut usize,
) -> *mut BNTagReference;
}
unsafe extern "C" {
pub fn BNGetAddressTags(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
count: *mut usize,
) -> *mut *mut BNTag;
}
unsafe extern "C" {
pub fn BNGetAutoAddressTags(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
count: *mut usize,
) -> *mut *mut BNTag;
}
unsafe extern "C" {
pub fn BNGetUserAddressTags(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
count: *mut usize,
) -> *mut *mut BNTag;
}
unsafe extern "C" {
pub fn BNGetAddressTagsOfType(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
tagType: *mut BNTagType,
count: *mut usize,
) -> *mut *mut BNTag;
}
unsafe extern "C" {
pub fn BNGetAutoAddressTagsOfType(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
tagType: *mut BNTagType,
count: *mut usize,
) -> *mut *mut BNTag;
}
unsafe extern "C" {
pub fn BNGetUserAddressTagsOfType(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
tagType: *mut BNTagType,
count: *mut usize,
) -> *mut *mut BNTag;
}
unsafe extern "C" {
pub fn BNGetAddressTagsInRange(
func: *mut BNFunction,
arch: *mut BNArchitecture,
start: u64,
end: u64,
count: *mut usize,
) -> *mut BNTagReference;
}
unsafe extern "C" {
pub fn BNGetAutoAddressTagsInRange(
func: *mut BNFunction,
arch: *mut BNArchitecture,
start: u64,
end: u64,
count: *mut usize,
) -> *mut BNTagReference;
}
unsafe extern "C" {
pub fn BNGetUserAddressTagsInRange(
func: *mut BNFunction,
arch: *mut BNArchitecture,
start: u64,
end: u64,
count: *mut usize,
) -> *mut BNTagReference;
}
unsafe extern "C" {
pub fn BNAddAutoAddressTag(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
tag: *mut BNTag,
);
}
unsafe extern "C" {
pub fn BNRemoveAutoAddressTag(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
tag: *mut BNTag,
);
}
unsafe extern "C" {
pub fn BNRemoveAutoAddressTagsOfType(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
tagType: *mut BNTagType,
);
}
unsafe extern "C" {
pub fn BNAddUserAddressTag(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
tag: *mut BNTag,
);
}
unsafe extern "C" {
pub fn BNRemoveUserAddressTag(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
tag: *mut BNTag,
);
}
unsafe extern "C" {
pub fn BNRemoveUserAddressTagsOfType(
func: *mut BNFunction,
arch: *mut BNArchitecture,
addr: u64,
tagType: *mut BNTagType,
);
}
unsafe extern "C" {
pub fn BNGetFunctionTagReferences(
func: *mut BNFunction,
count: *mut usize,
) -> *mut BNTagReference;
}
unsafe extern "C" {
pub fn BNGetAutoFunctionTagReferences(
func: *mut BNFunction,
count: *mut usize,
) -> *mut BNTagReference;
}
unsafe extern "C" {
pub fn BNGetUserFunctionTagReferences(
func: *mut BNFunction,
count: *mut usize,
) -> *mut BNTagReference;
}
unsafe extern "C" {
pub fn BNGetFunctionTags(func: *mut BNFunction, count: *mut usize) -> *mut *mut BNTag;
}
unsafe extern "C" {
pub fn BNGetAutoFunctionTags(func: *mut BNFunction, count: *mut usize) -> *mut *mut BNTag;
}
unsafe extern "C" {
pub fn BNGetUserFunctionTags(func: *mut BNFunction, count: *mut usize) -> *mut *mut BNTag;
}
unsafe extern "C" {
pub fn BNGetFunctionTagsOfType(
func: *mut BNFunction,
tagType: *mut BNTagType,
count: *mut usize,
) -> *mut *mut BNTag;
}
unsafe extern "C" {
pub fn BNGetAutoFunctionTagsOfType(
func: *mut BNFunction,
tagType: *mut BNTagType,
count: *mut usize,
) -> *mut *mut BNTag;
}
unsafe extern "C" {
pub fn BNGetUserFunctionTagsOfType(
func: *mut BNFunction,
tagType: *mut BNTagType,
count: *mut usize,
) -> *mut *mut BNTag;
}
unsafe extern "C" {
pub fn BNAddAutoFunctionTag(func: *mut BNFunction, tag: *mut BNTag);
}
unsafe extern "C" {
pub fn BNRemoveAutoFunctionTag(func: *mut BNFunction, tag: *mut BNTag);
}
unsafe extern "C" {
pub fn BNRemoveAutoFunctionTagsOfType(func: *mut BNFunction, tagType: *mut BNTagType);
}
unsafe extern "C" {
pub fn BNAddUserFunctionTag(func: *mut BNFunction, tag: *mut BNTag);
}
unsafe extern "C" {
pub fn BNRemoveUserFunctionTag(func: *mut BNFunction, tag: *mut BNTag);
}
unsafe extern "C" {
pub fn BNRemoveUserFunctionTagsOfType(func: *mut BNFunction, tagType: *mut BNTagType);
}
unsafe extern "C" {
pub fn BNGetFunctionAnalysisPerformanceInfo(
func: *mut BNFunction,
count: *mut usize,
) -> *mut BNPerformanceInfo;
}
unsafe extern "C" {
pub fn BNFreeAnalysisPerformanceInfo(info: *mut BNPerformanceInfo, count: usize);
}
unsafe extern "C" {
pub fn BNGetUnresolvedStackAdjustmentGraph(func: *mut BNFunction) -> *mut BNFlowGraph;
}
unsafe extern "C" {
pub fn BNSetUserVariableValue(
func: *mut BNFunction,
var: *const BNVariable,
defSite: *const BNArchitectureAndAddress,
after: bool,
value: *const BNPossibleValueSet,
);
}
unsafe extern "C" {
pub fn BNClearUserVariableValue(
func: *mut BNFunction,
var: *const BNVariable,
defSite: *const BNArchitectureAndAddress,
after: bool,
);
}
unsafe extern "C" {
pub fn BNGetAllUserVariableValues(
func: *mut BNFunction,
count: *mut usize,
) -> *mut BNUserVariableValue;
}
unsafe extern "C" {
pub fn BNFreeUserVariableValues(result: *mut BNUserVariableValue);
}
unsafe extern "C" {
pub fn BNParsePossibleValueSet(
view: *mut BNBinaryView,
valueText: *const ::std::os::raw::c_char,
state: BNRegisterValueType,
result: *mut BNPossibleValueSet,
here: u64,
errors: *mut *mut ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNCreateForcedVariableVersion(
func: *mut BNFunction,
var: *const BNVariable,
defSite: *const BNArchitectureAndAddress,
);
}
unsafe extern "C" {
pub fn BNClearForcedVariableVersion(
func: *mut BNFunction,
var: *const BNVariable,
defSite: *const BNArchitectureAndAddress,
);
}
unsafe extern "C" {
pub fn BNSetFieldResolutionForVariableAt(
func: *mut BNFunction,
var: *const BNVariable,
defSite: *const BNArchitectureAndAddress,
info: *const BNFieldResolutionInfo,
);
}
unsafe extern "C" {
pub fn BNGetFieldResolutionForVariableAt(
func: *mut BNFunction,
var: *const BNVariable,
defSite: *const BNArchitectureAndAddress,
) -> *mut BNFieldResolutionInfo;
}
unsafe extern "C" {
pub fn BNGetAllVariableFieldResolutions(
func: *mut BNFunction,
count: *mut usize,
) -> *mut BNVariableFieldResolutionInfo;
}
unsafe extern "C" {
pub fn BNFreeVariableFieldResolutions(result: *mut BNVariableFieldResolutionInfo, count: usize);
}
unsafe extern "C" {
pub fn BNClearFieldResolutionForVariableAt(
func: *mut BNFunction,
var: *const BNVariable,
defSite: *const BNArchitectureAndAddress,
);
}
unsafe extern "C" {
pub fn BNRequestFunctionDebugReport(func: *mut BNFunction, name: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn BNFunctionCheckForDebugReport(
func: *mut BNFunction,
name: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILVariableReferences(
func: *mut BNFunction,
var: *mut BNVariable,
count: *mut usize,
) -> *mut BNILReferenceSource;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILVariableReferencesFrom(
func: *mut BNFunction,
arch: *mut BNArchitecture,
address: u64,
count: *mut usize,
) -> *mut BNVariableReferenceSource;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILVariableReferencesInRange(
func: *mut BNFunction,
arch: *mut BNArchitecture,
address: u64,
len: u64,
count: *mut usize,
) -> *mut BNVariableReferenceSource;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILVariableReferencesIfAvailable(
func: *mut BNFunction,
var: *mut BNVariable,
count: *mut usize,
) -> *mut BNILReferenceSource;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILVariableReferencesFromIfAvailable(
func: *mut BNFunction,
arch: *mut BNArchitecture,
address: u64,
count: *mut usize,
) -> *mut BNVariableReferenceSource;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILVariableReferencesInRangeIfAvailable(
func: *mut BNFunction,
arch: *mut BNArchitecture,
address: u64,
len: u64,
count: *mut usize,
) -> *mut BNVariableReferenceSource;
}
unsafe extern "C" {
pub fn BNGetHighLevelILVariableReferences(
func: *mut BNFunction,
var: *mut BNVariable,
count: *mut usize,
) -> *mut BNILReferenceSource;
}
unsafe extern "C" {
pub fn BNGetHighLevelILVariableReferencesFrom(
func: *mut BNFunction,
arch: *mut BNArchitecture,
address: u64,
count: *mut usize,
) -> *mut BNVariableReferenceSource;
}
unsafe extern "C" {
pub fn BNGetHighLevelILVariableReferencesInRange(
func: *mut BNFunction,
arch: *mut BNArchitecture,
address: u64,
len: u64,
count: *mut usize,
) -> *mut BNVariableReferenceSource;
}
unsafe extern "C" {
pub fn BNGetHighLevelILVariableReferencesIfAvailable(
func: *mut BNFunction,
var: *mut BNVariable,
count: *mut usize,
) -> *mut BNILReferenceSource;
}
unsafe extern "C" {
pub fn BNGetHighLevelILVariableReferencesFromIfAvailable(
func: *mut BNFunction,
arch: *mut BNArchitecture,
address: u64,
count: *mut usize,
) -> *mut BNVariableReferenceSource;
}
unsafe extern "C" {
pub fn BNGetHighLevelILVariableReferencesInRangeIfAvailable(
func: *mut BNFunction,
arch: *mut BNArchitecture,
address: u64,
len: u64,
count: *mut usize,
) -> *mut BNVariableReferenceSource;
}
unsafe extern "C" {
pub fn BNFreeVariableList(vars: *mut BNVariable);
}
unsafe extern "C" {
pub fn BNFreeVariableReferenceSourceList(vars: *mut BNVariableReferenceSource, count: usize);
}
unsafe extern "C" {
#[doc = " Analysis Context"]
pub fn BNCreateAnalysisContext() -> *mut BNAnalysisContext;
}
unsafe extern "C" {
pub fn BNNewAnalysisContextReference(
analysisContext: *mut BNAnalysisContext,
) -> *mut BNAnalysisContext;
}
unsafe extern "C" {
pub fn BNFreeAnalysisContext(analysisContext: *mut BNAnalysisContext);
}
unsafe extern "C" {
pub fn BNAnalysisContextGetBinaryView(
analysisContext: *mut BNAnalysisContext,
) -> *mut BNBinaryView;
}
unsafe extern "C" {
pub fn BNAnalysisContextGetFunction(analysisContext: *mut BNAnalysisContext)
-> *mut BNFunction;
}
unsafe extern "C" {
pub fn BNAnalysisContextGetLiftedILFunction(
analysisContext: *mut BNAnalysisContext,
) -> *mut BNLowLevelILFunction;
}
unsafe extern "C" {
pub fn BNAnalysisContextGetLowLevelILFunction(
analysisContext: *mut BNAnalysisContext,
) -> *mut BNLowLevelILFunction;
}
unsafe extern "C" {
pub fn BNAnalysisContextGetMediumLevelILFunction(
analysisContext: *mut BNAnalysisContext,
) -> *mut BNMediumLevelILFunction;
}
unsafe extern "C" {
pub fn BNAnalysisContextGetHighLevelILFunction(
analysisContext: *mut BNAnalysisContext,
) -> *mut BNHighLevelILFunction;
}
unsafe extern "C" {
pub fn BNSetBasicBlockList(
analysisContext: *mut BNAnalysisContext,
basicBlocks: *mut *mut BNBasicBlock,
count: usize,
);
}
unsafe extern "C" {
pub fn BNSetLiftedILFunction(
analysisContext: *mut BNAnalysisContext,
liftedIL: *mut BNLowLevelILFunction,
);
}
unsafe extern "C" {
pub fn BNSetLowLevelILFunction(
analysisContext: *mut BNAnalysisContext,
lowLevelIL: *mut BNLowLevelILFunction,
);
}
unsafe extern "C" {
pub fn BNSetMediumLevelILFunction(
analysisContext: *mut BNAnalysisContext,
mediumLevelIL: *mut BNMediumLevelILFunction,
llilSSAToMLILSSAInstrMap: *mut usize,
instrCount: usize,
llilSSAToMLILSSAExprMap: *mut BNExprMapInfo,
exprCount: usize,
);
}
unsafe extern "C" {
pub fn BNSetHighLevelILFunction(
analysisContext: *mut BNAnalysisContext,
highLevelIL: *mut BNHighLevelILFunction,
);
}
unsafe extern "C" {
pub fn BNAnalysisContextInform(
analysisContext: *mut BNAnalysisContext,
request: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
#[doc = " Settings cache access"]
pub fn BNAnalysisContextGetSettingBool(
analysisContext: *mut BNAnalysisContext,
key: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNAnalysisContextGetSettingDouble(
analysisContext: *mut BNAnalysisContext,
key: *const ::std::os::raw::c_char,
) -> f64;
}
unsafe extern "C" {
pub fn BNAnalysisContextGetSettingInt64(
analysisContext: *mut BNAnalysisContext,
key: *const ::std::os::raw::c_char,
) -> i64;
}
unsafe extern "C" {
pub fn BNAnalysisContextGetSettingUInt64(
analysisContext: *mut BNAnalysisContext,
key: *const ::std::os::raw::c_char,
) -> u64;
}
unsafe extern "C" {
pub fn BNAnalysisContextGetSettingString(
analysisContext: *mut BNAnalysisContext,
key: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNAnalysisContextGetSettingStringList(
analysisContext: *mut BNAnalysisContext,
key: *const ::std::os::raw::c_char,
count: *mut usize,
) -> *mut *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
#[doc = " Memory map access"]
pub fn BNAnalysisContextIsValidOffset(
analysisContext: *mut BNAnalysisContext,
offset: u64,
) -> bool;
}
unsafe extern "C" {
pub fn BNAnalysisContextIsOffsetReadable(
analysisContext: *mut BNAnalysisContext,
offset: u64,
) -> bool;
}
unsafe extern "C" {
pub fn BNAnalysisContextIsOffsetWritable(
analysisContext: *mut BNAnalysisContext,
offset: u64,
) -> bool;
}
unsafe extern "C" {
pub fn BNAnalysisContextIsOffsetExecutable(
analysisContext: *mut BNAnalysisContext,
offset: u64,
) -> bool;
}
unsafe extern "C" {
pub fn BNAnalysisContextIsOffsetBackedByFile(
analysisContext: *mut BNAnalysisContext,
offset: u64,
) -> bool;
}
unsafe extern "C" {
pub fn BNAnalysisContextIsOffsetCodeSemantics(
analysisContext: *mut BNAnalysisContext,
offset: u64,
) -> bool;
}
unsafe extern "C" {
pub fn BNAnalysisContextIsOffsetExternSemantics(
analysisContext: *mut BNAnalysisContext,
offset: u64,
) -> bool;
}
unsafe extern "C" {
pub fn BNAnalysisContextIsOffsetWritableSemantics(
analysisContext: *mut BNAnalysisContext,
offset: u64,
) -> bool;
}
unsafe extern "C" {
pub fn BNAnalysisContextIsOffsetReadOnlySemantics(
analysisContext: *mut BNAnalysisContext,
offset: u64,
) -> bool;
}
unsafe extern "C" {
pub fn BNAnalysisContextGetSections(
analysisContext: *mut BNAnalysisContext,
count: *mut usize,
) -> *mut *mut BNSection;
}
unsafe extern "C" {
pub fn BNAnalysisContextGetSectionByName(
analysisContext: *mut BNAnalysisContext,
name: *const ::std::os::raw::c_char,
) -> *mut BNSection;
}
unsafe extern "C" {
pub fn BNAnalysisContextGetSectionsAt(
analysisContext: *mut BNAnalysisContext,
addr: u64,
count: *mut usize,
) -> *mut *mut BNSection;
}
unsafe extern "C" {
pub fn BNAnalysisContextGetStart(analysisContext: *mut BNAnalysisContext) -> u64;
}
unsafe extern "C" {
pub fn BNAnalysisContextGetEnd(analysisContext: *mut BNAnalysisContext) -> u64;
}
unsafe extern "C" {
pub fn BNAnalysisContextGetLength(analysisContext: *mut BNAnalysisContext) -> u64;
}
unsafe extern "C" {
pub fn BNAnalysisContextGetNextValidOffset(
analysisContext: *mut BNAnalysisContext,
offset: u64,
) -> u64;
}
unsafe extern "C" {
pub fn BNAnalysisContextGetNextMappedAddress(
analysisContext: *mut BNAnalysisContext,
addr: u64,
flags: u32,
) -> u64;
}
unsafe extern "C" {
pub fn BNAnalysisContextGetNextBackedAddress(
analysisContext: *mut BNAnalysisContext,
addr: u64,
flags: u32,
) -> u64;
}
unsafe extern "C" {
pub fn BNAnalysisContextGetSegmentAt(
analysisContext: *mut BNAnalysisContext,
addr: u64,
) -> *mut BNSegment;
}
unsafe extern "C" {
pub fn BNAnalysisContextGetMappedAddressRanges(
analysisContext: *mut BNAnalysisContext,
count: *mut usize,
) -> *mut BNAddressRange;
}
unsafe extern "C" {
pub fn BNAnalysisContextGetBackedAddressRanges(
analysisContext: *mut BNAnalysisContext,
count: *mut usize,
) -> *mut BNAddressRange;
}
unsafe extern "C" {
#[doc = " Activity"]
pub fn BNCreateActivity(
configuration: *const ::std::os::raw::c_char,
ctxt: *mut ::std::os::raw::c_void,
action: ::std::option::Option<
unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void, arg2: *mut BNAnalysisContext),
>,
) -> *mut BNActivity;
}
unsafe extern "C" {
pub fn BNCreateActivityWithEligibility(
configuration: *const ::std::os::raw::c_char,
ctxt: *mut ::std::os::raw::c_void,
action: ::std::option::Option<
unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void, arg2: *mut BNAnalysisContext),
>,
eligibilityHandler: ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut ::std::os::raw::c_void,
arg2: *mut BNActivity,
arg3: *mut BNAnalysisContext,
) -> bool,
>,
) -> *mut BNActivity;
}
unsafe extern "C" {
pub fn BNNewActivityReference(activity: *mut BNActivity) -> *mut BNActivity;
}
unsafe extern "C" {
pub fn BNFreeActivity(activity: *mut BNActivity);
}
unsafe extern "C" {
pub fn BNActivityGetName(activity: *mut BNActivity) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
#[doc = " Workflow"]
pub fn BNCreateWorkflow(name: *const ::std::os::raw::c_char) -> *mut BNWorkflow;
}
unsafe extern "C" {
pub fn BNNewWorkflowReference(workflow: *mut BNWorkflow) -> *mut BNWorkflow;
}
unsafe extern "C" {
pub fn BNFreeWorkflow(workflow: *mut BNWorkflow);
}
unsafe extern "C" {
pub fn BNGetWorkflowList(count: *mut usize) -> *mut *mut BNWorkflow;
}
unsafe extern "C" {
pub fn BNFreeWorkflowList(workflows: *mut *mut BNWorkflow, count: usize);
}
unsafe extern "C" {
pub fn BNWorkflowGet(name: *const ::std::os::raw::c_char) -> *mut BNWorkflow;
}
unsafe extern "C" {
pub fn BNWorkflowGetOrCreate(name: *const ::std::os::raw::c_char) -> *mut BNWorkflow;
}
unsafe extern "C" {
pub fn BNRegisterWorkflow(
workflow: *mut BNWorkflow,
configuration: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNWorkflowClone(
workflow: *mut BNWorkflow,
name: *const ::std::os::raw::c_char,
activity: *const ::std::os::raw::c_char,
) -> *mut BNWorkflow;
}
unsafe extern "C" {
pub fn BNWorkflowRegisterActivity(
workflow: *mut BNWorkflow,
activity: *mut BNActivity,
subactivities: *mut *const ::std::os::raw::c_char,
size: usize,
) -> *mut BNActivity;
}
unsafe extern "C" {
pub fn BNWorkflowContains(
workflow: *mut BNWorkflow,
activity: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNWorkflowGetConfiguration(
workflow: *mut BNWorkflow,
activity: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetWorkflowName(workflow: *mut BNWorkflow) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNWorkflowIsRegistered(workflow: *mut BNWorkflow) -> bool;
}
unsafe extern "C" {
pub fn BNWorkflowSize(workflow: *mut BNWorkflow) -> usize;
}
unsafe extern "C" {
pub fn BNWorkflowGetActivity(
workflow: *mut BNWorkflow,
activity: *const ::std::os::raw::c_char,
) -> *mut BNActivity;
}
unsafe extern "C" {
pub fn BNWorkflowGetActivityRoots(
workflow: *mut BNWorkflow,
activity: *const ::std::os::raw::c_char,
inoutSize: *mut usize,
) -> *mut *const ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNWorkflowGetSubactivities(
workflow: *mut BNWorkflow,
activity: *const ::std::os::raw::c_char,
immediate: bool,
inoutSize: *mut usize,
) -> *mut *const ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNWorkflowAssignSubactivities(
workflow: *mut BNWorkflow,
activity: *const ::std::os::raw::c_char,
activities: *mut *const ::std::os::raw::c_char,
size: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNWorkflowClear(workflow: *mut BNWorkflow) -> bool;
}
unsafe extern "C" {
pub fn BNWorkflowInsert(
workflow: *mut BNWorkflow,
activity: *const ::std::os::raw::c_char,
activities: *mut *const ::std::os::raw::c_char,
size: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNWorkflowInsertAfter(
workflow: *mut BNWorkflow,
activity: *const ::std::os::raw::c_char,
activities: *mut *const ::std::os::raw::c_char,
size: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNWorkflowRemove(
workflow: *mut BNWorkflow,
activity: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNWorkflowReplace(
workflow: *mut BNWorkflow,
activity: *const ::std::os::raw::c_char,
newActivity: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNWorkflowGetGraph(
workflow: *mut BNWorkflow,
activity: *const ::std::os::raw::c_char,
sequential: bool,
) -> *mut BNFlowGraph;
}
unsafe extern "C" {
pub fn BNWorkflowShowReport(workflow: *mut BNWorkflow, name: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn BNWorkflowGetEligibilitySettings(
workflow: *mut BNWorkflow,
inoutSize: *mut usize,
) -> *mut *const ::std::os::raw::c_char;
}
unsafe extern "C" {
#[doc = " BinaryView Workflow Machine"]
pub fn BNGetWorkflowForBinaryView(view: *mut BNBinaryView) -> *mut BNWorkflow;
}
unsafe extern "C" {
pub fn BNPostWorkflowRequestForBinaryView(
view: *mut BNBinaryView,
request: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetWorkflowGraphForBinaryView(
view: *mut BNBinaryView,
name: *const ::std::os::raw::c_char,
sequential: bool,
) -> *mut BNFlowGraph;
}
unsafe extern "C" {
pub fn BNShowWorkflowReportForBinaryView(
view: *mut BNBinaryView,
name: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
#[doc = " Function Workflow Machine"]
pub fn BNGetWorkflowForFunction(func: *mut BNFunction) -> *mut BNWorkflow;
}
unsafe extern "C" {
pub fn BNPostWorkflowRequestForFunction(
func: *mut BNFunction,
request: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetWorkflowGraphForFunction(
func: *mut BNFunction,
name: *const ::std::os::raw::c_char,
sequential: bool,
) -> *mut BNFlowGraph;
}
unsafe extern "C" {
pub fn BNShowWorkflowReportForFunction(
func: *mut BNFunction,
name: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
#[doc = " Provenance"]
pub fn BNGetProvenanceString(func: *mut BNFunction) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
#[doc = " Disassembly settings"]
pub fn BNCreateDisassemblySettings() -> *mut BNDisassemblySettings;
}
unsafe extern "C" {
pub fn BNDefaultDisassemblySettings() -> *mut BNDisassemblySettings;
}
unsafe extern "C" {
pub fn BNDefaultGraphDisassemblySettings() -> *mut BNDisassemblySettings;
}
unsafe extern "C" {
pub fn BNDefaultLinearDisassemblySettings() -> *mut BNDisassemblySettings;
}
unsafe extern "C" {
pub fn BNNewDisassemblySettingsReference(
settings: *mut BNDisassemblySettings,
) -> *mut BNDisassemblySettings;
}
unsafe extern "C" {
pub fn BNDuplicateDisassemblySettings(
settings: *mut BNDisassemblySettings,
) -> *mut BNDisassemblySettings;
}
unsafe extern "C" {
pub fn BNFreeDisassemblySettings(settings: *mut BNDisassemblySettings);
}
unsafe extern "C" {
pub fn BNIsDisassemblySettingsOptionSet(
settings: *mut BNDisassemblySettings,
option: BNDisassemblyOption,
) -> bool;
}
unsafe extern "C" {
pub fn BNSetDisassemblySettingsOption(
settings: *mut BNDisassemblySettings,
option: BNDisassemblyOption,
state: bool,
);
}
unsafe extern "C" {
pub fn BNGetDisassemblyWidth(settings: *mut BNDisassemblySettings) -> usize;
}
unsafe extern "C" {
pub fn BNSetDisassemblyWidth(settings: *mut BNDisassemblySettings, width: usize);
}
unsafe extern "C" {
pub fn BNGetDisassemblyMaximumSymbolWidth(settings: *mut BNDisassemblySettings) -> usize;
}
unsafe extern "C" {
pub fn BNSetDisassemblyMaximumSymbolWidth(settings: *mut BNDisassemblySettings, width: usize);
}
unsafe extern "C" {
pub fn BNGetDisassemblyGutterWidth(settings: *mut BNDisassemblySettings) -> usize;
}
unsafe extern "C" {
pub fn BNSetDisassemblyGutterWidth(settings: *mut BNDisassemblySettings, width: usize);
}
unsafe extern "C" {
pub fn BNGetDisassemblyAddressMode(
settings: *mut BNDisassemblySettings,
) -> BNDisassemblyAddressMode;
}
unsafe extern "C" {
pub fn BNSetDisassemblyAddressMode(
settings: *mut BNDisassemblySettings,
mode: BNDisassemblyAddressMode,
);
}
unsafe extern "C" {
pub fn BNGetDisassemblyAddressBaseOffset(settings: *mut BNDisassemblySettings) -> u64;
}
unsafe extern "C" {
pub fn BNSetDisassemblyAddressBaseOffset(
settings: *mut BNDisassemblySettings,
addressBaseOffset: u64,
);
}
unsafe extern "C" {
pub fn BNGetDisassemblyCallParameterHints(
settings: *mut BNDisassemblySettings,
) -> BNDisassemblyCallParameterHints;
}
unsafe extern "C" {
pub fn BNSetDisassemblyCallParameterHints(
settings: *mut BNDisassemblySettings,
hints: BNDisassemblyCallParameterHints,
);
}
unsafe extern "C" {
pub fn BNGetDisassemblyBlockLabels(
settings: *mut BNDisassemblySettings,
) -> BNDisassemblyBlockLabels;
}
unsafe extern "C" {
pub fn BNSetDisassemblyBlockLabels(
settings: *mut BNDisassemblySettings,
labels: BNDisassemblyBlockLabels,
);
}
unsafe extern "C" {
#[doc = " Flow graphs"]
pub fn BNCreateFlowGraph() -> *mut BNFlowGraph;
}
unsafe extern "C" {
pub fn BNCreateFunctionGraph(
func: *mut BNFunction,
type_: BNFunctionViewType,
settings: *mut BNDisassemblySettings,
) -> *mut BNFlowGraph;
}
unsafe extern "C" {
pub fn BNCreateLowLevelILFunctionGraph(
func: *mut BNLowLevelILFunction,
settings: *mut BNDisassemblySettings,
) -> *mut BNFlowGraph;
}
unsafe extern "C" {
pub fn BNCreateMediumLevelILFunctionGraph(
func: *mut BNMediumLevelILFunction,
settings: *mut BNDisassemblySettings,
) -> *mut BNFlowGraph;
}
unsafe extern "C" {
pub fn BNCreateHighLevelILFunctionGraph(
func: *mut BNHighLevelILFunction,
settings: *mut BNDisassemblySettings,
) -> *mut BNFlowGraph;
}
unsafe extern "C" {
pub fn BNCreateImmediateFunctionGraph(
func: *mut BNFunction,
type_: BNFunctionViewType,
settings: *mut BNDisassemblySettings,
) -> *mut BNFlowGraph;
}
unsafe extern "C" {
pub fn BNCreateLowLevelILImmediateFunctionGraph(
func: *mut BNLowLevelILFunction,
settings: *mut BNDisassemblySettings,
) -> *mut BNFlowGraph;
}
unsafe extern "C" {
pub fn BNCreateMediumLevelILImmediateFunctionGraph(
func: *mut BNMediumLevelILFunction,
settings: *mut BNDisassemblySettings,
) -> *mut BNFlowGraph;
}
unsafe extern "C" {
pub fn BNCreateHighLevelILImmediateFunctionGraph(
func: *mut BNHighLevelILFunction,
settings: *mut BNDisassemblySettings,
) -> *mut BNFlowGraph;
}
unsafe extern "C" {
pub fn BNCreateCustomFlowGraph(callbacks: *mut BNCustomFlowGraph) -> *mut BNFlowGraph;
}
unsafe extern "C" {
pub fn BNNewFlowGraphReference(graph: *mut BNFlowGraph) -> *mut BNFlowGraph;
}
unsafe extern "C" {
pub fn BNFreeFlowGraph(graph: *mut BNFlowGraph);
}
unsafe extern "C" {
pub fn BNGetFunctionForFlowGraph(graph: *mut BNFlowGraph) -> *mut BNFunction;
}
unsafe extern "C" {
pub fn BNSetFunctionForFlowGraph(graph: *mut BNFlowGraph, func: *mut BNFunction);
}
unsafe extern "C" {
pub fn BNGetViewForFlowGraph(graph: *mut BNFlowGraph) -> *mut BNBinaryView;
}
unsafe extern "C" {
pub fn BNSetViewForFlowGraph(graph: *mut BNFlowGraph, view: *mut BNBinaryView);
}
unsafe extern "C" {
pub fn BNGetHorizontalFlowGraphNodeMargin(graph: *mut BNFlowGraph) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn BNGetVerticalFlowGraphNodeMargin(graph: *mut BNFlowGraph) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn BNSetFlowGraphNodeMargins(
graph: *mut BNFlowGraph,
horiz: ::std::os::raw::c_int,
vert: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn BNStartFlowGraphLayout(
graph: *mut BNFlowGraph,
ctxt: *mut ::std::os::raw::c_void,
func: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
) -> *mut BNFlowGraphLayoutRequest;
}
unsafe extern "C" {
pub fn BNIsFlowGraphLayoutComplete(graph: *mut BNFlowGraph) -> bool;
}
unsafe extern "C" {
pub fn BNNewFlowGraphLayoutRequestReference(
layout: *mut BNFlowGraphLayoutRequest,
) -> *mut BNFlowGraphLayoutRequest;
}
unsafe extern "C" {
pub fn BNFreeFlowGraphLayoutRequest(layout: *mut BNFlowGraphLayoutRequest);
}
unsafe extern "C" {
pub fn BNIsFlowGraphLayoutRequestComplete(layout: *mut BNFlowGraphLayoutRequest) -> bool;
}
unsafe extern "C" {
pub fn BNGetGraphForFlowGraphLayoutRequest(
layout: *mut BNFlowGraphLayoutRequest,
) -> *mut BNFlowGraph;
}
unsafe extern "C" {
pub fn BNAbortFlowGraphLayoutRequest(graph: *mut BNFlowGraphLayoutRequest);
}
unsafe extern "C" {
pub fn BNIsILFlowGraph(graph: *mut BNFlowGraph) -> bool;
}
unsafe extern "C" {
pub fn BNIsLowLevelILFlowGraph(graph: *mut BNFlowGraph) -> bool;
}
unsafe extern "C" {
pub fn BNIsMediumLevelILFlowGraph(graph: *mut BNFlowGraph) -> bool;
}
unsafe extern "C" {
pub fn BNIsHighLevelILFlowGraph(graph: *mut BNFlowGraph) -> bool;
}
unsafe extern "C" {
pub fn BNGetFlowGraphLowLevelILFunction(graph: *mut BNFlowGraph) -> *mut BNLowLevelILFunction;
}
unsafe extern "C" {
pub fn BNGetFlowGraphMediumLevelILFunction(
graph: *mut BNFlowGraph,
) -> *mut BNMediumLevelILFunction;
}
unsafe extern "C" {
pub fn BNGetFlowGraphHighLevelILFunction(graph: *mut BNFlowGraph)
-> *mut BNHighLevelILFunction;
}
unsafe extern "C" {
pub fn BNSetFlowGraphLowLevelILFunction(
graph: *mut BNFlowGraph,
func: *mut BNLowLevelILFunction,
);
}
unsafe extern "C" {
pub fn BNSetFlowGraphMediumLevelILFunction(
graph: *mut BNFlowGraph,
func: *mut BNMediumLevelILFunction,
);
}
unsafe extern "C" {
pub fn BNSetFlowGraphHighLevelILFunction(
graph: *mut BNFlowGraph,
func: *mut BNHighLevelILFunction,
);
}
unsafe extern "C" {
pub fn BNGetFlowGraphNodes(
graph: *mut BNFlowGraph,
count: *mut usize,
) -> *mut *mut BNFlowGraphNode;
}
unsafe extern "C" {
pub fn BNGetFlowGraphNode(graph: *mut BNFlowGraph, i: usize) -> *mut BNFlowGraphNode;
}
unsafe extern "C" {
pub fn BNGetFlowGraphNodesInRegion(
graph: *mut BNFlowGraph,
left: ::std::os::raw::c_int,
top: ::std::os::raw::c_int,
right: ::std::os::raw::c_int,
bottom: ::std::os::raw::c_int,
count: *mut usize,
) -> *mut *mut BNFlowGraphNode;
}
unsafe extern "C" {
pub fn BNFreeFlowGraphNodeList(nodes: *mut *mut BNFlowGraphNode, count: usize);
}
unsafe extern "C" {
pub fn BNGetFlowGraphNodeCount(graph: *mut BNFlowGraph) -> usize;
}
unsafe extern "C" {
pub fn BNFlowGraphHasNodes(graph: *mut BNFlowGraph) -> bool;
}
unsafe extern "C" {
pub fn BNAddFlowGraphNode(graph: *mut BNFlowGraph, node: *mut BNFlowGraphNode) -> usize;
}
unsafe extern "C" {
pub fn BNReplaceFlowGraphNode(graph: *mut BNFlowGraph, i: usize, newNode: *mut BNFlowGraphNode);
}
unsafe extern "C" {
pub fn BNClearFlowGraphNodes(graph: *mut BNFlowGraph);
}
unsafe extern "C" {
pub fn BNGetFlowGraphWidth(graph: *mut BNFlowGraph) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn BNGetFlowGraphHeight(graph: *mut BNFlowGraph) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn BNFlowGraphSetWidth(graph: *mut BNFlowGraph, width: ::std::os::raw::c_int);
}
unsafe extern "C" {
pub fn BNFlowGraphSetHeight(graph: *mut BNFlowGraph, height: ::std::os::raw::c_int);
}
unsafe extern "C" {
pub fn BNGetFlowGraphRenderLayers(
graph: *mut BNFlowGraph,
count: *mut usize,
) -> *mut *mut BNRenderLayer;
}
unsafe extern "C" {
pub fn BNAddFlowGraphRenderLayer(graph: *mut BNFlowGraph, layer: *mut BNRenderLayer);
}
unsafe extern "C" {
pub fn BNRemoveFlowGraphRenderLayer(graph: *mut BNFlowGraph, layer: *mut BNRenderLayer);
}
unsafe extern "C" {
pub fn BNCreateFlowGraphNode(graph: *mut BNFlowGraph) -> *mut BNFlowGraphNode;
}
unsafe extern "C" {
pub fn BNNewFlowGraphNodeReference(node: *mut BNFlowGraphNode) -> *mut BNFlowGraphNode;
}
unsafe extern "C" {
pub fn BNFreeFlowGraphNode(node: *mut BNFlowGraphNode);
}
unsafe extern "C" {
pub fn BNGetFlowGraphNodeOwner(node: *mut BNFlowGraphNode) -> *mut BNFlowGraph;
}
unsafe extern "C" {
pub fn BNGetFlowGraphBasicBlock(node: *mut BNFlowGraphNode) -> *mut BNBasicBlock;
}
unsafe extern "C" {
pub fn BNSetFlowGraphBasicBlock(node: *mut BNFlowGraphNode, block: *mut BNBasicBlock);
}
unsafe extern "C" {
pub fn BNFlowGraphNodeSetX(node: *mut BNFlowGraphNode, x: ::std::os::raw::c_int);
}
unsafe extern "C" {
pub fn BNFlowGraphNodeSetY(node: *mut BNFlowGraphNode, y: ::std::os::raw::c_int);
}
unsafe extern "C" {
pub fn BNGetFlowGraphNodeX(node: *mut BNFlowGraphNode) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn BNGetFlowGraphNodeY(node: *mut BNFlowGraphNode) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn BNGetFlowGraphNodeWidth(node: *mut BNFlowGraphNode) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn BNGetFlowGraphNodeHeight(node: *mut BNFlowGraphNode) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn BNGetFlowGraphNodeLines(
node: *mut BNFlowGraphNode,
count: *mut usize,
) -> *mut BNDisassemblyTextLine;
}
unsafe extern "C" {
pub fn BNSetFlowGraphNodeLines(
node: *mut BNFlowGraphNode,
lines: *mut BNDisassemblyTextLine,
count: usize,
);
}
unsafe extern "C" {
pub fn BNGetFlowGraphNodeOutgoingEdges(
node: *mut BNFlowGraphNode,
count: *mut usize,
) -> *mut BNFlowGraphEdge;
}
unsafe extern "C" {
pub fn BNGetFlowGraphNodeIncomingEdges(
node: *mut BNFlowGraphNode,
count: *mut usize,
) -> *mut BNFlowGraphEdge;
}
unsafe extern "C" {
pub fn BNFreeFlowGraphNodeEdgeList(edges: *mut BNFlowGraphEdge, count: usize);
}
unsafe extern "C" {
pub fn BNAddFlowGraphNodeOutgoingEdge(
node: *mut BNFlowGraphNode,
type_: BNBranchType,
target: *mut BNFlowGraphNode,
edgeStyle: BNEdgeStyle,
);
}
unsafe extern "C" {
pub fn BNGetFlowGraphNodeHighlight(node: *mut BNFlowGraphNode) -> BNHighlightColor;
}
unsafe extern "C" {
pub fn BNSetFlowGraphNodeHighlight(node: *mut BNFlowGraphNode, color: BNHighlightColor);
}
unsafe extern "C" {
pub fn BNFinishPrepareForLayout(graph: *mut BNFlowGraph);
}
unsafe extern "C" {
pub fn BNFlowGraphUpdateQueryMode(graph: *mut BNFlowGraph) -> bool;
}
unsafe extern "C" {
pub fn BNFlowGraphHasUpdates(graph: *mut BNFlowGraph) -> bool;
}
unsafe extern "C" {
pub fn BNUpdateFlowGraph(graph: *mut BNFlowGraph) -> *mut BNFlowGraph;
}
unsafe extern "C" {
pub fn BNSetFlowGraphOption(graph: *mut BNFlowGraph, option: BNFlowGraphOption, value: bool);
}
unsafe extern "C" {
pub fn BNIsFlowGraphOptionSet(graph: *mut BNFlowGraph, option: BNFlowGraphOption) -> bool;
}
unsafe extern "C" {
pub fn BNIsNodeValidForFlowGraph(graph: *mut BNFlowGraph, node: *mut BNFlowGraphNode) -> bool;
}
unsafe extern "C" {
pub fn BNFlowGraphNodeSetVisibilityRegion(
node: *mut BNFlowGraphNode,
x: ::std::os::raw::c_int,
y: ::std::os::raw::c_int,
w: ::std::os::raw::c_int,
h: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn BNFlowGraphNodeSetOutgoingEdgePoints(
node: *mut BNFlowGraphNode,
edgeNum: usize,
points: *mut BNPoint,
pointCount: usize,
);
}
unsafe extern "C" {
pub fn BNGetFlowGraphLayouts(count: *mut usize) -> *mut *mut BNFlowGraphLayout;
}
unsafe extern "C" {
pub fn BNFreeFlowGraphLayoutList(layouts: *mut *mut BNFlowGraphLayout);
}
unsafe extern "C" {
pub fn BNRegisterFlowGraphLayout(
name: *const ::std::os::raw::c_char,
callbacks: *mut BNCustomFlowGraphLayout,
) -> *mut BNFlowGraphLayout;
}
unsafe extern "C" {
pub fn BNGetFlowGraphLayoutByName(
name: *const ::std::os::raw::c_char,
) -> *mut BNFlowGraphLayout;
}
unsafe extern "C" {
pub fn BNGetFlowGraphLayoutName(layout: *mut BNFlowGraphLayout) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNFlowGraphLayoutLayout(
layout: *mut BNFlowGraphLayout,
graph: *mut BNFlowGraph,
nodes: *mut *mut BNFlowGraphNode,
nodeCount: usize,
) -> bool;
}
unsafe extern "C" {
#[doc = " Symbols"]
pub fn BNCreateSymbol(
type_: BNSymbolType,
shortName: *const ::std::os::raw::c_char,
fullName: *const ::std::os::raw::c_char,
rawName: *const ::std::os::raw::c_char,
addr: u64,
binding: BNSymbolBinding,
nameSpace: *const BNNameSpace,
ordinal: u64,
) -> *mut BNSymbol;
}
unsafe extern "C" {
pub fn BNNewSymbolReference(sym: *mut BNSymbol) -> *mut BNSymbol;
}
unsafe extern "C" {
pub fn BNFreeSymbol(sym: *mut BNSymbol);
}
unsafe extern "C" {
pub fn BNGetSymbolType(sym: *mut BNSymbol) -> BNSymbolType;
}
unsafe extern "C" {
pub fn BNGetSymbolBinding(sym: *mut BNSymbol) -> BNSymbolBinding;
}
unsafe extern "C" {
pub fn BNGetSymbolNameSpace(sym: *mut BNSymbol) -> BNNameSpace;
}
unsafe extern "C" {
pub fn BNGetSymbolShortName(sym: *mut BNSymbol) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetSymbolShortNameRef(sym: *mut BNSymbol) -> *mut BNStringRef;
}
unsafe extern "C" {
pub fn BNGetSymbolFullName(sym: *mut BNSymbol) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetSymbolFullNameRef(sym: *mut BNSymbol) -> *mut BNStringRef;
}
unsafe extern "C" {
pub fn BNGetSymbolRawName(sym: *mut BNSymbol) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetSymbolRawNameRef(sym: *mut BNSymbol) -> *mut BNStringRef;
}
unsafe extern "C" {
pub fn BNGetSymbolRawBytes(
sym: *mut BNSymbol,
count: *mut usize,
) -> *mut ::std::os::raw::c_void;
}
unsafe extern "C" {
pub fn BNFreeSymbolRawBytes(bytes: *mut ::std::os::raw::c_void);
}
unsafe extern "C" {
pub fn BNGetSymbolAddress(sym: *mut BNSymbol) -> u64;
}
unsafe extern "C" {
pub fn BNGetSymbolOrdinal(sym: *mut BNSymbol) -> u64;
}
unsafe extern "C" {
pub fn BNIsSymbolAutoDefined(sym: *mut BNSymbol) -> bool;
}
unsafe extern "C" {
pub fn BNGetSymbolByAddress(
view: *mut BNBinaryView,
addr: u64,
nameSpace: *const BNNameSpace,
) -> *mut BNSymbol;
}
unsafe extern "C" {
pub fn BNGetSymbolByRawName(
view: *mut BNBinaryView,
name: *const ::std::os::raw::c_char,
nameSpace: *const BNNameSpace,
) -> *mut BNSymbol;
}
unsafe extern "C" {
pub fn BNGetSymbolsByName(
view: *mut BNBinaryView,
name: *const ::std::os::raw::c_char,
count: *mut usize,
nameSpace: *const BNNameSpace,
) -> *mut *mut BNSymbol;
}
unsafe extern "C" {
pub fn BNGetSymbolsByRawName(
view: *mut BNBinaryView,
name: *const ::std::os::raw::c_char,
count: *mut usize,
nameSpace: *const BNNameSpace,
) -> *mut *mut BNSymbol;
}
unsafe extern "C" {
pub fn BNGetSymbols(
view: *mut BNBinaryView,
count: *mut usize,
nameSpace: *const BNNameSpace,
) -> *mut *mut BNSymbol;
}
unsafe extern "C" {
pub fn BNGetSymbolsInRange(
view: *mut BNBinaryView,
start: u64,
len: u64,
count: *mut usize,
nameSpace: *const BNNameSpace,
) -> *mut *mut BNSymbol;
}
unsafe extern "C" {
pub fn BNGetSymbolsOfType(
view: *mut BNBinaryView,
type_: BNSymbolType,
count: *mut usize,
nameSpace: *const BNNameSpace,
) -> *mut *mut BNSymbol;
}
unsafe extern "C" {
pub fn BNGetSymbolsOfTypeInRange(
view: *mut BNBinaryView,
type_: BNSymbolType,
start: u64,
len: u64,
count: *mut usize,
nameSpace: *const BNNameSpace,
) -> *mut *mut BNSymbol;
}
unsafe extern "C" {
pub fn BNFreeSymbolList(syms: *mut *mut BNSymbol, count: usize);
}
unsafe extern "C" {
pub fn BNGetVisibleSymbols(
view: *mut BNBinaryView,
count: *mut usize,
nameSpace: *const BNNameSpace,
) -> *mut *mut BNSymbol;
}
unsafe extern "C" {
pub fn BNDefineAutoSymbol(view: *mut BNBinaryView, sym: *mut BNSymbol);
}
unsafe extern "C" {
pub fn BNUndefineAutoSymbol(view: *mut BNBinaryView, sym: *mut BNSymbol);
}
unsafe extern "C" {
pub fn BNDefineUserSymbol(view: *mut BNBinaryView, sym: *mut BNSymbol);
}
unsafe extern "C" {
pub fn BNUndefineUserSymbol(view: *mut BNBinaryView, sym: *mut BNSymbol);
}
unsafe extern "C" {
pub fn BNDefineImportedFunction(
view: *mut BNBinaryView,
importAddressSym: *mut BNSymbol,
func: *mut BNFunction,
type_: *mut BNType,
);
}
unsafe extern "C" {
pub fn BNDefineAutoSymbolAndVariableOrFunction(
view: *mut BNBinaryView,
platform: *mut BNPlatform,
sym: *mut BNSymbol,
type_: *mut BNTypeWithConfidence,
) -> *mut BNSymbol;
}
unsafe extern "C" {
pub fn BNBeginBulkModifySymbols(view: *mut BNBinaryView);
}
unsafe extern "C" {
pub fn BNEndBulkModifySymbols(view: *mut BNBinaryView);
}
unsafe extern "C" {
pub fn BNGetDebugInfo(view: *mut BNBinaryView) -> *mut BNDebugInfo;
}
unsafe extern "C" {
pub fn BNApplyDebugInfo(view: *mut BNBinaryView, newDebugInfo: *mut BNDebugInfo);
}
unsafe extern "C" {
pub fn BNSetDebugInfo(view: *mut BNBinaryView, newDebugInfo: *mut BNDebugInfo);
}
unsafe extern "C" {
pub fn BNIsApplyingDebugInfo(view: *mut BNBinaryView) -> bool;
}
unsafe extern "C" {
pub fn BNImportedFunctionFromImportAddressSymbol(
sym: *mut BNSymbol,
addr: u64,
) -> *mut BNSymbol;
}
unsafe extern "C" {
#[doc = " Low-level IL"]
pub fn BNCreateLowLevelILFunction(
arch: *mut BNArchitecture,
func: *mut BNFunction,
) -> *mut BNLowLevelILFunction;
}
unsafe extern "C" {
pub fn BNNewLowLevelILFunctionReference(
func: *mut BNLowLevelILFunction,
) -> *mut BNLowLevelILFunction;
}
unsafe extern "C" {
pub fn BNFreeLowLevelILFunction(func: *mut BNLowLevelILFunction);
}
unsafe extern "C" {
pub fn BNGetLowLevelILOwnerFunction(func: *mut BNLowLevelILFunction) -> *mut BNFunction;
}
unsafe extern "C" {
pub fn BNLowLevelILGetCurrentAddress(func: *mut BNLowLevelILFunction) -> u64;
}
unsafe extern "C" {
pub fn BNLowLevelILSetCurrentAddress(
func: *mut BNLowLevelILFunction,
arch: *mut BNArchitecture,
addr: u64,
);
}
unsafe extern "C" {
pub fn BNLowLevelILSetCurrentSourceBlock(
func: *mut BNLowLevelILFunction,
source: *mut BNBasicBlock,
);
}
unsafe extern "C" {
pub fn BNLowLevelILGetInstructionStart(
func: *mut BNLowLevelILFunction,
arch: *mut BNArchitecture,
addr: u64,
) -> usize;
}
unsafe extern "C" {
pub fn BNLowLevelILGetInstructionsAt(
func: *mut BNLowLevelILFunction,
arch: *mut BNArchitecture,
addr: u64,
count: *mut usize,
) -> *mut usize;
}
unsafe extern "C" {
pub fn BNLowLevelILGetExitsForInstruction(
func: *mut BNLowLevelILFunction,
instr: usize,
count: *mut usize,
) -> *mut usize;
}
unsafe extern "C" {
pub fn BNLowLevelILClearIndirectBranches(func: *mut BNLowLevelILFunction);
}
unsafe extern "C" {
pub fn BNLowLevelILSetIndirectBranches(
func: *mut BNLowLevelILFunction,
branches: *mut BNArchitectureAndAddress,
count: usize,
);
}
unsafe extern "C" {
pub fn BNLowLevelILAddExpr(
func: *mut BNLowLevelILFunction,
operation: BNLowLevelILOperation,
size: usize,
flags: u32,
a: u64,
b: u64,
c: u64,
d: u64,
) -> usize;
}
unsafe extern "C" {
pub fn BNLowLevelILAddExprWithLocation(
func: *mut BNLowLevelILFunction,
addr: u64,
sourceOperand: u32,
operation: BNLowLevelILOperation,
size: usize,
flags: u32,
a: u64,
b: u64,
c: u64,
d: u64,
) -> usize;
}
unsafe extern "C" {
pub fn BNLowLevelILSetExprSourceOperand(
func: *mut BNLowLevelILFunction,
expr: usize,
operand: u32,
);
}
unsafe extern "C" {
pub fn BNLowLevelILAddInstruction(func: *mut BNLowLevelILFunction, expr: usize) -> usize;
}
unsafe extern "C" {
pub fn BNLowLevelILGoto(
func: *mut BNLowLevelILFunction,
label: *mut BNLowLevelILLabel,
) -> usize;
}
unsafe extern "C" {
pub fn BNLowLevelILGotoWithLocation(
func: *mut BNLowLevelILFunction,
label: *mut BNLowLevelILLabel,
addr: u64,
sourceOperand: u32,
) -> usize;
}
unsafe extern "C" {
pub fn BNLowLevelILIf(
func: *mut BNLowLevelILFunction,
op: u64,
t: *mut BNLowLevelILLabel,
f: *mut BNLowLevelILLabel,
) -> usize;
}
unsafe extern "C" {
pub fn BNLowLevelILIfWithLocation(
func: *mut BNLowLevelILFunction,
op: u64,
t: *mut BNLowLevelILLabel,
f: *mut BNLowLevelILLabel,
addr: u64,
sourceOperand: u32,
) -> usize;
}
unsafe extern "C" {
pub fn BNLowLevelILInitLabel(label: *mut BNLowLevelILLabel);
}
unsafe extern "C" {
pub fn BNLowLevelILMarkLabel(func: *mut BNLowLevelILFunction, label: *mut BNLowLevelILLabel);
}
unsafe extern "C" {
pub fn BNFinalizeLowLevelILFunction(func: *mut BNLowLevelILFunction);
}
unsafe extern "C" {
pub fn BNGenerateLowLevelILSSAForm(func: *mut BNLowLevelILFunction);
}
unsafe extern "C" {
pub fn BNPrepareToCopyLowLevelILFunction(
func: *mut BNLowLevelILFunction,
src: *mut BNLowLevelILFunction,
);
}
unsafe extern "C" {
pub fn BNPrepareToCopyLowLevelILBasicBlock(
func: *mut BNLowLevelILFunction,
block: *mut BNBasicBlock,
);
}
unsafe extern "C" {
pub fn BNGetLabelForLowLevelILSourceInstruction(
func: *mut BNLowLevelILFunction,
instr: usize,
) -> *mut BNLowLevelILLabel;
}
unsafe extern "C" {
pub fn BNLowLevelILAddLabelMap(
func: *mut BNLowLevelILFunction,
values: *mut u64,
labels: *mut *mut BNLowLevelILLabel,
count: usize,
) -> usize;
}
unsafe extern "C" {
pub fn BNLowLevelILAddOperandList(
func: *mut BNLowLevelILFunction,
operands: *mut u64,
count: usize,
) -> usize;
}
unsafe extern "C" {
pub fn BNLowLevelILGetOperandList(
func: *mut BNLowLevelILFunction,
expr: usize,
operand: usize,
count: *mut usize,
) -> *mut u64;
}
unsafe extern "C" {
pub fn BNLowLevelILFreeOperandList(operands: *mut u64);
}
unsafe extern "C" {
pub fn BNCacheLowLevelILPossibleValueSet(
func: *mut BNLowLevelILFunction,
pvs: *mut BNPossibleValueSet,
) -> usize;
}
unsafe extern "C" {
pub fn BNGetCachedLowLevelILPossibleValueSet(
func: *mut BNLowLevelILFunction,
idx: usize,
) -> BNPossibleValueSet;
}
unsafe extern "C" {
pub fn BNGetLowLevelILByIndex(
func: *mut BNLowLevelILFunction,
i: usize,
) -> BNLowLevelILInstruction;
}
unsafe extern "C" {
pub fn BNGetLowLevelILIndexForInstruction(func: *mut BNLowLevelILFunction, i: usize) -> usize;
}
unsafe extern "C" {
pub fn BNGetLowLevelILInstructionForExpr(func: *mut BNLowLevelILFunction, expr: usize)
-> usize;
}
unsafe extern "C" {
pub fn BNGetLowLevelILInstructionCount(func: *mut BNLowLevelILFunction) -> usize;
}
unsafe extern "C" {
pub fn BNGetLowLevelILExprCount(func: *mut BNLowLevelILFunction) -> usize;
}
unsafe extern "C" {
pub fn BNUpdateLowLevelILOperand(
func: *mut BNLowLevelILFunction,
instr: usize,
operandIndex: usize,
value: u64,
);
}
unsafe extern "C" {
pub fn BNReplaceLowLevelILExpr(func: *mut BNLowLevelILFunction, expr: usize, newExpr: usize);
}
unsafe extern "C" {
pub fn BNSetLowLevelILExprAttributes(
func: *mut BNLowLevelILFunction,
expr: usize,
attributes: u32,
);
}
unsafe extern "C" {
pub fn BNAddLowLevelILLabelForAddress(
func: *mut BNLowLevelILFunction,
arch: *mut BNArchitecture,
addr: u64,
);
}
unsafe extern "C" {
pub fn BNGetLowLevelILLabelForAddress(
func: *mut BNLowLevelILFunction,
arch: *mut BNArchitecture,
addr: u64,
) -> *mut BNLowLevelILLabel;
}
unsafe extern "C" {
pub fn BNGetLowLevelILExprText(
func: *mut BNLowLevelILFunction,
arch: *mut BNArchitecture,
i: usize,
settings: *mut BNDisassemblySettings,
tokens: *mut *mut BNInstructionTextToken,
count: *mut usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetLowLevelILInstructionText(
il: *mut BNLowLevelILFunction,
func: *mut BNFunction,
arch: *mut BNArchitecture,
i: usize,
settings: *mut BNDisassemblySettings,
tokens: *mut *mut BNInstructionTextToken,
count: *mut usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetLowLevelILTemporaryRegisterCount(func: *mut BNLowLevelILFunction) -> u32;
}
unsafe extern "C" {
pub fn BNGetLowLevelILTemporaryFlagCount(func: *mut BNLowLevelILFunction) -> u32;
}
unsafe extern "C" {
pub fn BNGetLowLevelILBasicBlockList(
func: *mut BNLowLevelILFunction,
count: *mut usize,
) -> *mut *mut BNBasicBlock;
}
unsafe extern "C" {
pub fn BNGetLowLevelILBasicBlockForInstruction(
func: *mut BNLowLevelILFunction,
i: usize,
) -> *mut BNBasicBlock;
}
unsafe extern "C" {
pub fn BNGetLowLevelILSSAForm(func: *mut BNLowLevelILFunction) -> *mut BNLowLevelILFunction;
}
unsafe extern "C" {
pub fn BNGetLowLevelILNonSSAForm(func: *mut BNLowLevelILFunction) -> *mut BNLowLevelILFunction;
}
unsafe extern "C" {
pub fn BNGetLowLevelILSSAInstructionIndex(
func: *mut BNLowLevelILFunction,
instr: usize,
) -> usize;
}
unsafe extern "C" {
pub fn BNGetLowLevelILNonSSAInstructionIndex(
func: *mut BNLowLevelILFunction,
instr: usize,
) -> usize;
}
unsafe extern "C" {
pub fn BNGetLowLevelILSSAExprIndex(func: *mut BNLowLevelILFunction, expr: usize) -> usize;
}
unsafe extern "C" {
pub fn BNGetLowLevelILNonSSAExprIndex(func: *mut BNLowLevelILFunction, expr: usize) -> usize;
}
unsafe extern "C" {
pub fn BNGetLowLevelILSSARegisterDefinition(
func: *mut BNLowLevelILFunction,
reg: u32,
version: usize,
) -> usize;
}
unsafe extern "C" {
pub fn BNGetLowLevelILSSAFlagDefinition(
func: *mut BNLowLevelILFunction,
reg: u32,
version: usize,
) -> usize;
}
unsafe extern "C" {
pub fn BNGetLowLevelILSSAMemoryDefinition(
func: *mut BNLowLevelILFunction,
version: usize,
) -> usize;
}
unsafe extern "C" {
pub fn BNGetLowLevelILSSARegisterUses(
func: *mut BNLowLevelILFunction,
reg: u32,
version: usize,
count: *mut usize,
) -> *mut usize;
}
unsafe extern "C" {
pub fn BNGetLowLevelILSSAFlagUses(
func: *mut BNLowLevelILFunction,
reg: u32,
version: usize,
count: *mut usize,
) -> *mut usize;
}
unsafe extern "C" {
pub fn BNGetLowLevelILSSAMemoryUses(
func: *mut BNLowLevelILFunction,
version: usize,
count: *mut usize,
) -> *mut usize;
}
unsafe extern "C" {
pub fn BNGetLowLevelILSSARegisterValue(
func: *mut BNLowLevelILFunction,
reg: u32,
version: usize,
) -> BNRegisterValue;
}
unsafe extern "C" {
pub fn BNGetLowLevelILSSAFlagValue(
func: *mut BNLowLevelILFunction,
flag: u32,
version: usize,
) -> BNRegisterValue;
}
unsafe extern "C" {
pub fn BNGetLowLevelILExprValue(
func: *mut BNLowLevelILFunction,
expr: usize,
) -> BNRegisterValue;
}
unsafe extern "C" {
pub fn BNGetLowLevelILPossibleExprValues(
func: *mut BNLowLevelILFunction,
expr: usize,
options: *mut BNDataFlowQueryOption,
optionCount: usize,
) -> BNPossibleValueSet;
}
unsafe extern "C" {
pub fn BNGetLowLevelILRegisterValueAtInstruction(
func: *mut BNLowLevelILFunction,
reg: u32,
instr: usize,
) -> BNRegisterValue;
}
unsafe extern "C" {
pub fn BNGetLowLevelILRegisterValueAfterInstruction(
func: *mut BNLowLevelILFunction,
reg: u32,
instr: usize,
) -> BNRegisterValue;
}
unsafe extern "C" {
pub fn BNGetLowLevelILPossibleRegisterValuesAtInstruction(
func: *mut BNLowLevelILFunction,
reg: u32,
instr: usize,
options: *mut BNDataFlowQueryOption,
optionCount: usize,
) -> BNPossibleValueSet;
}
unsafe extern "C" {
pub fn BNGetLowLevelILPossibleRegisterValuesAfterInstruction(
func: *mut BNLowLevelILFunction,
reg: u32,
instr: usize,
options: *mut BNDataFlowQueryOption,
optionCount: usize,
) -> BNPossibleValueSet;
}
unsafe extern "C" {
pub fn BNGetLowLevelILFlagValueAtInstruction(
func: *mut BNLowLevelILFunction,
flag: u32,
instr: usize,
) -> BNRegisterValue;
}
unsafe extern "C" {
pub fn BNGetLowLevelILFlagValueAfterInstruction(
func: *mut BNLowLevelILFunction,
flag: u32,
instr: usize,
) -> BNRegisterValue;
}
unsafe extern "C" {
pub fn BNGetLowLevelILPossibleFlagValuesAtInstruction(
func: *mut BNLowLevelILFunction,
flag: u32,
instr: usize,
options: *mut BNDataFlowQueryOption,
optionCount: usize,
) -> BNPossibleValueSet;
}
unsafe extern "C" {
pub fn BNGetLowLevelILPossibleFlagValuesAfterInstruction(
func: *mut BNLowLevelILFunction,
flag: u32,
instr: usize,
options: *mut BNDataFlowQueryOption,
optionCount: usize,
) -> BNPossibleValueSet;
}
unsafe extern "C" {
pub fn BNGetLowLevelILStackContentsAtInstruction(
func: *mut BNLowLevelILFunction,
offset: i64,
len: usize,
instr: usize,
) -> BNRegisterValue;
}
unsafe extern "C" {
pub fn BNGetLowLevelILStackContentsAfterInstruction(
func: *mut BNLowLevelILFunction,
offset: i64,
len: usize,
instr: usize,
) -> BNRegisterValue;
}
unsafe extern "C" {
pub fn BNGetLowLevelILPossibleStackContentsAtInstruction(
func: *mut BNLowLevelILFunction,
offset: i64,
len: usize,
instr: usize,
options: *mut BNDataFlowQueryOption,
optionCount: usize,
) -> BNPossibleValueSet;
}
unsafe extern "C" {
pub fn BNGetLowLevelILPossibleStackContentsAfterInstruction(
func: *mut BNLowLevelILFunction,
offset: i64,
len: usize,
instr: usize,
options: *mut BNDataFlowQueryOption,
optionCount: usize,
) -> BNPossibleValueSet;
}
unsafe extern "C" {
pub fn BNGetLowLevelRegisters(func: *mut BNLowLevelILFunction, count: *mut usize) -> *mut u32;
}
unsafe extern "C" {
pub fn BNGetLowLevelRegisterStacks(
func: *mut BNLowLevelILFunction,
count: *mut usize,
) -> *mut u32;
}
unsafe extern "C" {
pub fn BNGetLowLevelFlags(func: *mut BNLowLevelILFunction, count: *mut usize) -> *mut u32;
}
unsafe extern "C" {
pub fn BNGetLowLevelSSARegistersWithoutVersions(
func: *mut BNLowLevelILFunction,
count: *mut usize,
) -> *mut u32;
}
unsafe extern "C" {
pub fn BNGetLowLevelSSARegisterStacksWithoutVersions(
func: *mut BNLowLevelILFunction,
count: *mut usize,
) -> *mut u32;
}
unsafe extern "C" {
pub fn BNGetLowLevelSSAFlagsWithoutVersions(
func: *mut BNLowLevelILFunction,
count: *mut usize,
) -> *mut u32;
}
unsafe extern "C" {
pub fn BNGetLowLevelRegisterSSAVersions(
func: *mut BNLowLevelILFunction,
var: u32,
count: *mut usize,
) -> *mut usize;
}
unsafe extern "C" {
pub fn BNGetLowLevelRegisterStackSSAVersions(
func: *mut BNLowLevelILFunction,
var: u32,
count: *mut usize,
) -> *mut usize;
}
unsafe extern "C" {
pub fn BNGetLowLevelFlagSSAVersions(
func: *mut BNLowLevelILFunction,
var: u32,
count: *mut usize,
) -> *mut usize;
}
unsafe extern "C" {
pub fn BNGetLowLevelMemoryVersions(
func: *mut BNLowLevelILFunction,
count: *mut usize,
) -> *mut usize;
}
unsafe extern "C" {
pub fn BNFreeLLILVariablesList(vars: *mut u32);
}
unsafe extern "C" {
pub fn BNFreeLLILVariableVersionList(versions: *mut usize);
}
unsafe extern "C" {
pub fn BNGetMediumLevelILForLowLevelIL(
func: *mut BNLowLevelILFunction,
) -> *mut BNMediumLevelILFunction;
}
unsafe extern "C" {
pub fn BNGetMappedMediumLevelIL(
func: *mut BNLowLevelILFunction,
) -> *mut BNMediumLevelILFunction;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILInstructionIndex(
func: *mut BNLowLevelILFunction,
instr: usize,
) -> usize;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILExprIndex(func: *mut BNLowLevelILFunction, expr: usize) -> usize;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILExprIndexes(
func: *mut BNLowLevelILFunction,
expr: usize,
count: *mut usize,
) -> *mut usize;
}
unsafe extern "C" {
pub fn BNGetMappedMediumLevelILInstructionIndex(
func: *mut BNLowLevelILFunction,
instr: usize,
) -> usize;
}
unsafe extern "C" {
pub fn BNGetMappedMediumLevelILExprIndex(func: *mut BNLowLevelILFunction, expr: usize)
-> usize;
}
unsafe extern "C" {
#[doc = " Medium-level IL"]
pub fn BNCreateMediumLevelILFunction(
arch: *mut BNArchitecture,
func: *mut BNFunction,
lowLevelIL: *mut BNLowLevelILFunction,
) -> *mut BNMediumLevelILFunction;
}
unsafe extern "C" {
pub fn BNNewMediumLevelILFunctionReference(
func: *mut BNMediumLevelILFunction,
) -> *mut BNMediumLevelILFunction;
}
unsafe extern "C" {
pub fn BNFreeMediumLevelILFunction(func: *mut BNMediumLevelILFunction);
}
unsafe extern "C" {
pub fn BNGetMediumLevelILOwnerFunction(func: *mut BNMediumLevelILFunction) -> *mut BNFunction;
}
unsafe extern "C" {
pub fn BNMediumLevelILGetCurrentAddress(func: *mut BNMediumLevelILFunction) -> u64;
}
unsafe extern "C" {
pub fn BNMediumLevelILSetCurrentAddress(
func: *mut BNMediumLevelILFunction,
arch: *mut BNArchitecture,
addr: u64,
);
}
unsafe extern "C" {
pub fn BNMediumLevelILGetInstructionStart(
func: *mut BNMediumLevelILFunction,
arch: *mut BNArchitecture,
addr: u64,
) -> usize;
}
unsafe extern "C" {
pub fn BNMediumLevelILAddExpr(
func: *mut BNMediumLevelILFunction,
operation: BNMediumLevelILOperation,
size: usize,
a: u64,
b: u64,
c: u64,
d: u64,
e: u64,
) -> usize;
}
unsafe extern "C" {
pub fn BNMediumLevelILAddExprWithLocation(
func: *mut BNMediumLevelILFunction,
operation: BNMediumLevelILOperation,
addr: u64,
sourceOperand: u32,
size: usize,
a: u64,
b: u64,
c: u64,
d: u64,
e: u64,
) -> usize;
}
unsafe extern "C" {
pub fn BNMediumLevelILAddInstruction(func: *mut BNMediumLevelILFunction, expr: usize) -> usize;
}
unsafe extern "C" {
pub fn BNMediumLevelILGoto(
func: *mut BNMediumLevelILFunction,
label: *mut BNMediumLevelILLabel,
) -> usize;
}
unsafe extern "C" {
pub fn BNMediumLevelILGotoWithLocation(
func: *mut BNMediumLevelILFunction,
label: *mut BNMediumLevelILLabel,
addr: u64,
sourceOperand: u32,
) -> usize;
}
unsafe extern "C" {
pub fn BNMediumLevelILIf(
func: *mut BNMediumLevelILFunction,
op: u64,
t: *mut BNMediumLevelILLabel,
f: *mut BNMediumLevelILLabel,
) -> usize;
}
unsafe extern "C" {
pub fn BNMediumLevelILIfWithLocation(
func: *mut BNMediumLevelILFunction,
op: u64,
t: *mut BNMediumLevelILLabel,
f: *mut BNMediumLevelILLabel,
addr: u64,
sourceOperand: u32,
) -> usize;
}
unsafe extern "C" {
pub fn BNMediumLevelILInitLabel(label: *mut BNMediumLevelILLabel);
}
unsafe extern "C" {
pub fn BNMediumLevelILMarkLabel(
func: *mut BNMediumLevelILFunction,
label: *mut BNMediumLevelILLabel,
);
}
unsafe extern "C" {
pub fn BNFinalizeMediumLevelILFunction(func: *mut BNMediumLevelILFunction);
}
unsafe extern "C" {
pub fn BNGenerateMediumLevelILSSAForm(
func: *mut BNMediumLevelILFunction,
analyzeConditionals: bool,
handleAliases: bool,
knownNotAliases: *mut BNVariable,
knownNotAliasCount: usize,
knownAliases: *mut BNVariable,
knownAliasCount: usize,
);
}
unsafe extern "C" {
pub fn BNPrepareToCopyMediumLevelILFunction(
func: *mut BNMediumLevelILFunction,
src: *mut BNMediumLevelILFunction,
);
}
unsafe extern "C" {
pub fn BNPrepareToCopyMediumLevelILBasicBlock(
func: *mut BNMediumLevelILFunction,
block: *mut BNBasicBlock,
);
}
unsafe extern "C" {
pub fn BNGetLabelForMediumLevelILSourceInstruction(
func: *mut BNMediumLevelILFunction,
instr: usize,
) -> *mut BNMediumLevelILLabel;
}
unsafe extern "C" {
pub fn BNMediumLevelILAddLabelMap(
func: *mut BNMediumLevelILFunction,
values: *mut u64,
labels: *mut *mut BNMediumLevelILLabel,
count: usize,
) -> usize;
}
unsafe extern "C" {
pub fn BNMediumLevelILAddOperandList(
func: *mut BNMediumLevelILFunction,
operands: *mut u64,
count: usize,
) -> usize;
}
unsafe extern "C" {
pub fn BNMediumLevelILGetOperandList(
func: *mut BNMediumLevelILFunction,
expr: usize,
operand: usize,
count: *mut usize,
) -> *mut u64;
}
unsafe extern "C" {
pub fn BNMediumLevelILFreeOperandList(operands: *mut u64);
}
unsafe extern "C" {
pub fn BNCacheMediumLevelILPossibleValueSet(
func: *mut BNMediumLevelILFunction,
pvs: *mut BNPossibleValueSet,
) -> usize;
}
unsafe extern "C" {
pub fn BNGetCachedMediumLevelILPossibleValueSet(
func: *mut BNMediumLevelILFunction,
idx: usize,
) -> BNPossibleValueSet;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILByIndex(
func: *mut BNMediumLevelILFunction,
i: usize,
) -> BNMediumLevelILInstruction;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILIndexForInstruction(
func: *mut BNMediumLevelILFunction,
i: usize,
) -> usize;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILInstructionForExpr(
func: *mut BNMediumLevelILFunction,
expr: usize,
) -> usize;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILInstructionCount(func: *mut BNMediumLevelILFunction) -> usize;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILExprCount(func: *mut BNMediumLevelILFunction) -> usize;
}
unsafe extern "C" {
pub fn BNUpdateMediumLevelILOperand(
func: *mut BNMediumLevelILFunction,
instr: usize,
operandIndex: usize,
value: u64,
);
}
unsafe extern "C" {
pub fn BNMarkMediumLevelILInstructionForRemoval(
func: *mut BNMediumLevelILFunction,
instr: usize,
);
}
unsafe extern "C" {
pub fn BNReplaceMediumLevelILInstruction(
func: *mut BNMediumLevelILFunction,
instr: usize,
expr: usize,
);
}
unsafe extern "C" {
pub fn BNReplaceMediumLevelILExpr(
func: *mut BNMediumLevelILFunction,
expr: usize,
newExpr: usize,
);
}
unsafe extern "C" {
pub fn BNSetMediumLevelILExprAttributes(
func: *mut BNMediumLevelILFunction,
expr: usize,
attributes: u32,
);
}
unsafe extern "C" {
pub fn BNGetMediumLevelILExprText(
func: *mut BNMediumLevelILFunction,
arch: *mut BNArchitecture,
i: usize,
tokens: *mut *mut BNInstructionTextToken,
count: *mut usize,
settings: *mut BNDisassemblySettings,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILInstructionText(
il: *mut BNMediumLevelILFunction,
func: *mut BNFunction,
arch: *mut BNArchitecture,
i: usize,
tokens: *mut *mut BNInstructionTextToken,
count: *mut usize,
settings: *mut BNDisassemblySettings,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILBasicBlockList(
func: *mut BNMediumLevelILFunction,
count: *mut usize,
) -> *mut *mut BNBasicBlock;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILBasicBlockForInstruction(
func: *mut BNMediumLevelILFunction,
i: usize,
) -> *mut BNBasicBlock;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILSSAForm(
func: *mut BNMediumLevelILFunction,
) -> *mut BNMediumLevelILFunction;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILNonSSAForm(
func: *mut BNMediumLevelILFunction,
) -> *mut BNMediumLevelILFunction;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILSSAInstructionIndex(
func: *mut BNMediumLevelILFunction,
instr: usize,
) -> usize;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILNonSSAInstructionIndex(
func: *mut BNMediumLevelILFunction,
instr: usize,
) -> usize;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILSSAExprIndex(func: *mut BNMediumLevelILFunction, expr: usize)
-> usize;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILNonSSAExprIndex(
func: *mut BNMediumLevelILFunction,
expr: usize,
) -> usize;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILSSAVarDefinition(
func: *mut BNMediumLevelILFunction,
var: *const BNVariable,
version: usize,
) -> usize;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILSSAMemoryDefinition(
func: *mut BNMediumLevelILFunction,
version: usize,
) -> usize;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILSSAVarUses(
func: *mut BNMediumLevelILFunction,
var: *const BNVariable,
version: usize,
count: *mut usize,
) -> *mut usize;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILSSAMemoryUses(
func: *mut BNMediumLevelILFunction,
version: usize,
count: *mut usize,
) -> *mut usize;
}
unsafe extern "C" {
pub fn BNIsMediumLevelILSSAVarLive(
func: *mut BNMediumLevelILFunction,
var: *const BNVariable,
version: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNIsMediumLevelILSSAVarLiveAt(
func: *mut BNMediumLevelILFunction,
var: *const BNVariable,
version: usize,
instr: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNIsMediumLevelILVarLiveAt(
func: *mut BNMediumLevelILFunction,
var: *const BNVariable,
instr: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILVariables(
func: *mut BNMediumLevelILFunction,
count: *mut usize,
) -> *mut BNVariable;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILAliasedVariables(
func: *mut BNMediumLevelILFunction,
count: *mut usize,
) -> *mut BNVariable;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILVariableSSAVersions(
func: *mut BNMediumLevelILFunction,
var: *const BNVariable,
count: *mut usize,
) -> *mut usize;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILVariableDefinitions(
func: *mut BNMediumLevelILFunction,
var: *const BNVariable,
count: *mut usize,
) -> *mut usize;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILVariableUses(
func: *mut BNMediumLevelILFunction,
var: *const BNVariable,
count: *mut usize,
) -> *mut usize;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILLiveInstructionsForVariable(
func: *mut BNMediumLevelILFunction,
var: *const BNVariable,
includeLastUse: bool,
count: *mut usize,
) -> *mut usize;
}
unsafe extern "C" {
pub fn BNGetDefaultIndexForMediumLevelILVariableDefinition(
func: *mut BNMediumLevelILFunction,
var: *const BNVariable,
instrIndex: usize,
) -> u32;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILSSAVarValue(
func: *mut BNMediumLevelILFunction,
var: *const BNVariable,
version: usize,
) -> BNRegisterValue;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILExprValue(
func: *mut BNMediumLevelILFunction,
expr: usize,
) -> BNRegisterValue;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILPossibleSSAVarValues(
func: *mut BNMediumLevelILFunction,
var: *const BNVariable,
version: usize,
instr: usize,
options: *mut BNDataFlowQueryOption,
optionCount: usize,
) -> BNPossibleValueSet;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILPossibleExprValues(
func: *mut BNMediumLevelILFunction,
expr: usize,
options: *mut BNDataFlowQueryOption,
optionCount: usize,
) -> BNPossibleValueSet;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILSSAVarVersionAtILInstruction(
func: *mut BNMediumLevelILFunction,
var: *const BNVariable,
instr: usize,
) -> usize;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILSSAVarVersionAfterILInstruction(
func: *mut BNMediumLevelILFunction,
var: *const BNVariable,
instr: usize,
) -> usize;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILSSAMemoryVersionAtILInstruction(
func: *mut BNMediumLevelILFunction,
instr: usize,
) -> usize;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILSSAMemoryVersionAfterILInstruction(
func: *mut BNMediumLevelILFunction,
instr: usize,
) -> usize;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILVariableForRegisterAtInstruction(
func: *mut BNMediumLevelILFunction,
reg: u32,
instr: usize,
) -> BNVariable;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILVariableForRegisterAfterInstruction(
func: *mut BNMediumLevelILFunction,
reg: u32,
instr: usize,
) -> BNVariable;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILVariableForFlagAtInstruction(
func: *mut BNMediumLevelILFunction,
flag: u32,
instr: usize,
) -> BNVariable;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILVariableForFlagAfterInstruction(
func: *mut BNMediumLevelILFunction,
flag: u32,
instr: usize,
) -> BNVariable;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILVariableForStackLocationAtInstruction(
func: *mut BNMediumLevelILFunction,
offset: i64,
instr: usize,
) -> BNVariable;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILVariableForStackLocationAfterInstruction(
func: *mut BNMediumLevelILFunction,
offset: i64,
instr: usize,
) -> BNVariable;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILRegisterValueAtInstruction(
func: *mut BNMediumLevelILFunction,
reg: u32,
instr: usize,
) -> BNRegisterValue;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILRegisterValueAfterInstruction(
func: *mut BNMediumLevelILFunction,
reg: u32,
instr: usize,
) -> BNRegisterValue;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILPossibleRegisterValuesAtInstruction(
func: *mut BNMediumLevelILFunction,
reg: u32,
instr: usize,
options: *mut BNDataFlowQueryOption,
optionCount: usize,
) -> BNPossibleValueSet;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILPossibleRegisterValuesAfterInstruction(
func: *mut BNMediumLevelILFunction,
reg: u32,
instr: usize,
options: *mut BNDataFlowQueryOption,
optionCount: usize,
) -> BNPossibleValueSet;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILFlagValueAtInstruction(
func: *mut BNMediumLevelILFunction,
flag: u32,
instr: usize,
) -> BNRegisterValue;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILFlagValueAfterInstruction(
func: *mut BNMediumLevelILFunction,
flag: u32,
instr: usize,
) -> BNRegisterValue;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILPossibleFlagValuesAtInstruction(
func: *mut BNMediumLevelILFunction,
flag: u32,
instr: usize,
options: *mut BNDataFlowQueryOption,
optionCount: usize,
) -> BNPossibleValueSet;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILPossibleFlagValuesAfterInstruction(
func: *mut BNMediumLevelILFunction,
flag: u32,
instr: usize,
options: *mut BNDataFlowQueryOption,
optionCount: usize,
) -> BNPossibleValueSet;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILStackContentsAtInstruction(
func: *mut BNMediumLevelILFunction,
offset: i64,
len: usize,
instr: usize,
) -> BNRegisterValue;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILStackContentsAfterInstruction(
func: *mut BNMediumLevelILFunction,
offset: i64,
len: usize,
instr: usize,
) -> BNRegisterValue;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILPossibleStackContentsAtInstruction(
func: *mut BNMediumLevelILFunction,
offset: i64,
len: usize,
instr: usize,
options: *mut BNDataFlowQueryOption,
optionCount: usize,
) -> BNPossibleValueSet;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILPossibleStackContentsAfterInstruction(
func: *mut BNMediumLevelILFunction,
offset: i64,
len: usize,
instr: usize,
options: *mut BNDataFlowQueryOption,
optionCount: usize,
) -> BNPossibleValueSet;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILBranchDependence(
func: *mut BNMediumLevelILFunction,
curInstr: usize,
branchInstr: usize,
) -> BNILBranchDependence;
}
unsafe extern "C" {
pub fn BNGetAllMediumLevelILBranchDependence(
func: *mut BNMediumLevelILFunction,
instr: usize,
count: *mut usize,
) -> *mut BNILBranchInstructionAndDependence;
}
unsafe extern "C" {
pub fn BNFreeILBranchDependenceList(branches: *mut BNILBranchInstructionAndDependence);
}
unsafe extern "C" {
pub fn BNGetLowLevelILForMediumLevelIL(
func: *mut BNMediumLevelILFunction,
) -> *mut BNLowLevelILFunction;
}
unsafe extern "C" {
pub fn BNGetLowLevelILInstructionIndex(
func: *mut BNMediumLevelILFunction,
instr: usize,
) -> usize;
}
unsafe extern "C" {
pub fn BNGetLowLevelILExprIndex(func: *mut BNMediumLevelILFunction, expr: usize) -> usize;
}
unsafe extern "C" {
pub fn BNGetLowLevelILExprIndexes(
func: *mut BNMediumLevelILFunction,
expr: usize,
count: *mut usize,
) -> *mut usize;
}
unsafe extern "C" {
pub fn BNGetHighLevelILForMediumLevelIL(
func: *mut BNMediumLevelILFunction,
) -> *mut BNHighLevelILFunction;
}
unsafe extern "C" {
pub fn BNGetHighLevelILInstructionIndex(
func: *mut BNMediumLevelILFunction,
instr: usize,
) -> usize;
}
unsafe extern "C" {
pub fn BNGetHighLevelILExprIndex(func: *mut BNMediumLevelILFunction, expr: usize) -> usize;
}
unsafe extern "C" {
pub fn BNGetHighLevelILExprIndexes(
func: *mut BNMediumLevelILFunction,
expr: usize,
count: *mut usize,
) -> *mut usize;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILExprType(
func: *mut BNMediumLevelILFunction,
expr: usize,
) -> BNTypeWithConfidence;
}
unsafe extern "C" {
pub fn BNSetMediumLevelILExprType(
func: *mut BNMediumLevelILFunction,
expr: usize,
type_: *mut BNTypeWithConfidence,
);
}
unsafe extern "C" {
#[doc = " High-level IL"]
pub fn BNCreateHighLevelILFunction(
arch: *mut BNArchitecture,
func: *mut BNFunction,
) -> *mut BNHighLevelILFunction;
}
unsafe extern "C" {
pub fn BNNewHighLevelILFunctionReference(
func: *mut BNHighLevelILFunction,
) -> *mut BNHighLevelILFunction;
}
unsafe extern "C" {
pub fn BNFreeHighLevelILFunction(func: *mut BNHighLevelILFunction);
}
unsafe extern "C" {
pub fn BNGetHighLevelILOwnerFunction(func: *mut BNHighLevelILFunction) -> *mut BNFunction;
}
unsafe extern "C" {
pub fn BNHighLevelILGetCurrentAddress(func: *mut BNHighLevelILFunction) -> u64;
}
unsafe extern "C" {
pub fn BNHighLevelILSetCurrentAddress(
func: *mut BNHighLevelILFunction,
arch: *mut BNArchitecture,
addr: u64,
);
}
unsafe extern "C" {
pub fn BNHighLevelILAddExpr(
func: *mut BNHighLevelILFunction,
operation: BNHighLevelILOperation,
size: usize,
a: u64,
b: u64,
c: u64,
d: u64,
e: u64,
) -> usize;
}
unsafe extern "C" {
pub fn BNHighLevelILAddExprWithLocation(
func: *mut BNHighLevelILFunction,
operation: BNHighLevelILOperation,
addr: u64,
sourceOperand: u32,
size: usize,
a: u64,
b: u64,
c: u64,
d: u64,
e: u64,
) -> usize;
}
unsafe extern "C" {
pub fn BNGetHighLevelILRootExpr(func: *mut BNHighLevelILFunction) -> usize;
}
unsafe extern "C" {
pub fn BNSetHighLevelILRootExpr(func: *mut BNHighLevelILFunction, expr: usize);
}
unsafe extern "C" {
pub fn BNFinalizeHighLevelILFunction(func: *mut BNHighLevelILFunction);
}
unsafe extern "C" {
pub fn BNGenerateHighLevelILSSAForm(
func: *mut BNHighLevelILFunction,
aliases: *mut BNVariable,
aliasCount: usize,
);
}
unsafe extern "C" {
pub fn BNHighLevelILAddOperandList(
func: *mut BNHighLevelILFunction,
operands: *mut u64,
count: usize,
) -> usize;
}
unsafe extern "C" {
pub fn BNHighLevelILGetOperandList(
func: *mut BNHighLevelILFunction,
expr: usize,
operand: usize,
count: *mut usize,
) -> *mut u64;
}
unsafe extern "C" {
pub fn BNHighLevelILFreeOperandList(operands: *mut u64);
}
unsafe extern "C" {
pub fn BNCacheHighLevelILPossibleValueSet(
func: *mut BNHighLevelILFunction,
pvs: *mut BNPossibleValueSet,
) -> usize;
}
unsafe extern "C" {
pub fn BNGetCachedHighLevelILPossibleValueSet(
func: *mut BNHighLevelILFunction,
idx: usize,
) -> BNPossibleValueSet;
}
unsafe extern "C" {
pub fn BNGetHighLevelILByIndex(
func: *mut BNHighLevelILFunction,
i: usize,
asFullAst: bool,
) -> BNHighLevelILInstruction;
}
unsafe extern "C" {
pub fn BNGetHighLevelILIndexForInstruction(func: *mut BNHighLevelILFunction, i: usize)
-> usize;
}
unsafe extern "C" {
pub fn BNGetHighLevelILInstructionForExpr(
func: *mut BNHighLevelILFunction,
expr: usize,
) -> usize;
}
unsafe extern "C" {
pub fn BNGetHighLevelILInstructionCount(func: *mut BNHighLevelILFunction) -> usize;
}
unsafe extern "C" {
pub fn BNGetHighLevelILExprCount(func: *mut BNHighLevelILFunction) -> usize;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILForHighLevelILFunction(
func: *mut BNHighLevelILFunction,
) -> *mut BNMediumLevelILFunction;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILExprIndexFromHighLevelIL(
func: *mut BNHighLevelILFunction,
expr: usize,
) -> usize;
}
unsafe extern "C" {
pub fn BNGetMediumLevelILExprIndexesFromHighLevelIL(
func: *mut BNHighLevelILFunction,
expr: usize,
count: *mut usize,
) -> *mut usize;
}
unsafe extern "C" {
pub fn BNUpdateHighLevelILOperand(
func: *mut BNHighLevelILFunction,
instr: usize,
operandIndex: usize,
value: u64,
);
}
unsafe extern "C" {
pub fn BNReplaceHighLevelILExpr(func: *mut BNHighLevelILFunction, expr: usize, newExpr: usize);
}
unsafe extern "C" {
pub fn BNSetHighLevelILExprAttributes(
func: *mut BNHighLevelILFunction,
expr: usize,
attributes: u32,
);
}
unsafe extern "C" {
pub fn BNGetHighLevelILExprText(
func: *mut BNHighLevelILFunction,
expr: usize,
asFullAst: bool,
count: *mut usize,
settings: *mut BNDisassemblySettings,
) -> *mut BNDisassemblyTextLine;
}
unsafe extern "C" {
pub fn BNGetHighLevelILExprType(
func: *mut BNHighLevelILFunction,
expr: usize,
) -> BNTypeWithConfidence;
}
unsafe extern "C" {
pub fn BNSetHighLevelILExprType(
func: *mut BNHighLevelILFunction,
expr: usize,
type_: *mut BNTypeWithConfidence,
);
}
unsafe extern "C" {
pub fn BNGetHighLevelILBasicBlockList(
func: *mut BNHighLevelILFunction,
count: *mut usize,
) -> *mut *mut BNBasicBlock;
}
unsafe extern "C" {
pub fn BNGetHighLevelILBasicBlockForInstruction(
func: *mut BNHighLevelILFunction,
i: usize,
) -> *mut BNBasicBlock;
}
unsafe extern "C" {
pub fn BNGetHighLevelILSSAForm(func: *mut BNHighLevelILFunction) -> *mut BNHighLevelILFunction;
}
unsafe extern "C" {
pub fn BNGetHighLevelILNonSSAForm(
func: *mut BNHighLevelILFunction,
) -> *mut BNHighLevelILFunction;
}
unsafe extern "C" {
pub fn BNGetHighLevelILSSAInstructionIndex(
func: *mut BNHighLevelILFunction,
instr: usize,
) -> usize;
}
unsafe extern "C" {
pub fn BNGetHighLevelILNonSSAInstructionIndex(
func: *mut BNHighLevelILFunction,
instr: usize,
) -> usize;
}
unsafe extern "C" {
pub fn BNGetHighLevelILSSAExprIndex(func: *mut BNHighLevelILFunction, expr: usize) -> usize;
}
unsafe extern "C" {
pub fn BNGetHighLevelILNonSSAExprIndex(func: *mut BNHighLevelILFunction, expr: usize) -> usize;
}
unsafe extern "C" {
pub fn BNGetHighLevelILSSAVarDefinition(
func: *mut BNHighLevelILFunction,
var: *const BNVariable,
version: usize,
) -> usize;
}
unsafe extern "C" {
pub fn BNGetHighLevelILSSAMemoryDefinition(
func: *mut BNHighLevelILFunction,
version: usize,
) -> usize;
}
unsafe extern "C" {
pub fn BNGetHighLevelILSSAVarUses(
func: *mut BNHighLevelILFunction,
var: *const BNVariable,
version: usize,
count: *mut usize,
) -> *mut usize;
}
unsafe extern "C" {
pub fn BNGetHighLevelILSSAMemoryUses(
func: *mut BNHighLevelILFunction,
version: usize,
count: *mut usize,
) -> *mut usize;
}
unsafe extern "C" {
pub fn BNIsHighLevelILSSAVarLive(
func: *mut BNHighLevelILFunction,
var: *const BNVariable,
version: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNIsHighLevelILSSAVarLiveAt(
func: *mut BNHighLevelILFunction,
var: *const BNVariable,
version: usize,
instr: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNIsHighLevelILVarLiveAt(
func: *mut BNHighLevelILFunction,
var: *const BNVariable,
instr: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNHighLevelILHasSideEffects(func: *mut BNHighLevelILFunction, exprIndex: usize) -> bool;
}
unsafe extern "C" {
pub fn BNGetHighLevelILExprScopeType(
func: *mut BNHighLevelILFunction,
exprIndex: usize,
) -> BNScopeType;
}
unsafe extern "C" {
pub fn BNGetHighLevelILVariables(
func: *mut BNHighLevelILFunction,
count: *mut usize,
) -> *mut BNVariable;
}
unsafe extern "C" {
pub fn BNGetHighLevelILAliasedVariables(
func: *mut BNHighLevelILFunction,
count: *mut usize,
) -> *mut BNVariable;
}
unsafe extern "C" {
pub fn BNGetHighLevelILVariableSSAVersions(
func: *mut BNHighLevelILFunction,
var: *const BNVariable,
count: *mut usize,
) -> *mut usize;
}
unsafe extern "C" {
pub fn BNGetHighLevelILVariableDefinitions(
func: *mut BNHighLevelILFunction,
var: *const BNVariable,
count: *mut usize,
) -> *mut usize;
}
unsafe extern "C" {
pub fn BNGetHighLevelILVariableUses(
func: *mut BNHighLevelILFunction,
var: *const BNVariable,
count: *mut usize,
) -> *mut usize;
}
unsafe extern "C" {
pub fn BNGetHighLevelILSSAVarVersionAtILInstruction(
func: *mut BNHighLevelILFunction,
var: *const BNVariable,
instr: usize,
) -> usize;
}
unsafe extern "C" {
pub fn BNGetHighLevelILSSAMemoryVersionAtILInstruction(
func: *mut BNHighLevelILFunction,
instr: usize,
) -> usize;
}
unsafe extern "C" {
pub fn BNGetHighLevelILExprIndexForLabel(func: *mut BNHighLevelILFunction, label: u64)
-> usize;
}
unsafe extern "C" {
pub fn BNGetHighLevelILUsesForLabel(
func: *mut BNHighLevelILFunction,
label: u64,
count: *mut usize,
) -> *mut usize;
}
unsafe extern "C" {
pub fn BNHighLevelILExprLessThan(
leftFunc: *mut BNHighLevelILFunction,
leftExpr: usize,
rightFunc: *mut BNHighLevelILFunction,
rightExpr: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNHighLevelILExprEqual(
leftFunc: *mut BNHighLevelILFunction,
leftExpr: usize,
rightFunc: *mut BNHighLevelILFunction,
rightExpr: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNSetHighLevelILDerivedStringReferenceForExpr(
func: *mut BNHighLevelILFunction,
expr: usize,
str_: *mut BNDerivedString,
);
}
unsafe extern "C" {
pub fn BNRemoveHighLevelILDerivedStringReferenceForExpr(
func: *mut BNHighLevelILFunction,
expr: usize,
);
}
unsafe extern "C" {
pub fn BNGetHighLevelILDerivedStringReferenceForExpr(
func: *mut BNHighLevelILFunction,
expr: usize,
out: *mut BNDerivedString,
) -> bool;
}
unsafe extern "C" {
#[doc = " Type Libraries"]
pub fn BNNewTypeLibrary(
arch: *mut BNArchitecture,
name: *const ::std::os::raw::c_char,
) -> *mut BNTypeLibrary;
}
unsafe extern "C" {
pub fn BNNewTypeLibraryReference(lib: *mut BNTypeLibrary) -> *mut BNTypeLibrary;
}
unsafe extern "C" {
pub fn BNDuplicateTypeLibrary(lib: *mut BNTypeLibrary) -> *mut BNTypeLibrary;
}
unsafe extern "C" {
pub fn BNLoadTypeLibraryFromFile(path: *const ::std::os::raw::c_char) -> *mut BNTypeLibrary;
}
unsafe extern "C" {
pub fn BNTypeLibraryDecompressToFile(
file: *const ::std::os::raw::c_char,
output: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNFreeTypeLibrary(lib: *mut BNTypeLibrary);
}
unsafe extern "C" {
pub fn BNLookupTypeLibraryByName(
arch: *mut BNArchitecture,
name: *const ::std::os::raw::c_char,
) -> *mut BNTypeLibrary;
}
unsafe extern "C" {
pub fn BNLookupTypeLibraryByGuid(
arch: *mut BNArchitecture,
guid: *const ::std::os::raw::c_char,
) -> *mut BNTypeLibrary;
}
unsafe extern "C" {
pub fn BNGetArchitectureTypeLibraries(
arch: *mut BNArchitecture,
count: *mut usize,
) -> *mut *mut BNTypeLibrary;
}
unsafe extern "C" {
pub fn BNFreeTypeLibraryList(lib: *mut *mut BNTypeLibrary, count: usize);
}
unsafe extern "C" {
pub fn BNFinalizeTypeLibrary(lib: *mut BNTypeLibrary) -> bool;
}
unsafe extern "C" {
pub fn BNGetTypeLibraryArchitecture(lib: *mut BNTypeLibrary) -> *mut BNArchitecture;
}
unsafe extern "C" {
pub fn BNSetTypeLibraryName(lib: *mut BNTypeLibrary, name: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn BNGetTypeLibraryName(lib: *mut BNTypeLibrary) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNAddTypeLibraryAlternateName(
lib: *mut BNTypeLibrary,
name: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNGetTypeLibraryAlternateNames(
lib: *mut BNTypeLibrary,
count: *mut usize,
) -> *mut *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNSetTypeLibraryDependencyName(
lib: *mut BNTypeLibrary,
name: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNGetTypeLibraryDependencyName(lib: *mut BNTypeLibrary) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNSetTypeLibraryGuid(lib: *mut BNTypeLibrary, name: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn BNGetTypeLibraryGuid(lib: *mut BNTypeLibrary) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNClearTypeLibraryPlatforms(lib: *mut BNTypeLibrary);
}
unsafe extern "C" {
pub fn BNAddTypeLibraryPlatform(lib: *mut BNTypeLibrary, platform: *mut BNPlatform);
}
unsafe extern "C" {
pub fn BNGetTypeLibraryPlatforms(
lib: *mut BNTypeLibrary,
count: *mut usize,
) -> *mut *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNTypeLibraryStoreMetadata(
lib: *mut BNTypeLibrary,
key: *const ::std::os::raw::c_char,
value: *mut BNMetadata,
);
}
unsafe extern "C" {
pub fn BNTypeLibraryQueryMetadata(
lib: *mut BNTypeLibrary,
key: *const ::std::os::raw::c_char,
) -> *mut BNMetadata;
}
unsafe extern "C" {
pub fn BNTypeLibraryGetMetadata(lib: *mut BNTypeLibrary) -> *mut BNMetadata;
}
unsafe extern "C" {
pub fn BNTypeLibraryRemoveMetadata(lib: *mut BNTypeLibrary, key: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn BNGetTypeLibraryTypeContainer(lib: *mut BNTypeLibrary) -> *mut BNTypeContainer;
}
unsafe extern "C" {
pub fn BNAddTypeLibraryNamedObject(
lib: *mut BNTypeLibrary,
name: *mut BNQualifiedName,
type_: *mut BNType,
);
}
unsafe extern "C" {
pub fn BNAddTypeLibraryNamedType(
lib: *mut BNTypeLibrary,
name: *mut BNQualifiedName,
type_: *mut BNType,
);
}
unsafe extern "C" {
pub fn BNAddTypeLibraryNamedTypeSource(
lib: *mut BNTypeLibrary,
name: *mut BNQualifiedName,
source: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNGetTypeLibraryNamedObject(
lib: *mut BNTypeLibrary,
name: *mut BNQualifiedName,
) -> *mut BNType;
}
unsafe extern "C" {
pub fn BNGetTypeLibraryNamedType(
lib: *mut BNTypeLibrary,
name: *mut BNQualifiedName,
) -> *mut BNType;
}
unsafe extern "C" {
pub fn BNGetTypeLibraryNamedObjects(
lib: *mut BNTypeLibrary,
count: *mut usize,
) -> *mut BNQualifiedNameAndType;
}
unsafe extern "C" {
pub fn BNGetTypeLibraryNamedTypes(
lib: *mut BNTypeLibrary,
count: *mut usize,
) -> *mut BNQualifiedNameAndType;
}
unsafe extern "C" {
pub fn BNWriteTypeLibraryToFile(
lib: *mut BNTypeLibrary,
path: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNAddBinaryViewTypeLibrary(view: *mut BNBinaryView, lib: *mut BNTypeLibrary);
}
unsafe extern "C" {
pub fn BNGetBinaryViewTypeLibrary(
view: *mut BNBinaryView,
name: *const ::std::os::raw::c_char,
) -> *mut BNTypeLibrary;
}
unsafe extern "C" {
pub fn BNGetBinaryViewTypeLibraries(
view: *mut BNBinaryView,
count: *mut usize,
) -> *mut *mut BNTypeLibrary;
}
unsafe extern "C" {
pub fn BNBinaryViewImportTypeLibraryType(
view: *mut BNBinaryView,
lib: *mut *mut BNTypeLibrary,
name: *mut BNQualifiedName,
) -> *mut BNType;
}
unsafe extern "C" {
pub fn BNBinaryViewImportTypeLibraryObject(
view: *mut BNBinaryView,
lib: *mut *mut BNTypeLibrary,
name: *mut BNQualifiedName,
) -> *mut BNType;
}
unsafe extern "C" {
pub fn BNBinaryViewImportTypeLibraryTypeByGuid(
view: *mut BNBinaryView,
guid: *const ::std::os::raw::c_char,
) -> *mut BNType;
}
unsafe extern "C" {
pub fn BNBinaryViewGetTypeNameByGuid(
view: *mut BNBinaryView,
guid: *const ::std::os::raw::c_char,
) -> BNQualifiedName;
}
unsafe extern "C" {
pub fn BNBinaryViewExportTypeToTypeLibrary(
view: *mut BNBinaryView,
lib: *mut BNTypeLibrary,
name: *mut BNQualifiedName,
type_: *mut BNType,
);
}
unsafe extern "C" {
pub fn BNBinaryViewExportObjectToTypeLibrary(
view: *mut BNBinaryView,
lib: *mut BNTypeLibrary,
name: *mut BNQualifiedName,
type_: *mut BNType,
);
}
unsafe extern "C" {
pub fn BNBinaryViewSetManualDependencies(
view: *mut BNBinaryView,
viewTypeNames: *mut BNQualifiedName,
libTypeNames: *mut BNQualifiedName,
libNames: *mut *mut ::std::os::raw::c_char,
count: usize,
);
}
unsafe extern "C" {
pub fn BNBinaryViewRecordImportedObjectLibrary(
view: *mut BNBinaryView,
tgtPlatform: *mut BNPlatform,
tgtAddr: u64,
lib: *mut BNTypeLibrary,
name: *mut BNQualifiedName,
);
}
unsafe extern "C" {
pub fn BNBinaryViewLookupImportedObjectLibrary(
view: *mut BNBinaryView,
tgtPlatform: *mut BNPlatform,
tgtAddr: u64,
lib: *mut *mut BNTypeLibrary,
name: *mut BNQualifiedName,
) -> bool;
}
unsafe extern "C" {
pub fn BNBinaryViewLookupImportedTypeLibrary(
view: *mut BNBinaryView,
typeName: *const BNQualifiedName,
lib: *mut *mut BNTypeLibrary,
resultName: *mut BNQualifiedName,
) -> bool;
}
unsafe extern "C" {
#[doc = " Language Representation"]
pub fn BNRegisterLanguageRepresentationFunctionType(
name: *const ::std::os::raw::c_char,
type_: *mut BNCustomLanguageRepresentationFunctionType,
) -> *mut BNLanguageRepresentationFunctionType;
}
unsafe extern "C" {
pub fn BNGetLanguageRepresentationFunctionTypeByName(
name: *const ::std::os::raw::c_char,
) -> *mut BNLanguageRepresentationFunctionType;
}
unsafe extern "C" {
pub fn BNGetLanguageRepresentationFunctionTypeList(
count: *mut usize,
) -> *mut *mut BNLanguageRepresentationFunctionType;
}
unsafe extern "C" {
pub fn BNFreeLanguageRepresentationFunctionTypeList(
types: *mut *mut BNLanguageRepresentationFunctionType,
);
}
unsafe extern "C" {
pub fn BNGetLanguageRepresentationFunctionTypeName(
type_: *mut BNLanguageRepresentationFunctionType,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNCreateLanguageRepresentationFunction(
type_: *mut BNLanguageRepresentationFunctionType,
arch: *mut BNArchitecture,
func: *mut BNFunction,
highLevelIL: *mut BNHighLevelILFunction,
) -> *mut BNLanguageRepresentationFunction;
}
unsafe extern "C" {
pub fn BNIsLanguageRepresentationFunctionTypeValid(
type_: *mut BNLanguageRepresentationFunctionType,
view: *mut BNBinaryView,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetLanguageRepresentationFunctionTypePrinter(
type_: *mut BNLanguageRepresentationFunctionType,
) -> *mut BNTypePrinter;
}
unsafe extern "C" {
pub fn BNGetLanguageRepresentationFunctionTypeParser(
type_: *mut BNLanguageRepresentationFunctionType,
) -> *mut BNTypeParser;
}
unsafe extern "C" {
pub fn BNGetLanguageRepresentationFunctionTypeLineFormatter(
type_: *mut BNLanguageRepresentationFunctionType,
) -> *mut BNLineFormatter;
}
unsafe extern "C" {
pub fn BNGetLanguageRepresentationFunctionTypeFunctionTypeTokens(
type_: *mut BNLanguageRepresentationFunctionType,
func: *mut BNFunction,
settings: *mut BNDisassemblySettings,
count: *mut usize,
) -> *mut BNDisassemblyTextLine;
}
unsafe extern "C" {
pub fn BNCreateCustomLanguageRepresentationFunction(
type_: *mut BNLanguageRepresentationFunctionType,
arch: *mut BNArchitecture,
func: *mut BNFunction,
highLevelIL: *mut BNHighLevelILFunction,
callbacks: *mut BNCustomLanguageRepresentationFunction,
) -> *mut BNLanguageRepresentationFunction;
}
unsafe extern "C" {
pub fn BNNewLanguageRepresentationFunctionReference(
func: *mut BNLanguageRepresentationFunction,
) -> *mut BNLanguageRepresentationFunction;
}
unsafe extern "C" {
pub fn BNFreeLanguageRepresentationFunction(func: *mut BNLanguageRepresentationFunction);
}
unsafe extern "C" {
pub fn BNGetLanguageRepresentationType(
func: *mut BNLanguageRepresentationFunction,
) -> *mut BNLanguageRepresentationFunctionType;
}
unsafe extern "C" {
pub fn BNGetLanguageRepresentationArchitecture(
func: *mut BNLanguageRepresentationFunction,
) -> *mut BNArchitecture;
}
unsafe extern "C" {
pub fn BNGetLanguageRepresentationOwnerFunction(
func: *mut BNLanguageRepresentationFunction,
) -> *mut BNFunction;
}
unsafe extern "C" {
pub fn BNGetLanguageRepresentationILFunction(
func: *mut BNLanguageRepresentationFunction,
) -> *mut BNHighLevelILFunction;
}
unsafe extern "C" {
pub fn BNGetLanguageRepresentationFunctionExprText(
func: *mut BNLanguageRepresentationFunction,
il: *mut BNHighLevelILFunction,
exprIndex: usize,
settings: *mut BNDisassemblySettings,
asFullAst: bool,
precedence: BNOperatorPrecedence,
statement: bool,
count: *mut usize,
) -> *mut BNDisassemblyTextLine;
}
unsafe extern "C" {
pub fn BNGetLanguageRepresentationFunctionLinearLines(
func: *mut BNLanguageRepresentationFunction,
il: *mut BNHighLevelILFunction,
exprIndex: usize,
settings: *mut BNDisassemblySettings,
asFullAst: bool,
count: *mut usize,
) -> *mut BNDisassemblyTextLine;
}
unsafe extern "C" {
pub fn BNGetLanguageRepresentationFunctionBlockLines(
func: *mut BNLanguageRepresentationFunction,
block: *mut BNBasicBlock,
settings: *mut BNDisassemblySettings,
count: *mut usize,
) -> *mut BNDisassemblyTextLine;
}
unsafe extern "C" {
pub fn BNGetLanguageRepresentationFunctionHighlight(
func: *mut BNLanguageRepresentationFunction,
block: *mut BNBasicBlock,
) -> BNHighlightColor;
}
unsafe extern "C" {
pub fn BNGetLanguageRepresentationFunctionCommentStartString(
func: *mut BNLanguageRepresentationFunction,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetLanguageRepresentationFunctionCommentEndString(
func: *mut BNLanguageRepresentationFunction,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetLanguageRepresentationFunctionAnnotationStartString(
func: *mut BNLanguageRepresentationFunction,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetLanguageRepresentationFunctionAnnotationEndString(
func: *mut BNLanguageRepresentationFunction,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNNewFieldResolutionInfoReference(
info: *mut BNFieldResolutionInfo,
) -> *mut BNFieldResolutionInfo;
}
unsafe extern "C" {
pub fn BNFreeFieldResolutionInfo(info: *mut BNFieldResolutionInfo);
}
unsafe extern "C" {
#[doc = " Types"]
pub fn BNTypesEqual(a: *mut BNType, b: *mut BNType) -> bool;
}
unsafe extern "C" {
pub fn BNTypesNotEqual(a: *mut BNType, b: *mut BNType) -> bool;
}
unsafe extern "C" {
pub fn BNCreateVoidType() -> *mut BNType;
}
unsafe extern "C" {
pub fn BNCreateBoolType() -> *mut BNType;
}
unsafe extern "C" {
pub fn BNCreateIntegerType(
width: usize,
sign: *mut BNBoolWithConfidence,
altName: *const ::std::os::raw::c_char,
) -> *mut BNType;
}
unsafe extern "C" {
pub fn BNCreateFloatType(width: usize, altName: *const ::std::os::raw::c_char) -> *mut BNType;
}
unsafe extern "C" {
pub fn BNCreateWideCharType(
width: usize,
altName: *const ::std::os::raw::c_char,
) -> *mut BNType;
}
unsafe extern "C" {
pub fn BNCreateStructureType(s: *mut BNStructure) -> *mut BNType;
}
unsafe extern "C" {
pub fn BNCreateEnumerationType(
arch: *mut BNArchitecture,
e: *mut BNEnumeration,
width: usize,
isSigned: *mut BNBoolWithConfidence,
) -> *mut BNType;
}
unsafe extern "C" {
pub fn BNCreateEnumerationTypeOfWidth(
e: *mut BNEnumeration,
width: usize,
isSigned: *mut BNBoolWithConfidence,
) -> *mut BNType;
}
unsafe extern "C" {
pub fn BNCreatePointerType(
arch: *mut BNArchitecture,
type_: *const BNTypeWithConfidence,
cnst: *mut BNBoolWithConfidence,
vltl: *mut BNBoolWithConfidence,
refType: BNReferenceType,
) -> *mut BNType;
}
unsafe extern "C" {
pub fn BNCreatePointerTypeOfWidth(
width: usize,
type_: *const BNTypeWithConfidence,
cnst: *mut BNBoolWithConfidence,
vltl: *mut BNBoolWithConfidence,
refType: BNReferenceType,
) -> *mut BNType;
}
unsafe extern "C" {
pub fn BNCreateArrayType(type_: *const BNTypeWithConfidence, elem: u64) -> *mut BNType;
}
unsafe extern "C" {
pub fn BNCreateFunctionType(
returnValue: *mut BNTypeWithConfidence,
callingConvention: *mut BNCallingConventionWithConfidence,
params: *mut BNFunctionParameter,
paramCount: usize,
varArg: *mut BNBoolWithConfidence,
canReturn: *mut BNBoolWithConfidence,
stackAdjust: *mut BNOffsetWithConfidence,
regStackAdjustRegs: *mut u32,
regStackAdjustValues: *mut BNOffsetWithConfidence,
regStackAdjustCount: usize,
returnRegs: *mut BNRegisterSetWithConfidence,
ft: BNNameType,
pure_: *mut BNBoolWithConfidence,
) -> *mut BNType;
}
unsafe extern "C" {
pub fn BNCreateVarArgsType() -> *mut BNType;
}
unsafe extern "C" {
pub fn BNCreateValueType(value: *const ::std::os::raw::c_char) -> *mut BNType;
}
unsafe extern "C" {
pub fn BNGetNameTypeString(classFunctionType: BNNameType) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNNewTypeReference(type_: *mut BNType) -> *mut BNType;
}
unsafe extern "C" {
pub fn BNDuplicateType(type_: *mut BNType) -> *mut BNType;
}
unsafe extern "C" {
pub fn BNGetTypeAndName(
type_: *mut BNType,
name: *mut BNQualifiedName,
escaping: BNTokenEscapingType,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNFreeType(type_: *mut BNType);
}
unsafe extern "C" {
pub fn BNFreeTypeList(types: *mut *mut BNType, count: usize);
}
unsafe extern "C" {
pub fn BNTypeSetIgnored(type_: *mut BNType, ignored: bool) -> *mut BNType;
}
unsafe extern "C" {
pub fn BNCreateTypeBuilderFromType(type_: *mut BNType) -> *mut BNTypeBuilder;
}
unsafe extern "C" {
pub fn BNCreateVoidTypeBuilder() -> *mut BNTypeBuilder;
}
unsafe extern "C" {
pub fn BNCreateBoolTypeBuilder() -> *mut BNTypeBuilder;
}
unsafe extern "C" {
pub fn BNCreateIntegerTypeBuilder(
width: usize,
sign: *mut BNBoolWithConfidence,
altName: *const ::std::os::raw::c_char,
) -> *mut BNTypeBuilder;
}
unsafe extern "C" {
pub fn BNCreateFloatTypeBuilder(
width: usize,
altName: *const ::std::os::raw::c_char,
) -> *mut BNTypeBuilder;
}
unsafe extern "C" {
pub fn BNCreateWideCharTypeBuilder(
width: usize,
altName: *const ::std::os::raw::c_char,
) -> *mut BNTypeBuilder;
}
unsafe extern "C" {
pub fn BNCreateStructureTypeBuilder(s: *mut BNStructure) -> *mut BNTypeBuilder;
}
unsafe extern "C" {
pub fn BNCreateStructureTypeBuilderWithBuilder(
s: *mut BNStructureBuilder,
) -> *mut BNTypeBuilder;
}
unsafe extern "C" {
pub fn BNCreateEnumerationTypeBuilder(
arch: *mut BNArchitecture,
e: *mut BNEnumeration,
width: usize,
isSigned: *mut BNBoolWithConfidence,
) -> *mut BNTypeBuilder;
}
unsafe extern "C" {
pub fn BNCreateEnumerationTypeBuilderWithBuilder(
arch: *mut BNArchitecture,
e: *mut BNEnumerationBuilder,
width: usize,
isSigned: *mut BNBoolWithConfidence,
) -> *mut BNTypeBuilder;
}
unsafe extern "C" {
pub fn BNCreatePointerTypeBuilder(
arch: *mut BNArchitecture,
type_: *const BNTypeWithConfidence,
cnst: *mut BNBoolWithConfidence,
vltl: *mut BNBoolWithConfidence,
refType: BNReferenceType,
) -> *mut BNTypeBuilder;
}
unsafe extern "C" {
pub fn BNCreatePointerTypeBuilderOfWidth(
width: usize,
type_: *const BNTypeWithConfidence,
cnst: *mut BNBoolWithConfidence,
vltl: *mut BNBoolWithConfidence,
refType: BNReferenceType,
) -> *mut BNTypeBuilder;
}
unsafe extern "C" {
pub fn BNCreateArrayTypeBuilder(
type_: *const BNTypeWithConfidence,
elem: u64,
) -> *mut BNTypeBuilder;
}
unsafe extern "C" {
pub fn BNCreateFunctionTypeBuilder(
returnValue: *mut BNTypeWithConfidence,
callingConvention: *mut BNCallingConventionWithConfidence,
params: *mut BNFunctionParameter,
paramCount: usize,
varArg: *mut BNBoolWithConfidence,
canReturn: *mut BNBoolWithConfidence,
stackAdjust: *mut BNOffsetWithConfidence,
regStackAdjustRegs: *mut u32,
regStackAdjustValues: *mut BNOffsetWithConfidence,
regStackAdjustCount: usize,
returnRegs: *mut BNRegisterSetWithConfidence,
ft: BNNameType,
pure_: *mut BNBoolWithConfidence,
) -> *mut BNTypeBuilder;
}
unsafe extern "C" {
pub fn BNCreateVarArgsTypeBuilder() -> *mut BNTypeBuilder;
}
unsafe extern "C" {
pub fn BNCreateValueTypeBuilder(value: *const ::std::os::raw::c_char) -> *mut BNTypeBuilder;
}
unsafe extern "C" {
pub fn BNFinalizeTypeBuilder(type_: *mut BNTypeBuilder) -> *mut BNType;
}
unsafe extern "C" {
pub fn BNDuplicateTypeBuilder(type_: *mut BNTypeBuilder) -> *mut BNTypeBuilder;
}
unsafe extern "C" {
pub fn BNGetTypeBuilderTypeAndName(
type_: *mut BNTypeBuilder,
name: *mut BNQualifiedName,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNFreeTypeBuilder(type_: *mut BNTypeBuilder);
}
unsafe extern "C" {
pub fn BNTypeGetTypeName(nt: *mut BNType) -> BNQualifiedName;
}
unsafe extern "C" {
pub fn BNGetTypeClass(type_: *mut BNType) -> BNTypeClass;
}
unsafe extern "C" {
pub fn BNGetTypeWidth(type_: *mut BNType) -> u64;
}
unsafe extern "C" {
pub fn BNGetTypeAlignment(type_: *mut BNType) -> usize;
}
unsafe extern "C" {
pub fn BNGetIntegerTypeDisplayType(type_: *mut BNType) -> BNIntegerDisplayType;
}
unsafe extern "C" {
pub fn BNSetIntegerTypeDisplayType(
type_: *mut BNTypeBuilder,
displayType: BNIntegerDisplayType,
);
}
unsafe extern "C" {
pub fn BNIsTypeSigned(type_: *mut BNType) -> BNBoolWithConfidence;
}
unsafe extern "C" {
pub fn BNIsTypeConst(type_: *mut BNType) -> BNBoolWithConfidence;
}
unsafe extern "C" {
pub fn BNIsTypeVolatile(type_: *mut BNType) -> BNBoolWithConfidence;
}
unsafe extern "C" {
pub fn BNIsTypeFloatingPoint(type_: *mut BNType) -> bool;
}
unsafe extern "C" {
pub fn BNGetChildType(type_: *mut BNType) -> BNTypeWithConfidence;
}
unsafe extern "C" {
pub fn BNGetTypeCallingConvention(type_: *mut BNType) -> BNCallingConventionWithConfidence;
}
unsafe extern "C" {
pub fn BNGetTypeCallingConventionName(type_: *mut BNType) -> BNCallingConventionName;
}
unsafe extern "C" {
pub fn BNGetTypeParameters(type_: *mut BNType, count: *mut usize) -> *mut BNFunctionParameter;
}
unsafe extern "C" {
pub fn BNFreeTypeParameterList(types: *mut BNFunctionParameter, count: usize);
}
unsafe extern "C" {
pub fn BNTypeHasVariableArguments(type_: *mut BNType) -> BNBoolWithConfidence;
}
unsafe extern "C" {
pub fn BNTypeHasTemplateArguments(type_: *mut BNType) -> bool;
}
unsafe extern "C" {
pub fn BNFunctionTypeCanReturn(type_: *mut BNType) -> BNBoolWithConfidence;
}
unsafe extern "C" {
pub fn BNIsTypePure(type_: *mut BNType) -> BNBoolWithConfidence;
}
unsafe extern "C" {
pub fn BNGetTypeStructure(type_: *mut BNType) -> *mut BNStructure;
}
unsafe extern "C" {
pub fn BNGetTypeEnumeration(type_: *mut BNType) -> *mut BNEnumeration;
}
unsafe extern "C" {
pub fn BNGetTypeNamedTypeReference(type_: *mut BNType) -> *mut BNNamedTypeReference;
}
unsafe extern "C" {
pub fn BNGetTypeElementCount(type_: *mut BNType) -> u64;
}
unsafe extern "C" {
pub fn BNGetTypeOffset(type_: *mut BNType) -> u64;
}
unsafe extern "C" {
pub fn BNGetTypeStackAdjustment(type_: *mut BNType) -> BNOffsetWithConfidence;
}
unsafe extern "C" {
pub fn BNTypeGetStructureName(type_: *mut BNType) -> BNQualifiedName;
}
unsafe extern "C" {
pub fn BNGetRegisteredTypeName(type_: *mut BNType) -> *mut BNNamedTypeReference;
}
unsafe extern "C" {
pub fn BNTypeGetReferenceType(type_: *mut BNType) -> BNReferenceType;
}
unsafe extern "C" {
pub fn BNTypeGetPointerBaseType(type_: *mut BNType) -> BNPointerBaseType;
}
unsafe extern "C" {
pub fn BNTypeGetPointerBaseOffset(type_: *mut BNType) -> i64;
}
unsafe extern "C" {
pub fn BNTypeGetNameType(type_: *mut BNType) -> BNNameType;
}
unsafe extern "C" {
pub fn BNGetTypeAlternateName(type_: *mut BNType) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNTypeGetSystemCallNumber(type_: *mut BNType) -> u32;
}
unsafe extern "C" {
pub fn BNTypeIsSystemCall(type_: *mut BNType) -> bool;
}
unsafe extern "C" {
pub fn BNGetTypePointerSuffix(type_: *mut BNType, count: *mut usize) -> *mut BNPointerSuffix;
}
unsafe extern "C" {
pub fn BNGetTypePointerSuffixString(type_: *mut BNType) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetTypePointerSuffixTokens(
type_: *mut BNType,
baseConfidence: u8,
count: *mut usize,
) -> *mut BNInstructionTextToken;
}
unsafe extern "C" {
pub fn BNFreePointerSuffixList(suffix: *mut BNPointerSuffix, count: usize);
}
unsafe extern "C" {
pub fn BNTypeShouldDisplayReturnType(type_: *mut BNType) -> bool;
}
unsafe extern "C" {
pub fn BNGetTypeAttributes(type_: *mut BNType, count: *mut usize) -> *mut BNTypeAttribute;
}
unsafe extern "C" {
pub fn BNGetTypeAttributeByName(
type_: *mut BNType,
name: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNFreeTypeAttributeList(attr: *mut BNTypeAttribute, count: usize);
}
unsafe extern "C" {
pub fn BNDerefNamedTypeReference(view: *mut BNBinaryView, type_: *mut BNType) -> *mut BNType;
}
unsafe extern "C" {
pub fn BNGetTypeString(
type_: *mut BNType,
platform: *mut BNPlatform,
escaping: BNTokenEscapingType,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetTypeStringBeforeName(
type_: *mut BNType,
platform: *mut BNPlatform,
escaping: BNTokenEscapingType,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetTypeStringAfterName(
type_: *mut BNType,
platform: *mut BNPlatform,
escaping: BNTokenEscapingType,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetTypeTokens(
type_: *mut BNType,
platform: *mut BNPlatform,
baseConfidence: u8,
escaping: BNTokenEscapingType,
count: *mut usize,
) -> *mut BNInstructionTextToken;
}
unsafe extern "C" {
pub fn BNGetTypeTokensBeforeName(
type_: *mut BNType,
platform: *mut BNPlatform,
baseConfidence: u8,
escaping: BNTokenEscapingType,
count: *mut usize,
) -> *mut BNInstructionTextToken;
}
unsafe extern "C" {
pub fn BNGetTypeTokensAfterName(
type_: *mut BNType,
platform: *mut BNPlatform,
baseConfidence: u8,
escaping: BNTokenEscapingType,
count: *mut usize,
) -> *mut BNInstructionTextToken;
}
unsafe extern "C" {
pub fn BNTypeWithReplacedStructure(
type_: *mut BNType,
from: *mut BNStructure,
to: *mut BNStructure,
) -> *mut BNType;
}
unsafe extern "C" {
pub fn BNTypeWithReplacedEnumeration(
type_: *mut BNType,
from: *mut BNEnumeration,
to: *mut BNEnumeration,
) -> *mut BNType;
}
unsafe extern "C" {
pub fn BNTypeWithReplacedNamedTypeReference(
type_: *mut BNType,
from: *mut BNNamedTypeReference,
to: *mut BNNamedTypeReference,
) -> *mut BNType;
}
unsafe extern "C" {
pub fn BNAddTypeMemberTokens(
type_: *mut BNType,
data: *mut BNBinaryView,
tokens: *mut *mut BNInstructionTextToken,
tokenCount: *mut usize,
offset: i64,
nameList: *mut *mut *mut ::std::os::raw::c_char,
nameCount: *mut usize,
size: usize,
indirect: bool,
info: *mut BNFieldResolutionInfo,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetTypeLines(
type_: *mut BNType,
types: *mut BNTypeContainer,
name: *const ::std::os::raw::c_char,
paddingCols: ::std::os::raw::c_int,
collapsed: bool,
escaping: BNTokenEscapingType,
count: *mut usize,
) -> *mut BNTypeDefinitionLine;
}
unsafe extern "C" {
pub fn BNFreeTypeDefinitionLineList(list: *mut BNTypeDefinitionLine, count: usize);
}
unsafe extern "C" {
pub fn BNEnumerateTypesForAccess(
type_: *mut BNType,
data: *mut BNBinaryView,
offset: u64,
size: usize,
baseConfidence: u8,
terminal: ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut ::std::os::raw::c_void,
arg2: *mut BNTypeWithConfidence,
arg3: *mut BNFieldResolutionInfo,
),
>,
ctxt: *mut ::std::os::raw::c_void,
) -> bool;
}
unsafe extern "C" {
pub fn BNTypeBuilderGetTypeName(nt: *mut BNTypeBuilder) -> BNQualifiedName;
}
unsafe extern "C" {
pub fn BNTypeBuilderSetTypeName(type_: *mut BNTypeBuilder, name: *mut BNQualifiedName);
}
unsafe extern "C" {
pub fn BNTypeBuilderSetAlternateName(
type_: *mut BNTypeBuilder,
name: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNGetTypeBuilderClass(type_: *mut BNTypeBuilder) -> BNTypeClass;
}
unsafe extern "C" {
pub fn BNTypeBuilderSetSystemCallNumber(type_: *mut BNTypeBuilder, v: bool, n: u32);
}
unsafe extern "C" {
pub fn BNGetTypeBuilderWidth(type_: *mut BNTypeBuilder) -> u64;
}
unsafe extern "C" {
pub fn BNGetTypeBuilderAlignment(type_: *mut BNTypeBuilder) -> usize;
}
unsafe extern "C" {
pub fn BNIsTypeBuilderSigned(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
}
unsafe extern "C" {
pub fn BNIsTypeBuilderConst(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
}
unsafe extern "C" {
pub fn BNIsTypeBuilderVolatile(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
}
unsafe extern "C" {
pub fn BNIsTypeBuilderFloatingPoint(type_: *mut BNTypeBuilder) -> bool;
}
unsafe extern "C" {
pub fn BNGetTypeBuilderChildType(type_: *mut BNTypeBuilder) -> BNTypeWithConfidence;
}
unsafe extern "C" {
pub fn BNGetTypeBuilderCallingConvention(
type_: *mut BNTypeBuilder,
) -> BNCallingConventionWithConfidence;
}
unsafe extern "C" {
pub fn BNGetTypeBuilderCallingConventionName(
type_: *mut BNTypeBuilder,
) -> BNCallingConventionName;
}
unsafe extern "C" {
pub fn BNGetTypeBuilderParameters(
type_: *mut BNTypeBuilder,
count: *mut usize,
) -> *mut BNFunctionParameter;
}
unsafe extern "C" {
pub fn BNTypeBuilderHasVariableArguments(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
}
unsafe extern "C" {
pub fn BNFunctionTypeBuilderCanReturn(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
}
unsafe extern "C" {
pub fn BNIsTypeBuilderPure(type_: *mut BNTypeBuilder) -> BNBoolWithConfidence;
}
unsafe extern "C" {
pub fn BNGetTypeBuilderStructure(type_: *mut BNTypeBuilder) -> *mut BNStructure;
}
unsafe extern "C" {
pub fn BNGetTypeBuilderEnumeration(type_: *mut BNTypeBuilder) -> *mut BNEnumeration;
}
unsafe extern "C" {
pub fn BNGetTypeBuilderNamedTypeReference(
type_: *mut BNTypeBuilder,
) -> *mut BNNamedTypeReference;
}
unsafe extern "C" {
pub fn BNSetTypeBuilderNamedTypeReference(
type_: *mut BNTypeBuilder,
ntr: *mut BNNamedTypeReference,
);
}
unsafe extern "C" {
pub fn BNGetTypeBuilderElementCount(type_: *mut BNTypeBuilder) -> u64;
}
unsafe extern "C" {
pub fn BNGetTypeBuilderOffset(type_: *mut BNTypeBuilder) -> u64;
}
unsafe extern "C" {
pub fn BNSetTypeBuilderOffset(type_: *mut BNTypeBuilder, offset: u64);
}
unsafe extern "C" {
pub fn BNSetTypeBuilderPointerBase(
type_: *mut BNTypeBuilder,
baseType: BNPointerBaseType,
baseOffset: i64,
);
}
unsafe extern "C" {
pub fn BNSetFunctionTypeBuilderCanReturn(
type_: *mut BNTypeBuilder,
canReturn: *mut BNBoolWithConfidence,
);
}
unsafe extern "C" {
pub fn BNSetTypeBuilderPure(type_: *mut BNTypeBuilder, pure_: *mut BNBoolWithConfidence);
}
unsafe extern "C" {
pub fn BNSetFunctionTypeBuilderParameters(
type_: *mut BNTypeBuilder,
params: *mut BNFunctionParameter,
paramCount: usize,
);
}
unsafe extern "C" {
pub fn BNTypeBuilderSetWidth(type_: *mut BNTypeBuilder, width: usize);
}
unsafe extern "C" {
pub fn BNTypeBuilderSetAlignment(type_: *mut BNTypeBuilder, alignment: usize);
}
unsafe extern "C" {
pub fn BNTypeBuilderSetConst(type_: *mut BNTypeBuilder, cnst: *mut BNBoolWithConfidence);
}
unsafe extern "C" {
pub fn BNTypeBuilderSetVolatile(type_: *mut BNTypeBuilder, vltl: *mut BNBoolWithConfidence);
}
unsafe extern "C" {
pub fn BNTypeBuilderSetSigned(type_: *mut BNTypeBuilder, sign: *mut BNBoolWithConfidence);
}
unsafe extern "C" {
pub fn BNTypeBuilderSetChildType(type_: *mut BNTypeBuilder, child: *mut BNTypeWithConfidence);
}
unsafe extern "C" {
pub fn BNTypeBuilderSetCallingConvention(
type_: *mut BNTypeBuilder,
cc: *mut BNCallingConventionWithConfidence,
);
}
unsafe extern "C" {
pub fn BNTypeBuilderSetCallingConventionName(
type_: *mut BNTypeBuilder,
cc: BNCallingConventionName,
);
}
unsafe extern "C" {
pub fn BNGetTypeBuilderStackAdjustment(type_: *mut BNTypeBuilder) -> BNOffsetWithConfidence;
}
unsafe extern "C" {
pub fn BNTypeBuilderGetStructureName(type_: *mut BNTypeBuilder) -> BNQualifiedName;
}
unsafe extern "C" {
pub fn BNTypeBuilderGetReferenceType(type_: *mut BNTypeBuilder) -> BNReferenceType;
}
unsafe extern "C" {
pub fn BNTypeBuilderGetPointerBaseType(type_: *mut BNTypeBuilder) -> BNPointerBaseType;
}
unsafe extern "C" {
pub fn BNTypeBuilderGetPointerBaseOffset(type_: *mut BNTypeBuilder) -> i64;
}
unsafe extern "C" {
pub fn BNGetTypeBuilderAlternateName(type_: *mut BNTypeBuilder) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNTypeBuilderIsSystemCall(type_: *mut BNTypeBuilder) -> bool;
}
unsafe extern "C" {
pub fn BNTypeBuilderGetSystemCallNumber(type_: *mut BNTypeBuilder) -> u32;
}
unsafe extern "C" {
pub fn BNTypeBuilderSetStackAdjustment(
type_: *mut BNTypeBuilder,
adjust: *mut BNOffsetWithConfidence,
);
}
unsafe extern "C" {
pub fn BNGetTypeBuilderPointerSuffix(
type_: *mut BNTypeBuilder,
count: *mut usize,
) -> *mut BNPointerSuffix;
}
unsafe extern "C" {
pub fn BNGetTypeBuilderPointerSuffixString(
type_: *mut BNTypeBuilder,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetTypeBuilderPointerSuffixTokens(
type_: *mut BNTypeBuilder,
baseConfidence: u8,
count: *mut usize,
) -> *mut BNInstructionTextToken;
}
unsafe extern "C" {
pub fn BNAddTypeBuilderPointerSuffix(type_: *mut BNTypeBuilder, ps: BNPointerSuffix);
}
unsafe extern "C" {
pub fn BNSetTypeBuilderPointerSuffix(
type_: *mut BNTypeBuilder,
suffix: *mut BNPointerSuffix,
count: usize,
);
}
unsafe extern "C" {
pub fn BNGetTypeBuilderNameType(type_: *mut BNTypeBuilder) -> BNNameType;
}
unsafe extern "C" {
pub fn BNTypeBuilderHasTemplateArguments(type_: *mut BNTypeBuilder) -> bool;
}
unsafe extern "C" {
pub fn BNSetTypeBuilderNameType(type_: *mut BNTypeBuilder, nameType: BNNameType);
}
unsafe extern "C" {
pub fn BNSetTypeBuilderHasTemplateArguments(
type_: *mut BNTypeBuilder,
hasTemplateArguments: bool,
);
}
unsafe extern "C" {
pub fn BNSetTypeBuilderAttribute(
type_: *mut BNTypeBuilder,
name: *const ::std::os::raw::c_char,
value: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNSetTypeBuilderAttributeList(
type_: *mut BNTypeBuilder,
attrs: *mut BNTypeAttribute,
count: usize,
);
}
unsafe extern "C" {
pub fn BNRemoveTypeBuilderAttribute(
type_: *mut BNTypeBuilder,
name: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNGetTypeBuilderAttributes(
type_: *mut BNTypeBuilder,
count: *mut usize,
) -> *mut BNTypeAttribute;
}
unsafe extern "C" {
pub fn BNGetTypeBuilderAttributeByName(
type_: *mut BNTypeBuilder,
name: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetTypeBuilderString(
type_: *mut BNTypeBuilder,
platform: *mut BNPlatform,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetTypeBuilderStringBeforeName(
type_: *mut BNTypeBuilder,
platform: *mut BNPlatform,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetTypeBuilderStringAfterName(
type_: *mut BNTypeBuilder,
platform: *mut BNPlatform,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetTypeBuilderTokens(
type_: *mut BNTypeBuilder,
platform: *mut BNPlatform,
baseConfidence: u8,
count: *mut usize,
) -> *mut BNInstructionTextToken;
}
unsafe extern "C" {
pub fn BNGetTypeBuilderTokensBeforeName(
type_: *mut BNTypeBuilder,
platform: *mut BNPlatform,
baseConfidence: u8,
count: *mut usize,
) -> *mut BNInstructionTextToken;
}
unsafe extern "C" {
pub fn BNGetTypeBuilderTokensAfterName(
type_: *mut BNTypeBuilder,
platform: *mut BNPlatform,
baseConfidence: u8,
count: *mut usize,
) -> *mut BNInstructionTextToken;
}
unsafe extern "C" {
pub fn BNCreateNamedTypeReference(
nt: *mut BNNamedTypeReference,
width: usize,
align: usize,
cnst: *mut BNBoolWithConfidence,
vltl: *mut BNBoolWithConfidence,
) -> *mut BNType;
}
unsafe extern "C" {
pub fn BNCreateNamedTypeReferenceFromTypeAndId(
id: *const ::std::os::raw::c_char,
name: *mut BNQualifiedName,
type_: *mut BNType,
) -> *mut BNType;
}
unsafe extern "C" {
pub fn BNCreateNamedTypeReferenceFromType(
view: *mut BNBinaryView,
name: *mut BNQualifiedName,
) -> *mut BNType;
}
unsafe extern "C" {
pub fn BNCreateNamedTypeReferenceBuilder(
nt: *mut BNNamedTypeReference,
width: usize,
align: usize,
cnst: *mut BNBoolWithConfidence,
vltl: *mut BNBoolWithConfidence,
) -> *mut BNTypeBuilder;
}
unsafe extern "C" {
pub fn BNCreateNamedTypeReferenceBuilderWithBuilder(
nt: *mut BNNamedTypeReferenceBuilder,
width: usize,
align: usize,
cnst: *mut BNBoolWithConfidence,
vltl: *mut BNBoolWithConfidence,
) -> *mut BNTypeBuilder;
}
unsafe extern "C" {
pub fn BNCreateNamedTypeReferenceBuilderFromTypeAndId(
id: *const ::std::os::raw::c_char,
name: *mut BNQualifiedName,
type_: *mut BNType,
) -> *mut BNTypeBuilder;
}
unsafe extern "C" {
pub fn BNCreateNamedTypeReferenceBuilderFromType(
view: *mut BNBinaryView,
name: *mut BNQualifiedName,
) -> *mut BNTypeBuilder;
}
unsafe extern "C" {
pub fn BNCreateNamedType(
cls: BNNamedTypeReferenceClass,
id: *const ::std::os::raw::c_char,
name: *mut BNQualifiedName,
) -> *mut BNNamedTypeReference;
}
unsafe extern "C" {
pub fn BNGetTypeReferenceClass(nt: *mut BNNamedTypeReference) -> BNNamedTypeReferenceClass;
}
unsafe extern "C" {
pub fn BNGetTypeReferenceId(nt: *mut BNNamedTypeReference) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetTypeReferenceName(nt: *mut BNNamedTypeReference) -> BNQualifiedName;
}
unsafe extern "C" {
pub fn BNFreeQualifiedName(name: *mut BNQualifiedName);
}
unsafe extern "C" {
pub fn BNFreeQualifiedNameArray(names: *mut BNQualifiedName, count: usize);
}
unsafe extern "C" {
pub fn BNFreeNamedTypeReference(nt: *mut BNNamedTypeReference);
}
unsafe extern "C" {
pub fn BNNewNamedTypeReference(nt: *mut BNNamedTypeReference) -> *mut BNNamedTypeReference;
}
unsafe extern "C" {
pub fn BNCreateNamedTypeBuilder(
cls: BNNamedTypeReferenceClass,
id: *const ::std::os::raw::c_char,
name: *mut BNQualifiedName,
) -> *mut BNNamedTypeReferenceBuilder;
}
unsafe extern "C" {
pub fn BNFreeNamedTypeReferenceBuilder(s: *mut BNNamedTypeReferenceBuilder);
}
unsafe extern "C" {
pub fn BNSetNamedTypeReferenceBuilderTypeClass(
s: *mut BNNamedTypeReferenceBuilder,
type_: BNNamedTypeReferenceClass,
);
}
unsafe extern "C" {
pub fn BNSetNamedTypeReferenceBuilderTypeId(
s: *mut BNNamedTypeReferenceBuilder,
id: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNSetNamedTypeReferenceBuilderName(
s: *mut BNNamedTypeReferenceBuilder,
name: *mut BNQualifiedName,
);
}
unsafe extern "C" {
pub fn BNFinalizeNamedTypeReferenceBuilder(
s: *mut BNNamedTypeReferenceBuilder,
) -> *mut BNNamedTypeReference;
}
unsafe extern "C" {
pub fn BNGetTypeReferenceBuilderClass(
nt: *mut BNNamedTypeReferenceBuilder,
) -> BNNamedTypeReferenceClass;
}
unsafe extern "C" {
pub fn BNGetTypeReferenceBuilderId(
nt: *mut BNNamedTypeReferenceBuilder,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetTypeReferenceBuilderName(nt: *mut BNNamedTypeReferenceBuilder) -> BNQualifiedName;
}
unsafe extern "C" {
pub fn BNSetNamedTypeReferenceBuilder(
type_: *mut BNTypeBuilder,
nt: *mut BNNamedTypeReferenceBuilder,
);
}
unsafe extern "C" {
pub fn BNCreateStructureBuilder() -> *mut BNStructureBuilder;
}
unsafe extern "C" {
pub fn BNCreateStructureBuilderWithOptions(
type_: BNStructureVariant,
packed: bool,
) -> *mut BNStructureBuilder;
}
unsafe extern "C" {
pub fn BNCreateStructureBuilderFromStructure(s: *mut BNStructure) -> *mut BNStructureBuilder;
}
unsafe extern "C" {
pub fn BNDuplicateStructureBuilder(s: *mut BNStructureBuilder) -> *mut BNStructureBuilder;
}
unsafe extern "C" {
pub fn BNFinalizeStructureBuilder(s: *mut BNStructureBuilder) -> *mut BNStructure;
}
unsafe extern "C" {
pub fn BNNewStructureReference(s: *mut BNStructure) -> *mut BNStructure;
}
unsafe extern "C" {
pub fn BNFreeStructure(s: *mut BNStructure);
}
unsafe extern "C" {
pub fn BNFreeStructureBuilder(s: *mut BNStructureBuilder);
}
unsafe extern "C" {
pub fn BNSetStructureBuilder(type_: *mut BNTypeBuilder, s: *mut BNStructureBuilder);
}
unsafe extern "C" {
pub fn BNGetStructureMemberByName(
s: *mut BNStructure,
name: *const ::std::os::raw::c_char,
) -> *mut BNStructureMember;
}
unsafe extern "C" {
pub fn BNGetStructureMemberAtOffset(
s: *mut BNStructure,
offset: i64,
idx: *mut usize,
) -> *mut BNStructureMember;
}
unsafe extern "C" {
pub fn BNFreeStructureMember(s: *mut BNStructureMember);
}
unsafe extern "C" {
pub fn BNGetStructureMembers(s: *mut BNStructure, count: *mut usize) -> *mut BNStructureMember;
}
unsafe extern "C" {
pub fn BNFreeStructureMemberList(members: *mut BNStructureMember, count: usize);
}
unsafe extern "C" {
pub fn BNGetStructureMembersIncludingInherited(
s: *mut BNStructure,
types: *mut BNTypeContainer,
count: *mut usize,
) -> *mut BNInheritedStructureMember;
}
unsafe extern "C" {
pub fn BNFreeInheritedStructureMemberList(
members: *mut BNInheritedStructureMember,
count: usize,
);
}
unsafe extern "C" {
pub fn BNGetMemberIncludingInheritedAtOffset(
s: *mut BNStructure,
view: *mut BNBinaryView,
offset: i64,
) -> *mut BNInheritedStructureMember;
}
unsafe extern "C" {
pub fn BNFreeInheritedStructureMember(members: *mut BNInheritedStructureMember);
}
unsafe extern "C" {
pub fn BNGetStructureWidth(s: *mut BNStructure) -> u64;
}
unsafe extern "C" {
pub fn BNGetStructurePointerOffset(s: *mut BNStructure) -> i64;
}
unsafe extern "C" {
pub fn BNGetStructureAlignment(s: *mut BNStructure) -> usize;
}
unsafe extern "C" {
pub fn BNIsStructurePacked(s: *mut BNStructure) -> bool;
}
unsafe extern "C" {
pub fn BNIsStructureUnion(s: *mut BNStructure) -> bool;
}
unsafe extern "C" {
pub fn BNStructurePropagatesDataVariableReferences(s: *mut BNStructure) -> bool;
}
unsafe extern "C" {
pub fn BNGetStructureType(s: *mut BNStructure) -> BNStructureVariant;
}
unsafe extern "C" {
pub fn BNGetBaseStructuresForStructure(
s: *mut BNStructure,
count: *mut usize,
) -> *mut BNBaseStructure;
}
unsafe extern "C" {
pub fn BNFreeBaseStructureList(bases: *mut BNBaseStructure, count: usize);
}
unsafe extern "C" {
pub fn BNResolveStructureMemberOrBaseMember(
s: *mut BNStructure,
data: *mut BNBinaryView,
offset: u64,
size: usize,
callbackContext: *mut ::std::os::raw::c_void,
resolveFunc: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
baseName: *mut BNNamedTypeReference,
resolvedStruct: *mut BNStructure,
memberIndex: usize,
structOffset: u64,
adjustedOffset: u64,
member: BNStructureMember,
),
>,
memberIndexHintValid: bool,
memberIndexHint: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNStructureWithReplacedStructure(
s: *mut BNStructure,
from: *mut BNStructure,
to: *mut BNStructure,
) -> *mut BNStructure;
}
unsafe extern "C" {
pub fn BNStructureWithReplacedEnumeration(
s: *mut BNStructure,
from: *mut BNEnumeration,
to: *mut BNEnumeration,
) -> *mut BNStructure;
}
unsafe extern "C" {
pub fn BNStructureWithReplacedNamedTypeReference(
s: *mut BNStructure,
from: *mut BNNamedTypeReference,
to: *mut BNNamedTypeReference,
) -> *mut BNStructure;
}
unsafe extern "C" {
pub fn BNGetStructureBuilderMemberByName(
s: *mut BNStructureBuilder,
name: *const ::std::os::raw::c_char,
) -> *mut BNStructureMember;
}
unsafe extern "C" {
pub fn BNGetStructureBuilderMemberAtOffset(
s: *mut BNStructureBuilder,
offset: i64,
idx: *mut usize,
) -> *mut BNStructureMember;
}
unsafe extern "C" {
pub fn BNGetStructureBuilderMembers(
s: *mut BNStructureBuilder,
count: *mut usize,
) -> *mut BNStructureMember;
}
unsafe extern "C" {
pub fn BNGetStructureBuilderWidth(s: *mut BNStructureBuilder) -> u64;
}
unsafe extern "C" {
pub fn BNSetStructureBuilderWidth(s: *mut BNStructureBuilder, width: u64);
}
unsafe extern "C" {
pub fn BNGetStructureBuilderPointerOffset(s: *mut BNStructureBuilder) -> i64;
}
unsafe extern "C" {
pub fn BNSetStructureBuilderPointerOffset(s: *mut BNStructureBuilder, offset: i64);
}
unsafe extern "C" {
pub fn BNGetStructureBuilderAlignment(s: *mut BNStructureBuilder) -> usize;
}
unsafe extern "C" {
pub fn BNSetStructureBuilderAlignment(s: *mut BNStructureBuilder, align: usize);
}
unsafe extern "C" {
pub fn BNIsStructureBuilderPacked(s: *mut BNStructureBuilder) -> bool;
}
unsafe extern "C" {
pub fn BNSetStructureBuilderPacked(s: *mut BNStructureBuilder, packed: bool);
}
unsafe extern "C" {
pub fn BNIsStructureBuilderUnion(s: *mut BNStructureBuilder) -> bool;
}
unsafe extern "C" {
pub fn BNSetStructureBuilderType(s: *mut BNStructureBuilder, type_: BNStructureVariant);
}
unsafe extern "C" {
pub fn BNStructureBuilderPropagatesDataVariableReferences(s: *mut BNStructureBuilder) -> bool;
}
unsafe extern "C" {
pub fn BNSetStructureBuilderPropagatesDataVariableReferences(
s: *mut BNStructureBuilder,
value: bool,
);
}
unsafe extern "C" {
pub fn BNGetStructureBuilderType(s: *mut BNStructureBuilder) -> BNStructureVariant;
}
unsafe extern "C" {
pub fn BNGetBaseStructuresForStructureBuilder(
s: *mut BNStructureBuilder,
count: *mut usize,
) -> *mut BNBaseStructure;
}
unsafe extern "C" {
pub fn BNSetBaseStructuresForStructureBuilder(
s: *mut BNStructureBuilder,
bases: *mut BNBaseStructure,
count: usize,
);
}
unsafe extern "C" {
pub fn BNAddStructureBuilderMember(
s: *mut BNStructureBuilder,
type_: *const BNTypeWithConfidence,
name: *const ::std::os::raw::c_char,
access: BNMemberAccess,
scope: BNMemberScope,
);
}
unsafe extern "C" {
pub fn BNAddStructureBuilderMemberAtOffset(
s: *mut BNStructureBuilder,
type_: *const BNTypeWithConfidence,
name: *const ::std::os::raw::c_char,
offset: u64,
overwriteExisting: bool,
access: BNMemberAccess,
scope: BNMemberScope,
bitPosition: u8,
bitWidth: u8,
);
}
unsafe extern "C" {
pub fn BNRemoveStructureBuilderMember(s: *mut BNStructureBuilder, idx: usize);
}
unsafe extern "C" {
pub fn BNReplaceStructureBuilderMember(
s: *mut BNStructureBuilder,
idx: usize,
type_: *const BNTypeWithConfidence,
name: *const ::std::os::raw::c_char,
overwriteExisting: bool,
);
}
unsafe extern "C" {
pub fn BNCreateEnumerationBuilder() -> *mut BNEnumerationBuilder;
}
unsafe extern "C" {
pub fn BNCreateEnumerationBuilderFromEnumeration(
e: *mut BNEnumeration,
) -> *mut BNEnumerationBuilder;
}
unsafe extern "C" {
pub fn BNDuplicateEnumerationBuilder(e: *mut BNEnumerationBuilder)
-> *mut BNEnumerationBuilder;
}
unsafe extern "C" {
pub fn BNFinalizeEnumerationBuilder(e: *mut BNEnumerationBuilder) -> *mut BNEnumeration;
}
unsafe extern "C" {
pub fn BNNewEnumerationReference(e: *mut BNEnumeration) -> *mut BNEnumeration;
}
unsafe extern "C" {
pub fn BNFreeEnumeration(e: *mut BNEnumeration);
}
unsafe extern "C" {
pub fn BNFreeEnumerationBuilder(e: *mut BNEnumerationBuilder);
}
unsafe extern "C" {
pub fn BNSetEnumerationBuilder(type_: *mut BNTypeBuilder, e: *mut BNEnumerationBuilder);
}
unsafe extern "C" {
pub fn BNGetEnumerationMembers(
e: *mut BNEnumeration,
count: *mut usize,
) -> *mut BNEnumerationMember;
}
unsafe extern "C" {
pub fn BNGetEnumerationTokensForValue(
e: *mut BNEnumeration,
value: u64,
width: u64,
count: *mut usize,
type_: *mut BNType,
) -> *mut BNInstructionTextToken;
}
unsafe extern "C" {
pub fn BNFreeEnumerationMemberList(members: *mut BNEnumerationMember, count: usize);
}
unsafe extern "C" {
pub fn BNGetEnumerationBuilderMembers(
e: *mut BNEnumerationBuilder,
count: *mut usize,
) -> *mut BNEnumerationMember;
}
unsafe extern "C" {
pub fn BNAddEnumerationBuilderMember(
e: *mut BNEnumerationBuilder,
name: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNAddEnumerationBuilderMemberWithValue(
e: *mut BNEnumerationBuilder,
name: *const ::std::os::raw::c_char,
value: u64,
);
}
unsafe extern "C" {
pub fn BNRemoveEnumerationBuilderMember(e: *mut BNEnumerationBuilder, idx: usize);
}
unsafe extern "C" {
pub fn BNReplaceEnumerationBuilderMember(
e: *mut BNEnumerationBuilder,
idx: usize,
name: *const ::std::os::raw::c_char,
value: u64,
);
}
unsafe extern "C" {
pub fn BNCreateStructureFromOffsetAccess(
view: *mut BNBinaryView,
name: *mut BNQualifiedName,
newMember: *mut bool,
) -> *mut BNStructure;
}
unsafe extern "C" {
pub fn BNCreateStructureMemberFromAccess(
view: *mut BNBinaryView,
name: *mut BNQualifiedName,
offset: u64,
) -> BNTypeWithConfidence;
}
unsafe extern "C" {
pub fn BNAddExpressionParserMagicValue(
view: *mut BNBinaryView,
name: *const ::std::os::raw::c_char,
value: u64,
);
}
unsafe extern "C" {
pub fn BNRemoveExpressionParserMagicValue(
view: *mut BNBinaryView,
name: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNAddExpressionParserMagicValues(
view: *mut BNBinaryView,
names: *mut *const ::std::os::raw::c_char,
values: *mut u64,
count: usize,
);
}
unsafe extern "C" {
pub fn BNRemoveExpressionParserMagicValues(
view: *mut BNBinaryView,
names: *mut *const ::std::os::raw::c_char,
count: usize,
);
}
unsafe extern "C" {
pub fn BNGetExpressionParserMagicValue(
view: *mut BNBinaryView,
name: *const ::std::os::raw::c_char,
value: *mut u64,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetFunctionParentComponents(
view: *mut BNBinaryView,
func: *mut BNFunction,
count: *mut usize,
) -> *mut *mut BNComponent;
}
unsafe extern "C" {
pub fn BNGetDataVariableParentComponents(
view: *mut BNBinaryView,
dataVariable: u64,
count: *mut usize,
) -> *mut *mut BNComponent;
}
unsafe extern "C" {
pub fn BNCheckForStringAnnotationType(
view: *mut BNBinaryView,
addr: u64,
value: *mut *mut ::std::os::raw::c_char,
strType: *mut BNStringType,
allowShortStrings: bool,
allowLargeStrings: bool,
childWidth: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNLoadFilename(
filename: *const ::std::os::raw::c_char,
updateAnalysis: bool,
options: *const ::std::os::raw::c_char,
progress: BNProgressFunction,
progressContext: *mut ::std::os::raw::c_void,
) -> *mut BNBinaryView;
}
unsafe extern "C" {
pub fn BNLoadProjectFile(
projectFile: *mut BNProjectFile,
updateAnalysis: bool,
options: *const ::std::os::raw::c_char,
progress: BNProgressFunction,
progressContext: *mut ::std::os::raw::c_void,
) -> *mut BNBinaryView;
}
unsafe extern "C" {
pub fn BNLoadBinaryView(
view: *mut BNBinaryView,
updateAnalysis: bool,
options: *const ::std::os::raw::c_char,
progress: BNProgressFunction,
progressContext: *mut ::std::os::raw::c_void,
) -> *mut BNBinaryView;
}
unsafe extern "C" {
pub fn BNParseTextFormat(filename: *const ::std::os::raw::c_char) -> *mut BNBinaryView;
}
unsafe extern "C" {
pub fn BNBinaryViewAddExternalLibrary(
view: *mut BNBinaryView,
name: *const ::std::os::raw::c_char,
backingFile: *mut BNProjectFile,
isAuto: bool,
) -> *mut BNExternalLibrary;
}
unsafe extern "C" {
pub fn BNBinaryViewRemoveExternalLibrary(
view: *mut BNBinaryView,
name: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNBinaryViewGetExternalLibrary(
view: *mut BNBinaryView,
name: *const ::std::os::raw::c_char,
) -> *mut BNExternalLibrary;
}
unsafe extern "C" {
pub fn BNBinaryViewGetExternalLibraries(
view: *mut BNBinaryView,
count: *mut usize,
) -> *mut *mut BNExternalLibrary;
}
unsafe extern "C" {
pub fn BNBinaryViewAddExternalLocation(
view: *mut BNBinaryView,
sourceSymbol: *mut BNSymbol,
library: *mut BNExternalLibrary,
targetSymbol: *const ::std::os::raw::c_char,
targetAddress: *mut u64,
isAuto: bool,
) -> *mut BNExternalLocation;
}
unsafe extern "C" {
pub fn BNBinaryViewRemoveExternalLocation(view: *mut BNBinaryView, sourceSymbol: *mut BNSymbol);
}
unsafe extern "C" {
pub fn BNBinaryViewGetExternalLocation(
view: *mut BNBinaryView,
sourceSymbol: *mut BNSymbol,
) -> *mut BNExternalLocation;
}
unsafe extern "C" {
pub fn BNBinaryViewGetExternalLocations(
view: *mut BNBinaryView,
count: *mut usize,
) -> *mut *mut BNExternalLocation;
}
unsafe extern "C" {
#[doc = " Source code processing"]
pub fn BNPreprocessSource(
source: *const ::std::os::raw::c_char,
fileName: *const ::std::os::raw::c_char,
output: *mut *mut ::std::os::raw::c_char,
errors: *mut *mut ::std::os::raw::c_char,
includeDirs: *mut *const ::std::os::raw::c_char,
includeDirCount: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNParseTypesFromSource(
platform: *mut BNPlatform,
source: *const ::std::os::raw::c_char,
fileName: *const ::std::os::raw::c_char,
result: *mut BNTypeParserResult,
errors: *mut *mut ::std::os::raw::c_char,
includeDirs: *mut *const ::std::os::raw::c_char,
includeDirCount: usize,
autoTypeSource: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNParseTypesFromSourceFile(
platform: *mut BNPlatform,
fileName: *const ::std::os::raw::c_char,
result: *mut BNTypeParserResult,
errors: *mut *mut ::std::os::raw::c_char,
includeDirs: *mut *const ::std::os::raw::c_char,
includeDirCount: usize,
autoTypeSource: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNRegisterTypeParser(
name: *const ::std::os::raw::c_char,
callbacks: *mut BNTypeParserCallbacks,
) -> *mut BNTypeParser;
}
unsafe extern "C" {
pub fn BNGetTypeParserList(count: *mut usize) -> *mut *mut BNTypeParser;
}
unsafe extern "C" {
pub fn BNFreeTypeParserList(parsers: *mut *mut BNTypeParser);
}
unsafe extern "C" {
pub fn BNGetTypeParserByName(name: *const ::std::os::raw::c_char) -> *mut BNTypeParser;
}
unsafe extern "C" {
pub fn BNGetDefaultTypeParser() -> *mut BNTypeParser;
}
unsafe extern "C" {
pub fn BNGetTypeParserName(parser: *mut BNTypeParser) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetTypeParserOptionText(
parser: *mut BNTypeParser,
option: BNTypeParserOption,
value: *const ::std::os::raw::c_char,
result: *mut *mut ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNTypeParserPreprocessSource(
parser: *mut BNTypeParser,
source: *const ::std::os::raw::c_char,
fileName: *const ::std::os::raw::c_char,
platform: *mut BNPlatform,
existingTypes: *mut BNTypeContainer,
options: *const *const ::std::os::raw::c_char,
optionCount: usize,
includeDirs: *const *const ::std::os::raw::c_char,
includeDirCount: usize,
output: *mut *mut ::std::os::raw::c_char,
errors: *mut *mut BNTypeParserError,
errorCount: *mut usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNTypeParserParseTypesFromSource(
parser: *mut BNTypeParser,
source: *const ::std::os::raw::c_char,
fileName: *const ::std::os::raw::c_char,
platform: *mut BNPlatform,
existingTypes: *mut BNTypeContainer,
options: *const *const ::std::os::raw::c_char,
optionCount: usize,
includeDirs: *const *const ::std::os::raw::c_char,
includeDirCount: usize,
autoTypeSource: *const ::std::os::raw::c_char,
result: *mut BNTypeParserResult,
errors: *mut *mut BNTypeParserError,
errorCount: *mut usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNTypeParserParseTypeString(
parser: *mut BNTypeParser,
source: *const ::std::os::raw::c_char,
platform: *mut BNPlatform,
existingTypes: *mut BNTypeContainer,
result: *mut BNQualifiedNameAndType,
errors: *mut *mut BNTypeParserError,
errorCount: *mut usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNParseTypeParserOptionsText(
optionsText: *const ::std::os::raw::c_char,
count: *mut usize,
) -> *mut *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNFormatTypeParserParseErrors(
errors: *mut BNTypeParserError,
count: usize,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNRegisterTypePrinter(
name: *const ::std::os::raw::c_char,
callbacks: *mut BNTypePrinterCallbacks,
) -> *mut BNTypePrinter;
}
unsafe extern "C" {
pub fn BNGetTypePrinterList(count: *mut usize) -> *mut *mut BNTypePrinter;
}
unsafe extern "C" {
pub fn BNFreeTypePrinterList(printers: *mut *mut BNTypePrinter);
}
unsafe extern "C" {
pub fn BNGetTypePrinterByName(name: *const ::std::os::raw::c_char) -> *mut BNTypePrinter;
}
unsafe extern "C" {
pub fn BNGetTypePrinterName(printer: *mut BNTypePrinter) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetTypePrinterTypeTokens(
printer: *mut BNTypePrinter,
type_: *mut BNType,
platform: *mut BNPlatform,
name: *mut BNQualifiedName,
baseConfidence: u8,
escaping: BNTokenEscapingType,
result: *mut *mut BNInstructionTextToken,
resultCount: *mut usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetTypePrinterTypeTokensBeforeName(
printer: *mut BNTypePrinter,
type_: *mut BNType,
platform: *mut BNPlatform,
baseConfidence: u8,
parentType: *mut BNType,
escaping: BNTokenEscapingType,
result: *mut *mut BNInstructionTextToken,
resultCount: *mut usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetTypePrinterTypeTokensAfterName(
printer: *mut BNTypePrinter,
type_: *mut BNType,
platform: *mut BNPlatform,
baseConfidence: u8,
parentType: *mut BNType,
escaping: BNTokenEscapingType,
result: *mut *mut BNInstructionTextToken,
resultCount: *mut usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetTypePrinterTypeString(
printer: *mut BNTypePrinter,
type_: *mut BNType,
platform: *mut BNPlatform,
name: *mut BNQualifiedName,
escaping: BNTokenEscapingType,
result: *mut *mut ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetTypePrinterTypeStringBeforeName(
printer: *mut BNTypePrinter,
type_: *mut BNType,
platform: *mut BNPlatform,
escaping: BNTokenEscapingType,
result: *mut *mut ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetTypePrinterTypeStringAfterName(
printer: *mut BNTypePrinter,
type_: *mut BNType,
platform: *mut BNPlatform,
escaping: BNTokenEscapingType,
result: *mut *mut ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetTypePrinterTypeLines(
printer: *mut BNTypePrinter,
type_: *mut BNType,
types: *mut BNTypeContainer,
name: *mut BNQualifiedName,
paddingCols: ::std::os::raw::c_int,
collapsed: bool,
escaping: BNTokenEscapingType,
result: *mut *mut BNTypeDefinitionLine,
resultCount: *mut usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNTypePrinterPrintAllTypes(
printer: *mut BNTypePrinter,
names: *mut BNQualifiedName,
types: *mut *mut BNType,
typeCount: usize,
data: *mut BNBinaryView,
paddingCols: ::std::os::raw::c_int,
escaping: BNTokenEscapingType,
result: *mut *mut ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNTypePrinterDefaultPrintAllTypes(
printer: *mut BNTypePrinter,
names: *mut BNQualifiedName,
types: *mut *mut BNType,
typeCount: usize,
data: *mut BNBinaryView,
paddingCols: ::std::os::raw::c_int,
escaping: BNTokenEscapingType,
result: *mut *mut ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNFreeTypeParserResult(result: *mut BNTypeParserResult);
}
unsafe extern "C" {
pub fn BNFreeTypeParserErrors(errors: *mut BNTypeParserError, count: usize);
}
unsafe extern "C" {
#[doc = " Updates"]
pub fn BNGetUpdateChannels(
count: *mut usize,
errors: *mut *mut ::std::os::raw::c_char,
) -> *mut BNUpdateChannel;
}
unsafe extern "C" {
pub fn BNFreeUpdateChannelList(list: *mut BNUpdateChannel, count: usize);
}
unsafe extern "C" {
pub fn BNGetUpdateChannelVersions(
channel: *const ::std::os::raw::c_char,
count: *mut usize,
errors: *mut *mut ::std::os::raw::c_char,
) -> *mut BNUpdateVersion;
}
unsafe extern "C" {
pub fn BNFreeUpdateChannelVersionList(list: *mut BNUpdateVersion, count: usize);
}
unsafe extern "C" {
pub fn BNGetFullInfoUpdateChannels(
count: *mut usize,
errors: *mut *mut ::std::os::raw::c_char,
) -> *mut BNUpdateChannelFullInfo;
}
unsafe extern "C" {
pub fn BNFreeFullInfoUpdateChannels(list: *mut BNUpdateChannelFullInfo, count: usize);
}
unsafe extern "C" {
pub fn BNAreUpdatesAvailable(
channel: *const ::std::os::raw::c_char,
expireTime: *mut u64,
serverTime: *mut u64,
errors: *mut *mut ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNUpdateToVersion(
channel: *const ::std::os::raw::c_char,
version: *const ::std::os::raw::c_char,
errors: *mut *mut ::std::os::raw::c_char,
progress: BNProgressFunction,
context: *mut ::std::os::raw::c_void,
) -> BNUpdateResult;
}
unsafe extern "C" {
pub fn BNUpdateToLatestVersion(
channel: *const ::std::os::raw::c_char,
errors: *mut *mut ::std::os::raw::c_char,
progress: BNProgressFunction,
context: *mut ::std::os::raw::c_void,
) -> BNUpdateResult;
}
unsafe extern "C" {
pub fn BNAreAutoUpdatesEnabled() -> bool;
}
unsafe extern "C" {
pub fn BNSetAutoUpdatesEnabled(enabled: bool);
}
unsafe extern "C" {
pub fn BNGetTimeSinceLastUpdateCheck() -> u64;
}
unsafe extern "C" {
pub fn BNUpdatesChecked();
}
unsafe extern "C" {
pub fn BNGetActiveUpdateChannel() -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNSetActiveUpdateChannel(channel: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn BNIsUpdateInstallationPending() -> bool;
}
unsafe extern "C" {
pub fn BNInstallPendingUpdate(errors: *mut *mut ::std::os::raw::c_char);
}
unsafe extern "C" {
#[doc = " Plugin commands"]
pub fn BNRegisterPluginCommand(
name: *const ::std::os::raw::c_char,
description: *const ::std::os::raw::c_char,
action: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, view: *mut BNBinaryView),
>,
isValid: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
) -> bool,
>,
context: *mut ::std::os::raw::c_void,
);
}
unsafe extern "C" {
pub fn BNRegisterPluginCommandForAddress(
name: *const ::std::os::raw::c_char,
description: *const ::std::os::raw::c_char,
action: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
addr: u64,
),
>,
isValid: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
addr: u64,
) -> bool,
>,
context: *mut ::std::os::raw::c_void,
);
}
unsafe extern "C" {
pub fn BNRegisterPluginCommandForRange(
name: *const ::std::os::raw::c_char,
description: *const ::std::os::raw::c_char,
action: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
addr: u64,
len: u64,
),
>,
isValid: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
addr: u64,
len: u64,
) -> bool,
>,
context: *mut ::std::os::raw::c_void,
);
}
unsafe extern "C" {
pub fn BNRegisterPluginCommandForFunction(
name: *const ::std::os::raw::c_char,
description: *const ::std::os::raw::c_char,
action: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
func: *mut BNFunction,
),
>,
isValid: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
func: *mut BNFunction,
) -> bool,
>,
context: *mut ::std::os::raw::c_void,
);
}
unsafe extern "C" {
pub fn BNRegisterPluginCommandForLowLevelILFunction(
name: *const ::std::os::raw::c_char,
description: *const ::std::os::raw::c_char,
action: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
func: *mut BNLowLevelILFunction,
),
>,
isValid: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
func: *mut BNLowLevelILFunction,
) -> bool,
>,
context: *mut ::std::os::raw::c_void,
);
}
unsafe extern "C" {
pub fn BNRegisterPluginCommandForLowLevelILInstruction(
name: *const ::std::os::raw::c_char,
description: *const ::std::os::raw::c_char,
action: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
func: *mut BNLowLevelILFunction,
instr: usize,
),
>,
isValid: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
func: *mut BNLowLevelILFunction,
instr: usize,
) -> bool,
>,
context: *mut ::std::os::raw::c_void,
);
}
unsafe extern "C" {
pub fn BNRegisterPluginCommandForMediumLevelILFunction(
name: *const ::std::os::raw::c_char,
description: *const ::std::os::raw::c_char,
action: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
func: *mut BNMediumLevelILFunction,
),
>,
isValid: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
func: *mut BNMediumLevelILFunction,
) -> bool,
>,
context: *mut ::std::os::raw::c_void,
);
}
unsafe extern "C" {
pub fn BNRegisterPluginCommandForMediumLevelILInstruction(
name: *const ::std::os::raw::c_char,
description: *const ::std::os::raw::c_char,
action: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
func: *mut BNMediumLevelILFunction,
instr: usize,
),
>,
isValid: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
func: *mut BNMediumLevelILFunction,
instr: usize,
) -> bool,
>,
context: *mut ::std::os::raw::c_void,
);
}
unsafe extern "C" {
pub fn BNRegisterPluginCommandForHighLevelILFunction(
name: *const ::std::os::raw::c_char,
description: *const ::std::os::raw::c_char,
action: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
func: *mut BNHighLevelILFunction,
),
>,
isValid: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
func: *mut BNHighLevelILFunction,
) -> bool,
>,
context: *mut ::std::os::raw::c_void,
);
}
unsafe extern "C" {
pub fn BNRegisterPluginCommandForHighLevelILInstruction(
name: *const ::std::os::raw::c_char,
description: *const ::std::os::raw::c_char,
action: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
func: *mut BNHighLevelILFunction,
instr: usize,
),
>,
isValid: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
func: *mut BNHighLevelILFunction,
instr: usize,
) -> bool,
>,
context: *mut ::std::os::raw::c_void,
);
}
unsafe extern "C" {
pub fn BNRegisterPluginCommandForProject(
name: *const ::std::os::raw::c_char,
description: *const ::std::os::raw::c_char,
action: ::std::option::Option<
unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void, project: *mut BNProject),
>,
isValid: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
project: *mut BNProject,
) -> bool,
>,
context: *mut ::std::os::raw::c_void,
);
}
unsafe extern "C" {
pub fn BNGetAllPluginCommands(count: *mut usize) -> *mut BNPluginCommand;
}
unsafe extern "C" {
pub fn BNGetValidPluginCommands(
view: *mut BNBinaryView,
count: *mut usize,
) -> *mut BNPluginCommand;
}
unsafe extern "C" {
pub fn BNGetValidPluginCommandsForAddress(
view: *mut BNBinaryView,
addr: u64,
count: *mut usize,
) -> *mut BNPluginCommand;
}
unsafe extern "C" {
pub fn BNGetValidPluginCommandsForRange(
view: *mut BNBinaryView,
addr: u64,
len: u64,
count: *mut usize,
) -> *mut BNPluginCommand;
}
unsafe extern "C" {
pub fn BNGetValidPluginCommandsForFunction(
view: *mut BNBinaryView,
func: *mut BNFunction,
count: *mut usize,
) -> *mut BNPluginCommand;
}
unsafe extern "C" {
pub fn BNGetValidPluginCommandsForLowLevelILFunction(
view: *mut BNBinaryView,
func: *mut BNLowLevelILFunction,
count: *mut usize,
) -> *mut BNPluginCommand;
}
unsafe extern "C" {
pub fn BNGetValidPluginCommandsForLowLevelILInstruction(
view: *mut BNBinaryView,
func: *mut BNLowLevelILFunction,
instr: usize,
count: *mut usize,
) -> *mut BNPluginCommand;
}
unsafe extern "C" {
pub fn BNGetValidPluginCommandsForMediumLevelILFunction(
view: *mut BNBinaryView,
func: *mut BNMediumLevelILFunction,
count: *mut usize,
) -> *mut BNPluginCommand;
}
unsafe extern "C" {
pub fn BNGetValidPluginCommandsForMediumLevelILInstruction(
view: *mut BNBinaryView,
func: *mut BNMediumLevelILFunction,
instr: usize,
count: *mut usize,
) -> *mut BNPluginCommand;
}
unsafe extern "C" {
pub fn BNGetValidPluginCommandsForHighLevelILFunction(
view: *mut BNBinaryView,
func: *mut BNHighLevelILFunction,
count: *mut usize,
) -> *mut BNPluginCommand;
}
unsafe extern "C" {
pub fn BNGetValidPluginCommandsForHighLevelILInstruction(
view: *mut BNBinaryView,
func: *mut BNHighLevelILFunction,
instr: usize,
count: *mut usize,
) -> *mut BNPluginCommand;
}
unsafe extern "C" {
pub fn BNGetValidPluginCommandsForProject(
project: *mut BNProject,
count: *mut usize,
) -> *mut BNPluginCommand;
}
unsafe extern "C" {
pub fn BNFreePluginCommandList(commands: *mut BNPluginCommand);
}
unsafe extern "C" {
#[doc = " Calling conventions"]
pub fn BNCreateCallingConvention(
arch: *mut BNArchitecture,
name: *const ::std::os::raw::c_char,
cc: *mut BNCustomCallingConvention,
) -> *mut BNCallingConvention;
}
unsafe extern "C" {
pub fn BNRegisterCallingConvention(arch: *mut BNArchitecture, cc: *mut BNCallingConvention);
}
unsafe extern "C" {
pub fn BNNewCallingConventionReference(
cc: *mut BNCallingConvention,
) -> *mut BNCallingConvention;
}
unsafe extern "C" {
pub fn BNFreeCallingConvention(cc: *mut BNCallingConvention);
}
unsafe extern "C" {
pub fn BNGetArchitectureCallingConventions(
arch: *mut BNArchitecture,
count: *mut usize,
) -> *mut *mut BNCallingConvention;
}
unsafe extern "C" {
pub fn BNFreeCallingConventionList(list: *mut *mut BNCallingConvention, count: usize);
}
unsafe extern "C" {
pub fn BNGetArchitectureCallingConventionByName(
arch: *mut BNArchitecture,
name: *const ::std::os::raw::c_char,
) -> *mut BNCallingConvention;
}
unsafe extern "C" {
pub fn BNGetCallingConventionArchitecture(cc: *mut BNCallingConvention) -> *mut BNArchitecture;
}
unsafe extern "C" {
pub fn BNGetCallingConventionName(cc: *mut BNCallingConvention) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetCallerSavedRegisters(cc: *mut BNCallingConvention, count: *mut usize) -> *mut u32;
}
unsafe extern "C" {
pub fn BNGetCalleeSavedRegisters(cc: *mut BNCallingConvention, count: *mut usize) -> *mut u32;
}
unsafe extern "C" {
pub fn BNGetIntegerArgumentRegisters(
cc: *mut BNCallingConvention,
count: *mut usize,
) -> *mut u32;
}
unsafe extern "C" {
pub fn BNGetFloatArgumentRegisters(cc: *mut BNCallingConvention, count: *mut usize)
-> *mut u32;
}
unsafe extern "C" {
pub fn BNAreArgumentRegistersSharedIndex(cc: *mut BNCallingConvention) -> bool;
}
unsafe extern "C" {
pub fn BNAreArgumentRegistersUsedForVarArgs(cc: *mut BNCallingConvention) -> bool;
}
unsafe extern "C" {
pub fn BNIsStackReservedForArgumentRegisters(cc: *mut BNCallingConvention) -> bool;
}
unsafe extern "C" {
pub fn BNIsStackAdjustedOnReturn(cc: *mut BNCallingConvention) -> bool;
}
unsafe extern "C" {
pub fn BNIsEligibleForHeuristics(cc: *mut BNCallingConvention) -> bool;
}
unsafe extern "C" {
pub fn BNGetIntegerReturnValueRegister(cc: *mut BNCallingConvention) -> u32;
}
unsafe extern "C" {
pub fn BNGetHighIntegerReturnValueRegister(cc: *mut BNCallingConvention) -> u32;
}
unsafe extern "C" {
pub fn BNGetFloatReturnValueRegister(cc: *mut BNCallingConvention) -> u32;
}
unsafe extern "C" {
pub fn BNGetGlobalPointerRegister(cc: *mut BNCallingConvention) -> u32;
}
unsafe extern "C" {
pub fn BNGetImplicitlyDefinedRegisters(
cc: *mut BNCallingConvention,
count: *mut usize,
) -> *mut u32;
}
unsafe extern "C" {
pub fn BNGetIncomingRegisterValue(
cc: *mut BNCallingConvention,
reg: u32,
func: *mut BNFunction,
) -> BNRegisterValue;
}
unsafe extern "C" {
pub fn BNGetIncomingFlagValue(
cc: *mut BNCallingConvention,
reg: u32,
func: *mut BNFunction,
) -> BNRegisterValue;
}
unsafe extern "C" {
pub fn BNGetVariablesForParametersDefaultPermittedArgs(
cc: *mut BNCallingConvention,
params: *const BNFunctionParameter,
paramCount: usize,
count: *mut usize,
) -> *mut BNVariable;
}
unsafe extern "C" {
pub fn BNGetVariablesForParameters(
cc: *mut BNCallingConvention,
params: *const BNFunctionParameter,
paramCount: usize,
permittedArgs: *const u32,
permittedArgCount: usize,
count: *mut usize,
) -> *mut BNVariable;
}
unsafe extern "C" {
pub fn BNGetParameterOrderingForVariables(
cc: *mut BNCallingConvention,
paramVars: *const BNVariable,
paramTypes: *mut *const BNType,
paramCount: usize,
count: *mut usize,
) -> *mut BNVariable;
}
unsafe extern "C" {
pub fn BNGetStackAdjustmentForVariables(
cc: *mut BNCallingConvention,
paramVars: *const BNVariable,
paramTypes: *mut *const BNType,
paramCount: usize,
) -> i64;
}
unsafe extern "C" {
pub fn BNGetRegisterStackAdjustments(
cc: *mut BNCallingConvention,
returnRegs: *const u32,
returnRegCount: usize,
returnType: *mut BNType,
params: *const BNVariable,
paramCount: usize,
types: *mut *const BNType,
typeCount: usize,
resultRegisters: *mut *mut u32,
resultAdjustments: *mut *mut u32,
) -> usize;
}
unsafe extern "C" {
pub fn BNGetIncomingVariableForParameterVariable(
cc: *mut BNCallingConvention,
var: *const BNVariable,
func: *mut BNFunction,
) -> BNVariable;
}
unsafe extern "C" {
pub fn BNGetParameterVariableForIncomingVariable(
cc: *mut BNCallingConvention,
var: *const BNVariable,
func: *mut BNFunction,
) -> BNVariable;
}
unsafe extern "C" {
pub fn BNGetDefaultIncomingVariableForParameterVariable(
cc: *mut BNCallingConvention,
var: *const BNVariable,
) -> BNVariable;
}
unsafe extern "C" {
pub fn BNGetDefaultParameterVariableForIncomingVariable(
cc: *mut BNCallingConvention,
var: *const BNVariable,
) -> BNVariable;
}
unsafe extern "C" {
pub fn BNGetArchitectureDefaultCallingConvention(
arch: *mut BNArchitecture,
) -> *mut BNCallingConvention;
}
unsafe extern "C" {
pub fn BNGetArchitectureCdeclCallingConvention(
arch: *mut BNArchitecture,
) -> *mut BNCallingConvention;
}
unsafe extern "C" {
pub fn BNGetArchitectureStdcallCallingConvention(
arch: *mut BNArchitecture,
) -> *mut BNCallingConvention;
}
unsafe extern "C" {
pub fn BNGetArchitectureFastcallCallingConvention(
arch: *mut BNArchitecture,
) -> *mut BNCallingConvention;
}
unsafe extern "C" {
pub fn BNSetArchitectureDefaultCallingConvention(
arch: *mut BNArchitecture,
cc: *mut BNCallingConvention,
);
}
unsafe extern "C" {
pub fn BNSetArchitectureCdeclCallingConvention(
arch: *mut BNArchitecture,
cc: *mut BNCallingConvention,
);
}
unsafe extern "C" {
pub fn BNSetArchitectureStdcallCallingConvention(
arch: *mut BNArchitecture,
cc: *mut BNCallingConvention,
);
}
unsafe extern "C" {
pub fn BNSetArchitectureFastcallCallingConvention(
arch: *mut BNArchitecture,
cc: *mut BNCallingConvention,
);
}
unsafe extern "C" {
#[doc = " Platforms"]
pub fn BNCreatePlatform(
arch: *mut BNArchitecture,
name: *const ::std::os::raw::c_char,
) -> *mut BNPlatform;
}
unsafe extern "C" {
pub fn BNCreatePlatformWithTypes(
arch: *mut BNArchitecture,
name: *const ::std::os::raw::c_char,
typeFile: *const ::std::os::raw::c_char,
includeDirs: *mut *const ::std::os::raw::c_char,
includeDirCount: usize,
) -> *mut BNPlatform;
}
unsafe extern "C" {
pub fn BNCreateCustomPlatform(
arch: *mut BNArchitecture,
name: *const ::std::os::raw::c_char,
impl_: *mut BNCustomPlatform,
) -> *mut BNPlatform;
}
unsafe extern "C" {
pub fn BNCreateCustomPlatformWithTypes(
arch: *mut BNArchitecture,
name: *const ::std::os::raw::c_char,
impl_: *mut BNCustomPlatform,
typeFile: *const ::std::os::raw::c_char,
includeDirs: *mut *const ::std::os::raw::c_char,
includeDirCount: usize,
) -> *mut BNPlatform;
}
unsafe extern "C" {
pub fn BNRegisterPlatform(os: *const ::std::os::raw::c_char, platform: *mut BNPlatform);
}
unsafe extern "C" {
pub fn BNNewPlatformReference(platform: *mut BNPlatform) -> *mut BNPlatform;
}
unsafe extern "C" {
pub fn BNFreePlatform(platform: *mut BNPlatform);
}
unsafe extern "C" {
pub fn BNGetPlatformName(platform: *mut BNPlatform) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetPlatformArchitecture(platform: *mut BNPlatform) -> *mut BNArchitecture;
}
unsafe extern "C" {
pub fn BNGetPlatformByName(name: *const ::std::os::raw::c_char) -> *mut BNPlatform;
}
unsafe extern "C" {
pub fn BNGetPlatformList(count: *mut usize) -> *mut *mut BNPlatform;
}
unsafe extern "C" {
pub fn BNGetPlatformListByArchitecture(
arch: *mut BNArchitecture,
count: *mut usize,
) -> *mut *mut BNPlatform;
}
unsafe extern "C" {
pub fn BNGetPlatformListByOS(
os: *const ::std::os::raw::c_char,
count: *mut usize,
) -> *mut *mut BNPlatform;
}
unsafe extern "C" {
pub fn BNGetPlatformListByOSAndArchitecture(
os: *const ::std::os::raw::c_char,
arch: *mut BNArchitecture,
count: *mut usize,
) -> *mut *mut BNPlatform;
}
unsafe extern "C" {
pub fn BNFreePlatformList(platform: *mut *mut BNPlatform, count: usize);
}
unsafe extern "C" {
pub fn BNGetPlatformOSList(count: *mut usize) -> *mut *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNFreePlatformOSList(list: *mut *mut ::std::os::raw::c_char, count: usize);
}
unsafe extern "C" {
pub fn BNGetPlatformDefaultCallingConvention(
platform: *mut BNPlatform,
) -> *mut BNCallingConvention;
}
unsafe extern "C" {
pub fn BNGetPlatformCdeclCallingConvention(
platform: *mut BNPlatform,
) -> *mut BNCallingConvention;
}
unsafe extern "C" {
pub fn BNGetPlatformStdcallCallingConvention(
platform: *mut BNPlatform,
) -> *mut BNCallingConvention;
}
unsafe extern "C" {
pub fn BNGetPlatformFastcallCallingConvention(
platform: *mut BNPlatform,
) -> *mut BNCallingConvention;
}
unsafe extern "C" {
pub fn BNGetPlatformCallingConventions(
platform: *mut BNPlatform,
count: *mut usize,
) -> *mut *mut BNCallingConvention;
}
unsafe extern "C" {
pub fn BNGetPlatformSystemCallConvention(platform: *mut BNPlatform)
-> *mut BNCallingConvention;
}
unsafe extern "C" {
pub fn BNRegisterPlatformCallingConvention(
platform: *mut BNPlatform,
cc: *mut BNCallingConvention,
);
}
unsafe extern "C" {
pub fn BNRegisterPlatformDefaultCallingConvention(
platform: *mut BNPlatform,
cc: *mut BNCallingConvention,
);
}
unsafe extern "C" {
pub fn BNRegisterPlatformCdeclCallingConvention(
platform: *mut BNPlatform,
cc: *mut BNCallingConvention,
);
}
unsafe extern "C" {
pub fn BNRegisterPlatformStdcallCallingConvention(
platform: *mut BNPlatform,
cc: *mut BNCallingConvention,
);
}
unsafe extern "C" {
pub fn BNRegisterPlatformFastcallCallingConvention(
platform: *mut BNPlatform,
cc: *mut BNCallingConvention,
);
}
unsafe extern "C" {
pub fn BNSetPlatformSystemCallConvention(
platform: *mut BNPlatform,
cc: *mut BNCallingConvention,
);
}
unsafe extern "C" {
pub fn BNGetPlatformGlobalRegisters(platform: *mut BNPlatform, count: *mut usize) -> *mut u32;
}
unsafe extern "C" {
pub fn BNGetPlatformGlobalRegisterType(platform: *mut BNPlatform, reg: u32) -> *mut BNType;
}
unsafe extern "C" {
pub fn BNGetPlatformAddressSize(platform: *mut BNPlatform) -> usize;
}
unsafe extern "C" {
pub fn BNPlatformAdjustTypeParserInput(
platform: *mut BNPlatform,
parser: *mut BNTypeParser,
argumentsIn: *const *const ::std::os::raw::c_char,
argumentsLenIn: usize,
sourceFileNamesIn: *const *const ::std::os::raw::c_char,
sourceFileValuesIn: *const *const ::std::os::raw::c_char,
sourceFilesLenIn: usize,
argumentsOut: *mut *mut *mut ::std::os::raw::c_char,
argumentsLenOut: *mut usize,
sourceFileNamesOut: *mut *mut *mut ::std::os::raw::c_char,
sourceFileValuesOut: *mut *mut *mut ::std::os::raw::c_char,
sourceFilesLenOut: *mut usize,
);
}
unsafe extern "C" {
pub fn BNGetArchitectureStandalonePlatform(arch: *mut BNArchitecture) -> *mut BNPlatform;
}
unsafe extern "C" {
pub fn BNGetRelatedPlatform(
platform: *mut BNPlatform,
arch: *mut BNArchitecture,
) -> *mut BNPlatform;
}
unsafe extern "C" {
pub fn BNAddRelatedPlatform(
platform: *mut BNPlatform,
arch: *mut BNArchitecture,
related: *mut BNPlatform,
);
}
unsafe extern "C" {
pub fn BNGetRelatedPlatforms(
platform: *mut BNPlatform,
count: *mut usize,
) -> *mut *mut BNPlatform;
}
unsafe extern "C" {
pub fn BNGetAssociatedPlatformByAddress(
platform: *mut BNPlatform,
addr: *mut u64,
) -> *mut BNPlatform;
}
unsafe extern "C" {
pub fn BNGetPlatformTypeContainer(platform: *mut BNPlatform) -> *mut BNTypeContainer;
}
unsafe extern "C" {
pub fn BNGetPlatformTypes(
platform: *mut BNPlatform,
count: *mut usize,
) -> *mut BNQualifiedNameAndType;
}
unsafe extern "C" {
pub fn BNGetPlatformVariables(
platform: *mut BNPlatform,
count: *mut usize,
) -> *mut BNQualifiedNameAndType;
}
unsafe extern "C" {
pub fn BNGetPlatformFunctions(
platform: *mut BNPlatform,
count: *mut usize,
) -> *mut BNQualifiedNameAndType;
}
unsafe extern "C" {
pub fn BNGetPlatformSystemCalls(
platform: *mut BNPlatform,
count: *mut usize,
) -> *mut BNSystemCallInfo;
}
unsafe extern "C" {
pub fn BNFreeSystemCallList(syscalls: *mut BNSystemCallInfo, count: usize);
}
unsafe extern "C" {
pub fn BNGetPlatformTypeByName(
platform: *mut BNPlatform,
name: *mut BNQualifiedName,
) -> *mut BNType;
}
unsafe extern "C" {
pub fn BNGetPlatformVariableByName(
platform: *mut BNPlatform,
name: *mut BNQualifiedName,
) -> *mut BNType;
}
unsafe extern "C" {
pub fn BNGetPlatformFunctionByName(
platform: *mut BNPlatform,
name: *mut BNQualifiedName,
exactMatch: bool,
) -> *mut BNType;
}
unsafe extern "C" {
pub fn BNGetPlatformSystemCallName(
platform: *mut BNPlatform,
number: u32,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetPlatformSystemCallType(platform: *mut BNPlatform, number: u32) -> *mut BNType;
}
unsafe extern "C" {
pub fn BNGetPlatformTypeLibraries(
platform: *mut BNPlatform,
count: *mut usize,
) -> *mut *mut BNTypeLibrary;
}
unsafe extern "C" {
pub fn BNGetPlatformTypeLibrariesByName(
platform: *mut BNPlatform,
depName: *const ::std::os::raw::c_char,
count: *mut usize,
) -> *mut *mut BNTypeLibrary;
}
unsafe extern "C" {
#[doc = " Download providers"]
pub fn BNRegisterDownloadProvider(
name: *const ::std::os::raw::c_char,
callbacks: *mut BNDownloadProviderCallbacks,
) -> *mut BNDownloadProvider;
}
unsafe extern "C" {
pub fn BNGetDownloadProviderList(count: *mut usize) -> *mut *mut BNDownloadProvider;
}
unsafe extern "C" {
pub fn BNFreeDownloadProviderList(providers: *mut *mut BNDownloadProvider);
}
unsafe extern "C" {
pub fn BNGetDownloadProviderByName(
name: *const ::std::os::raw::c_char,
) -> *mut BNDownloadProvider;
}
unsafe extern "C" {
pub fn BNGetDownloadProviderName(
provider: *mut BNDownloadProvider,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNCreateDownloadProviderInstance(
provider: *mut BNDownloadProvider,
) -> *mut BNDownloadInstance;
}
unsafe extern "C" {
pub fn BNInitDownloadInstance(
provider: *mut BNDownloadProvider,
callbacks: *mut BNDownloadInstanceCallbacks,
) -> *mut BNDownloadInstance;
}
unsafe extern "C" {
pub fn BNNewDownloadInstanceReference(
instance: *mut BNDownloadInstance,
) -> *mut BNDownloadInstance;
}
unsafe extern "C" {
pub fn BNFreeDownloadInstance(instance: *mut BNDownloadInstance);
}
unsafe extern "C" {
pub fn BNFreeDownloadInstanceResponse(response: *mut BNDownloadInstanceResponse);
}
unsafe extern "C" {
pub fn BNPerformDownloadRequest(
instance: *mut BNDownloadInstance,
url: *const ::std::os::raw::c_char,
callbacks: *mut BNDownloadInstanceOutputCallbacks,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn BNPerformCustomRequest(
instance: *mut BNDownloadInstance,
method: *const ::std::os::raw::c_char,
url: *const ::std::os::raw::c_char,
headerCount: u64,
headerKeys: *const *const ::std::os::raw::c_char,
headerValues: *const *const ::std::os::raw::c_char,
response: *mut *mut BNDownloadInstanceResponse,
callbacks: *mut BNDownloadInstanceInputOutputCallbacks,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn BNReadDataForDownloadInstance(
instance: *mut BNDownloadInstance,
data: *mut u8,
len: u64,
) -> i64;
}
unsafe extern "C" {
pub fn BNWriteDataForDownloadInstance(
instance: *mut BNDownloadInstance,
data: *mut u8,
len: u64,
) -> u64;
}
unsafe extern "C" {
pub fn BNNotifyProgressForDownloadInstance(
instance: *mut BNDownloadInstance,
progress: u64,
total: u64,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetErrorForDownloadInstance(
instance: *mut BNDownloadInstance,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNSetErrorForDownloadInstance(
instance: *mut BNDownloadInstance,
error: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
#[doc = " Websocket providers"]
pub fn BNRegisterWebsocketProvider(
name: *const ::std::os::raw::c_char,
callbacks: *mut BNWebsocketProviderCallbacks,
) -> *mut BNWebsocketProvider;
}
unsafe extern "C" {
pub fn BNGetWebsocketProviderList(count: *mut usize) -> *mut *mut BNWebsocketProvider;
}
unsafe extern "C" {
pub fn BNFreeWebsocketProviderList(providers: *mut *mut BNWebsocketProvider);
}
unsafe extern "C" {
pub fn BNGetWebsocketProviderByName(
name: *const ::std::os::raw::c_char,
) -> *mut BNWebsocketProvider;
}
unsafe extern "C" {
pub fn BNGetWebsocketProviderName(
provider: *mut BNWebsocketProvider,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNCreateWebsocketProviderClient(
provider: *mut BNWebsocketProvider,
) -> *mut BNWebsocketClient;
}
unsafe extern "C" {
pub fn BNInitWebsocketClient(
provider: *mut BNWebsocketProvider,
callbacks: *mut BNWebsocketClientCallbacks,
) -> *mut BNWebsocketClient;
}
unsafe extern "C" {
pub fn BNNewWebsocketClientReference(client: *mut BNWebsocketClient) -> *mut BNWebsocketClient;
}
unsafe extern "C" {
pub fn BNFreeWebsocketClient(client: *mut BNWebsocketClient);
}
unsafe extern "C" {
pub fn BNConnectWebsocketClient(
client: *mut BNWebsocketClient,
url: *const ::std::os::raw::c_char,
headerCount: u64,
headerKeys: *const *const ::std::os::raw::c_char,
headerValues: *const *const ::std::os::raw::c_char,
callbacks: *mut BNWebsocketClientOutputCallbacks,
) -> bool;
}
unsafe extern "C" {
pub fn BNNotifyWebsocketClientConnect(client: *mut BNWebsocketClient) -> bool;
}
unsafe extern "C" {
pub fn BNNotifyWebsocketClientDisconnect(client: *mut BNWebsocketClient);
}
unsafe extern "C" {
pub fn BNNotifyWebsocketClientError(
client: *mut BNWebsocketClient,
msg: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNNotifyWebsocketClientReadData(
client: *mut BNWebsocketClient,
data: *mut u8,
len: u64,
) -> bool;
}
unsafe extern "C" {
pub fn BNWriteWebsocketClientData(
client: *mut BNWebsocketClient,
data: *const u8,
len: u64,
) -> u64;
}
unsafe extern "C" {
pub fn BNDisconnectWebsocketClient(client: *mut BNWebsocketClient) -> bool;
}
unsafe extern "C" {
#[doc = " Scripting providers"]
pub fn BNRegisterScriptingProvider(
name: *const ::std::os::raw::c_char,
apiName: *const ::std::os::raw::c_char,
callbacks: *mut BNScriptingProviderCallbacks,
) -> *mut BNScriptingProvider;
}
unsafe extern "C" {
pub fn BNGetScriptingProviderList(count: *mut usize) -> *mut *mut BNScriptingProvider;
}
unsafe extern "C" {
pub fn BNFreeScriptingProviderList(providers: *mut *mut BNScriptingProvider);
}
unsafe extern "C" {
pub fn BNGetScriptingProviderByName(
name: *const ::std::os::raw::c_char,
) -> *mut BNScriptingProvider;
}
unsafe extern "C" {
pub fn BNGetScriptingProviderByAPIName(
name: *const ::std::os::raw::c_char,
) -> *mut BNScriptingProvider;
}
unsafe extern "C" {
pub fn BNGetScriptingProviderName(
provider: *mut BNScriptingProvider,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetScriptingProviderAPIName(
provider: *mut BNScriptingProvider,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNCreateScriptingProviderInstance(
provider: *mut BNScriptingProvider,
) -> *mut BNScriptingInstance;
}
unsafe extern "C" {
pub fn BNLoadScriptingProviderModule(
provider: *mut BNScriptingProvider,
repository: *const ::std::os::raw::c_char,
module: *const ::std::os::raw::c_char,
force: bool,
) -> bool;
}
unsafe extern "C" {
pub fn BNInstallScriptingProviderModules(
provider: *mut BNScriptingProvider,
modules: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNInitScriptingInstance(
provider: *mut BNScriptingProvider,
callbacks: *mut BNScriptingInstanceCallbacks,
) -> *mut BNScriptingInstance;
}
unsafe extern "C" {
pub fn BNNewScriptingInstanceReference(
instance: *mut BNScriptingInstance,
) -> *mut BNScriptingInstance;
}
unsafe extern "C" {
pub fn BNFreeScriptingInstance(instance: *mut BNScriptingInstance);
}
unsafe extern "C" {
pub fn BNNotifyOutputForScriptingInstance(
instance: *mut BNScriptingInstance,
text: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNNotifyWarningForScriptingInstance(
instance: *mut BNScriptingInstance,
text: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNNotifyErrorForScriptingInstance(
instance: *mut BNScriptingInstance,
text: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNNotifyInputReadyStateForScriptingInstance(
instance: *mut BNScriptingInstance,
state: BNScriptingProviderInputReadyState,
);
}
unsafe extern "C" {
pub fn BNRegisterScriptingInstanceOutputListener(
instance: *mut BNScriptingInstance,
callbacks: *mut BNScriptingOutputListener,
);
}
unsafe extern "C" {
pub fn BNUnregisterScriptingInstanceOutputListener(
instance: *mut BNScriptingInstance,
callbacks: *mut BNScriptingOutputListener,
);
}
unsafe extern "C" {
pub fn BNGetScriptingInstanceDelimiters(
instance: *mut BNScriptingInstance,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNSetScriptingInstanceDelimiters(
instance: *mut BNScriptingInstance,
delimiters: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNGetScriptingInstanceInputReadyState(
instance: *mut BNScriptingInstance,
) -> BNScriptingProviderInputReadyState;
}
unsafe extern "C" {
pub fn BNExecuteScriptInput(
instance: *mut BNScriptingInstance,
input: *const ::std::os::raw::c_char,
) -> BNScriptingProviderExecuteResult;
}
unsafe extern "C" {
pub fn BNExecuteScriptInputFromFilename(
instance: *mut BNScriptingInstance,
filename: *const ::std::os::raw::c_char,
) -> BNScriptingProviderExecuteResult;
}
unsafe extern "C" {
pub fn BNCancelScriptInput(instance: *mut BNScriptingInstance);
}
unsafe extern "C" {
pub fn BNScriptingInstanceReleaseBinaryView(
instance: *mut BNScriptingInstance,
view: *mut BNBinaryView,
);
}
unsafe extern "C" {
pub fn BNSetScriptingInstanceCurrentBinaryView(
instance: *mut BNScriptingInstance,
view: *mut BNBinaryView,
);
}
unsafe extern "C" {
pub fn BNSetScriptingInstanceCurrentFunction(
instance: *mut BNScriptingInstance,
func: *mut BNFunction,
);
}
unsafe extern "C" {
pub fn BNSetScriptingInstanceCurrentBasicBlock(
instance: *mut BNScriptingInstance,
block: *mut BNBasicBlock,
);
}
unsafe extern "C" {
pub fn BNSetScriptingInstanceCurrentAddress(instance: *mut BNScriptingInstance, addr: u64);
}
unsafe extern "C" {
pub fn BNSetScriptingInstanceCurrentSelection(
instance: *mut BNScriptingInstance,
begin: u64,
end: u64,
);
}
unsafe extern "C" {
pub fn BNScriptingInstanceCompleteInput(
instance: *mut BNScriptingInstance,
text: *const ::std::os::raw::c_char,
state: u64,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNStopScriptingInstance(instance: *mut BNScriptingInstance);
}
unsafe extern "C" {
pub fn BNFuzzyMatchSingle(
target: *const ::std::os::raw::c_char,
query: *const ::std::os::raw::c_char,
) -> usize;
}
unsafe extern "C" {
#[doc = " Main thread actions"]
pub fn BNRegisterMainThread(callbacks: *mut BNMainThreadCallbacks);
}
unsafe extern "C" {
pub fn BNNewMainThreadActionReference(
action: *mut BNMainThreadAction,
) -> *mut BNMainThreadAction;
}
unsafe extern "C" {
pub fn BNFreeMainThreadAction(action: *mut BNMainThreadAction);
}
unsafe extern "C" {
pub fn BNExecuteMainThreadAction(action: *mut BNMainThreadAction);
}
unsafe extern "C" {
pub fn BNIsMainThreadActionDone(action: *mut BNMainThreadAction) -> bool;
}
unsafe extern "C" {
pub fn BNWaitForMainThreadAction(action: *mut BNMainThreadAction);
}
unsafe extern "C" {
pub fn BNExecuteOnMainThread(
ctxt: *mut ::std::os::raw::c_void,
func: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
) -> *mut BNMainThreadAction;
}
unsafe extern "C" {
pub fn BNExecuteOnMainThreadAndWait(
ctxt: *mut ::std::os::raw::c_void,
func: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
);
}
unsafe extern "C" {
pub fn BNIsMainThread() -> bool;
}
unsafe extern "C" {
#[doc = " Worker thread queue management"]
pub fn BNWorkerEnqueue(
ctxt: *mut ::std::os::raw::c_void,
action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
);
}
unsafe extern "C" {
pub fn BNWorkerEnqueueNamed(
ctxt: *mut ::std::os::raw::c_void,
action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
name: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNWorkerPriorityEnqueue(
ctxt: *mut ::std::os::raw::c_void,
action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
);
}
unsafe extern "C" {
pub fn BNWorkerPriorityEnqueueNamed(
ctxt: *mut ::std::os::raw::c_void,
action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
name: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNWorkerInteractiveEnqueue(
ctxt: *mut ::std::os::raw::c_void,
action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
);
}
unsafe extern "C" {
pub fn BNWorkerInteractiveEnqueueNamed(
ctxt: *mut ::std::os::raw::c_void,
action: ::std::option::Option<unsafe extern "C" fn(ctxt: *mut ::std::os::raw::c_void)>,
name: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNGetWorkerThreadCount() -> usize;
}
unsafe extern "C" {
pub fn BNSetWorkerThreadCount(count: usize);
}
unsafe extern "C" {
pub fn BNSetThreadName(name: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
#[doc = " Background task progress reporting"]
pub fn BNBeginBackgroundTask(
initialText: *const ::std::os::raw::c_char,
canCancel: bool,
) -> *mut BNBackgroundTask;
}
unsafe extern "C" {
pub fn BNFinishBackgroundTask(task: *mut BNBackgroundTask);
}
unsafe extern "C" {
pub fn BNSetBackgroundTaskProgressText(
task: *mut BNBackgroundTask,
text: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNIsBackgroundTaskCancelled(task: *mut BNBackgroundTask) -> bool;
}
unsafe extern "C" {
pub fn BNGetRunningBackgroundTasks(count: *mut usize) -> *mut *mut BNBackgroundTask;
}
unsafe extern "C" {
pub fn BNNewBackgroundTaskReference(task: *mut BNBackgroundTask) -> *mut BNBackgroundTask;
}
unsafe extern "C" {
pub fn BNFreeBackgroundTask(task: *mut BNBackgroundTask);
}
unsafe extern "C" {
pub fn BNFreeBackgroundTaskList(tasks: *mut *mut BNBackgroundTask, count: usize);
}
unsafe extern "C" {
pub fn BNGetBackgroundTaskProgressText(
task: *mut BNBackgroundTask,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetBackgroundTaskRuntimeSeconds(task: *mut BNBackgroundTask) -> u64;
}
unsafe extern "C" {
pub fn BNCanCancelBackgroundTask(task: *mut BNBackgroundTask) -> bool;
}
unsafe extern "C" {
pub fn BNCancelBackgroundTask(task: *mut BNBackgroundTask);
}
unsafe extern "C" {
pub fn BNIsBackgroundTaskFinished(task: *mut BNBackgroundTask) -> bool;
}
unsafe extern "C" {
#[doc = " Interaction APIs"]
pub fn BNRegisterInteractionHandler(callbacks: *mut BNInteractionHandlerCallbacks);
}
unsafe extern "C" {
pub fn BNMarkdownToHTML(contents: *const ::std::os::raw::c_char)
-> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNShowPlainTextReport(
view: *mut BNBinaryView,
title: *const ::std::os::raw::c_char,
contents: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNShowMarkdownReport(
view: *mut BNBinaryView,
title: *const ::std::os::raw::c_char,
contents: *const ::std::os::raw::c_char,
plaintext: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNShowHTMLReport(
view: *mut BNBinaryView,
title: *const ::std::os::raw::c_char,
contents: *const ::std::os::raw::c_char,
plaintext: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNShowGraphReport(
view: *mut BNBinaryView,
title: *const ::std::os::raw::c_char,
graph: *mut BNFlowGraph,
);
}
unsafe extern "C" {
pub fn BNShowReportCollection(
title: *const ::std::os::raw::c_char,
reports: *mut BNReportCollection,
);
}
unsafe extern "C" {
pub fn BNGetTextLineInput(
result: *mut *mut ::std::os::raw::c_char,
prompt: *const ::std::os::raw::c_char,
title: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetIntegerInput(
result: *mut i64,
prompt: *const ::std::os::raw::c_char,
title: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetAddressInput(
result: *mut u64,
prompt: *const ::std::os::raw::c_char,
title: *const ::std::os::raw::c_char,
view: *mut BNBinaryView,
currentAddr: u64,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetChoiceInput(
result: *mut usize,
prompt: *const ::std::os::raw::c_char,
title: *const ::std::os::raw::c_char,
choices: *mut *const ::std::os::raw::c_char,
count: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetLargeChoiceInput(
result: *mut usize,
prompt: *const ::std::os::raw::c_char,
title: *const ::std::os::raw::c_char,
choices: *mut *const ::std::os::raw::c_char,
count: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetOpenFileNameInput(
result: *mut *mut ::std::os::raw::c_char,
prompt: *const ::std::os::raw::c_char,
ext: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetSaveFileNameInput(
result: *mut *mut ::std::os::raw::c_char,
prompt: *const ::std::os::raw::c_char,
ext: *const ::std::os::raw::c_char,
defaultName: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetDirectoryNameInput(
result: *mut *mut ::std::os::raw::c_char,
prompt: *const ::std::os::raw::c_char,
defaultName: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetCheckboxInput(
result: *mut i64,
prompt: *const ::std::os::raw::c_char,
title: *const ::std::os::raw::c_char,
defaultChoice: *const i64,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetFormInput(
fields: *mut BNFormInputField,
count: usize,
title: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNFreeFormInputResults(fields: *mut BNFormInputField, count: usize);
}
unsafe extern "C" {
pub fn BNShowMessageBox(
title: *const ::std::os::raw::c_char,
text: *const ::std::os::raw::c_char,
buttons: BNMessageBoxButtonSet,
icon: BNMessageBoxIcon,
) -> BNMessageBoxButtonResult;
}
unsafe extern "C" {
pub fn BNOpenUrl(url: *const ::std::os::raw::c_char) -> bool;
}
unsafe extern "C" {
pub fn BNRunProgressDialog(
title: *const ::std::os::raw::c_char,
canCancel: bool,
task: ::std::option::Option<
unsafe extern "C" fn(
taskCtxt: *mut ::std::os::raw::c_void,
progress: BNProgressFunction,
progressCtxt: *mut ::std::os::raw::c_void,
),
>,
taskCtxt: *mut ::std::os::raw::c_void,
) -> bool;
}
unsafe extern "C" {
pub fn BNCreateReportCollection() -> *mut BNReportCollection;
}
unsafe extern "C" {
pub fn BNNewReportCollectionReference(
reports: *mut BNReportCollection,
) -> *mut BNReportCollection;
}
unsafe extern "C" {
pub fn BNFreeReportCollection(reports: *mut BNReportCollection);
}
unsafe extern "C" {
pub fn BNGetReportCollectionCount(reports: *mut BNReportCollection) -> usize;
}
unsafe extern "C" {
pub fn BNGetReportType(reports: *mut BNReportCollection, i: usize) -> BNReportType;
}
unsafe extern "C" {
pub fn BNGetReportView(reports: *mut BNReportCollection, i: usize) -> *mut BNBinaryView;
}
unsafe extern "C" {
pub fn BNGetReportTitle(
reports: *mut BNReportCollection,
i: usize,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetReportContents(
reports: *mut BNReportCollection,
i: usize,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetReportPlainText(
reports: *mut BNReportCollection,
i: usize,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetReportFlowGraph(reports: *mut BNReportCollection, i: usize) -> *mut BNFlowGraph;
}
unsafe extern "C" {
pub fn BNAddPlainTextReportToCollection(
reports: *mut BNReportCollection,
view: *mut BNBinaryView,
title: *const ::std::os::raw::c_char,
contents: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNAddMarkdownReportToCollection(
reports: *mut BNReportCollection,
view: *mut BNBinaryView,
title: *const ::std::os::raw::c_char,
contents: *const ::std::os::raw::c_char,
plaintext: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNAddHTMLReportToCollection(
reports: *mut BNReportCollection,
view: *mut BNBinaryView,
title: *const ::std::os::raw::c_char,
contents: *const ::std::os::raw::c_char,
plaintext: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNAddGraphReportToCollection(
reports: *mut BNReportCollection,
view: *mut BNBinaryView,
title: *const ::std::os::raw::c_char,
graph: *mut BNFlowGraph,
);
}
unsafe extern "C" {
pub fn BNUpdateReportFlowGraph(
reports: *mut BNReportCollection,
i: usize,
graph: *mut BNFlowGraph,
);
}
unsafe extern "C" {
#[doc = " Demangler"]
pub fn BNDemangleMS(
arch: *mut BNArchitecture,
mangledName: *const ::std::os::raw::c_char,
outType: *mut *mut BNType,
outVarName: *mut *mut *mut ::std::os::raw::c_char,
outVarNameElements: *mut usize,
simplify: bool,
) -> bool;
}
unsafe extern "C" {
pub fn BNDemangleMSWithOptions(
arch: *mut BNArchitecture,
mangledName: *const ::std::os::raw::c_char,
outType: *mut *mut BNType,
outVarName: *mut *mut *mut ::std::os::raw::c_char,
outVarNameElements: *mut usize,
view: *const BNBinaryView,
) -> bool;
}
unsafe extern "C" {
pub fn BNDemangleMSPlatform(
platform: *mut BNPlatform,
mangledName: *const ::std::os::raw::c_char,
outType: *mut *mut BNType,
outVarName: *mut *mut *mut ::std::os::raw::c_char,
outVarNameElements: *mut usize,
simplify: bool,
) -> bool;
}
unsafe extern "C" {
pub fn BNIsGNU3MangledString(mangledName: *const ::std::os::raw::c_char) -> bool;
}
unsafe extern "C" {
pub fn BNDemangleGNU3(
arch: *mut BNArchitecture,
mangledName: *const ::std::os::raw::c_char,
outType: *mut *mut BNType,
outVarName: *mut *mut *mut ::std::os::raw::c_char,
outVarNameElements: *mut usize,
simplify: bool,
) -> bool;
}
unsafe extern "C" {
pub fn BNDemangleGNU3WithOptions(
arch: *mut BNArchitecture,
mangledName: *const ::std::os::raw::c_char,
outType: *mut *mut BNType,
outVarName: *mut *mut *mut ::std::os::raw::c_char,
outVarNameElements: *mut usize,
view: *const BNBinaryView,
) -> bool;
}
unsafe extern "C" {
pub fn BNFreeDemangledName(name: *mut *mut *mut ::std::os::raw::c_char, nameElements: usize);
}
unsafe extern "C" {
pub fn BNDemangleLLVM(
mangledName: *const ::std::os::raw::c_char,
outVarName: *mut *mut *mut ::std::os::raw::c_char,
outVarNameElements: *mut usize,
simplify: bool,
) -> bool;
}
unsafe extern "C" {
pub fn BNDemangleLLVMWithOptions(
mangledName: *const ::std::os::raw::c_char,
outVarName: *mut *mut *mut ::std::os::raw::c_char,
outVarNameElements: *mut usize,
view: *const BNBinaryView,
) -> bool;
}
unsafe extern "C" {
pub fn BNRegisterDemangler(
name: *const ::std::os::raw::c_char,
callbacks: *mut BNDemanglerCallbacks,
) -> *mut BNDemangler;
}
unsafe extern "C" {
pub fn BNGetDemanglerList(count: *mut usize) -> *mut *mut BNDemangler;
}
unsafe extern "C" {
pub fn BNFreeDemanglerList(demanglers: *mut *mut BNDemangler);
}
unsafe extern "C" {
pub fn BNGetDemanglerByName(name: *const ::std::os::raw::c_char) -> *mut BNDemangler;
}
unsafe extern "C" {
pub fn BNGetDemanglerName(demangler: *mut BNDemangler) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNPromoteDemangler(demangler: *mut BNDemangler);
}
unsafe extern "C" {
pub fn BNIsDemanglerMangledName(
demangler: *mut BNDemangler,
name: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNDemanglerDemangle(
demangler: *mut BNDemangler,
arch: *mut BNArchitecture,
name: *const ::std::os::raw::c_char,
outType: *mut *mut BNType,
outVarName: *mut BNQualifiedName,
view: *mut BNBinaryView,
) -> bool;
}
unsafe extern "C" {
pub fn BNDemangleGeneric(
arch: *mut BNArchitecture,
name: *const ::std::os::raw::c_char,
outType: *mut *mut BNType,
outVarName: *mut BNQualifiedName,
view: *mut BNBinaryView,
simplify: bool,
) -> bool;
}
unsafe extern "C" {
#[doc = " Plugin repository APIs"]
pub fn BNPluginGetApis(
p: *mut BNRepoPlugin,
count: *mut usize,
) -> *mut *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNPluginGetAuthor(p: *mut BNRepoPlugin) -> *const ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNPluginGetDescription(p: *mut BNRepoPlugin) -> *const ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNPluginGetLicenseText(p: *mut BNRepoPlugin) -> *const ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNPluginGetLongdescription(p: *mut BNRepoPlugin) -> *const ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNPluginGetMinimumVersionInfo(p: *mut BNRepoPlugin) -> BNVersionInfo;
}
unsafe extern "C" {
pub fn BNPluginGetMaximumVersionInfo(p: *mut BNRepoPlugin) -> BNVersionInfo;
}
unsafe extern "C" {
pub fn BNParseVersionString(v: *const ::std::os::raw::c_char) -> BNVersionInfo;
}
unsafe extern "C" {
pub fn BNVersionLessThan(smaller: BNVersionInfo, larger: BNVersionInfo) -> bool;
}
unsafe extern "C" {
pub fn BNPluginGetName(p: *mut BNRepoPlugin) -> *const ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNPluginGetProjectUrl(p: *mut BNRepoPlugin) -> *const ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNPluginGetPackageUrl(p: *mut BNRepoPlugin) -> *const ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNPluginGetAuthorUrl(p: *mut BNRepoPlugin) -> *const ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNPluginGetVersion(p: *mut BNRepoPlugin) -> *const ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNPluginGetCommit(p: *mut BNRepoPlugin) -> *const ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNPluginGetViewOnly(p: *mut BNRepoPlugin) -> bool;
}
unsafe extern "C" {
pub fn BNFreePluginTypes(r: *mut BNPluginType);
}
unsafe extern "C" {
pub fn BNNewPluginReference(r: *mut BNRepoPlugin) -> *mut BNRepoPlugin;
}
unsafe extern "C" {
pub fn BNFreePlugin(plugin: *mut BNRepoPlugin);
}
unsafe extern "C" {
pub fn BNPluginGetPath(p: *mut BNRepoPlugin) -> *const ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNPluginGetSubdir(p: *mut BNRepoPlugin) -> *const ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNPluginGetDependencies(p: *mut BNRepoPlugin) -> *const ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNPluginIsInstalled(p: *mut BNRepoPlugin) -> bool;
}
unsafe extern "C" {
pub fn BNPluginIsEnabled(p: *mut BNRepoPlugin) -> bool;
}
unsafe extern "C" {
pub fn BNPluginGetPluginStatus(p: *mut BNRepoPlugin) -> BNPluginStatus;
}
unsafe extern "C" {
pub fn BNPluginGetPluginTypes(p: *mut BNRepoPlugin, count: *mut usize) -> *mut BNPluginType;
}
unsafe extern "C" {
pub fn BNPluginEnable(p: *mut BNRepoPlugin, force: bool) -> bool;
}
unsafe extern "C" {
pub fn BNPluginDisable(p: *mut BNRepoPlugin) -> bool;
}
unsafe extern "C" {
pub fn BNPluginInstall(p: *mut BNRepoPlugin) -> bool;
}
unsafe extern "C" {
pub fn BNPluginInstallDependencies(p: *mut BNRepoPlugin) -> bool;
}
unsafe extern "C" {
pub fn BNPluginUninstall(p: *mut BNRepoPlugin) -> bool;
}
unsafe extern "C" {
pub fn BNPluginUpdate(p: *mut BNRepoPlugin) -> bool;
}
unsafe extern "C" {
pub fn BNPluginGetPlatforms(
p: *mut BNRepoPlugin,
count: *mut usize,
) -> *mut *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNFreePluginPlatforms(platforms: *mut *mut ::std::os::raw::c_char, count: usize);
}
unsafe extern "C" {
pub fn BNPluginGetRepository(p: *mut BNRepoPlugin) -> *const ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNPluginIsBeingDeleted(p: *mut BNRepoPlugin) -> bool;
}
unsafe extern "C" {
pub fn BNPluginIsBeingUpdated(p: *mut BNRepoPlugin) -> bool;
}
unsafe extern "C" {
pub fn BNPluginIsRunning(p: *mut BNRepoPlugin) -> bool;
}
unsafe extern "C" {
pub fn BNPluginIsUpdatePending(p: *mut BNRepoPlugin) -> bool;
}
unsafe extern "C" {
pub fn BNPluginIsDisablePending(p: *mut BNRepoPlugin) -> bool;
}
unsafe extern "C" {
pub fn BNPluginIsDeletePending(p: *mut BNRepoPlugin) -> bool;
}
unsafe extern "C" {
pub fn BNPluginIsUpdateAvailable(p: *mut BNRepoPlugin) -> bool;
}
unsafe extern "C" {
pub fn BNPluginAreDependenciesBeingInstalled(p: *mut BNRepoPlugin) -> bool;
}
unsafe extern "C" {
pub fn BNPluginGetProjectData(p: *mut BNRepoPlugin) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNPluginGetLastUpdate(p: *mut BNRepoPlugin) -> u64;
}
unsafe extern "C" {
pub fn BNNewRepositoryReference(r: *mut BNRepository) -> *mut BNRepository;
}
unsafe extern "C" {
pub fn BNFreeRepository(r: *mut BNRepository);
}
unsafe extern "C" {
pub fn BNRepositoryGetUrl(r: *mut BNRepository) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNRepositoryGetRepoPath(r: *mut BNRepository) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNRepositoryGetPlugins(
r: *mut BNRepository,
count: *mut usize,
) -> *mut *mut BNRepoPlugin;
}
unsafe extern "C" {
pub fn BNFreeRepositoryPluginList(r: *mut *mut BNRepoPlugin);
}
unsafe extern "C" {
pub fn BNRepositoryFreePluginDirectoryList(
list: *mut *mut ::std::os::raw::c_char,
count: usize,
);
}
unsafe extern "C" {
pub fn BNRepositoryGetPluginByPath(
r: *mut BNRepository,
pluginPath: *const ::std::os::raw::c_char,
) -> *mut BNRepoPlugin;
}
unsafe extern "C" {
pub fn BNRepositoryGetPluginsPath(r: *mut BNRepository) -> *const ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNCreateRepositoryManager(
enabledPluginsPath: *const ::std::os::raw::c_char,
) -> *mut BNRepositoryManager;
}
unsafe extern "C" {
pub fn BNNewRepositoryManagerReference(r: *mut BNRepositoryManager)
-> *mut BNRepositoryManager;
}
unsafe extern "C" {
pub fn BNFreeRepositoryManager(r: *mut BNRepositoryManager);
}
unsafe extern "C" {
pub fn BNRepositoryManagerCheckForUpdates(r: *mut BNRepositoryManager) -> bool;
}
unsafe extern "C" {
pub fn BNRepositoryManagerGetRepositories(
r: *mut BNRepositoryManager,
count: *mut usize,
) -> *mut *mut BNRepository;
}
unsafe extern "C" {
pub fn BNFreeRepositoryManagerRepositoriesList(r: *mut *mut BNRepository);
}
unsafe extern "C" {
pub fn BNRepositoryManagerAddRepository(
r: *mut BNRepositoryManager,
url: *const ::std::os::raw::c_char,
repoPath: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNRepositoryGetRepositoryByPath(
r: *mut BNRepositoryManager,
repoPath: *const ::std::os::raw::c_char,
) -> *mut BNRepository;
}
unsafe extern "C" {
pub fn BNGetRepositoryManager() -> *mut BNRepositoryManager;
}
unsafe extern "C" {
pub fn BNRepositoryManagerGetDefaultRepository(
r: *mut BNRepositoryManager,
) -> *mut BNRepository;
}
unsafe extern "C" {
#[doc = " Components"]
pub fn BNNewComponentReference(component: *mut BNComponent) -> *mut BNComponent;
}
unsafe extern "C" {
pub fn BNFreeComponent(component: *mut BNComponent);
}
unsafe extern "C" {
pub fn BNComponentGetContainedFunctions(
component: *mut BNComponent,
count: *mut usize,
) -> *mut *mut BNFunction;
}
unsafe extern "C" {
pub fn BNComponentGetContainedComponents(
component: *mut BNComponent,
count: *mut usize,
) -> *mut *mut BNComponent;
}
unsafe extern "C" {
pub fn BNComponentGetContainedDataVariables(
component: *mut BNComponent,
count: *mut usize,
) -> *mut BNDataVariable;
}
unsafe extern "C" {
pub fn BNComponentGetReferencedDataVariables(
component: *mut BNComponent,
count: *mut usize,
) -> *mut BNDataVariable;
}
unsafe extern "C" {
pub fn BNComponentGetReferencedDataVariablesRecursive(
component: *mut BNComponent,
count: *mut usize,
) -> *mut BNDataVariable;
}
unsafe extern "C" {
pub fn BNComponentGetReferencedTypes(
component: *mut BNComponent,
count: *mut usize,
) -> *mut *mut BNType;
}
unsafe extern "C" {
pub fn BNComponentGetReferencedTypesRecursive(
component: *mut BNComponent,
count: *mut usize,
) -> *mut *mut BNType;
}
unsafe extern "C" {
pub fn BNFreeComponents(components: *mut *mut BNComponent, count: usize);
}
unsafe extern "C" {
pub fn BNComponentFreeReferencedTypes(types: *mut *mut BNType, count: usize);
}
unsafe extern "C" {
pub fn BNComponentGetParent(component: *mut BNComponent) -> *mut BNComponent;
}
unsafe extern "C" {
pub fn BNComponentContainsFunction(
component: *mut BNComponent,
function: *mut BNFunction,
) -> bool;
}
unsafe extern "C" {
pub fn BNComponentContainsComponent(
parent: *mut BNComponent,
component: *mut BNComponent,
) -> bool;
}
unsafe extern "C" {
pub fn BNComponentContainsDataVariable(component: *mut BNComponent, address: u64) -> bool;
}
unsafe extern "C" {
pub fn BNComponentAddFunctionReference(
component: *mut BNComponent,
function: *mut BNFunction,
) -> bool;
}
unsafe extern "C" {
pub fn BNComponentAddComponent(parent: *mut BNComponent, component: *mut BNComponent) -> bool;
}
unsafe extern "C" {
pub fn BNComponentAddDataVariable(component: *mut BNComponent, address: u64) -> bool;
}
unsafe extern "C" {
pub fn BNComponentRemoveComponent(component: *mut BNComponent) -> bool;
}
unsafe extern "C" {
pub fn BNComponentRemoveFunctionReference(
component: *mut BNComponent,
function: *mut BNFunction,
) -> bool;
}
unsafe extern "C" {
pub fn BNComponentRemoveAllFunctions(component: *mut BNComponent);
}
unsafe extern "C" {
pub fn BNComponentRemoveDataVariable(component: *mut BNComponent, address: u64) -> bool;
}
unsafe extern "C" {
pub fn BNComponentAddAllMembersFromComponent(
component: *mut BNComponent,
fromComponent: *mut BNComponent,
);
}
unsafe extern "C" {
pub fn BNComponentGetGuid(component: *mut BNComponent) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNComponentsEqual(a: *mut BNComponent, b: *mut BNComponent) -> bool;
}
unsafe extern "C" {
pub fn BNComponentsNotEqual(a: *mut BNComponent, b: *mut BNComponent) -> bool;
}
unsafe extern "C" {
pub fn BNComponentGetDisplayName(component: *mut BNComponent) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNComponentGetOriginalName(component: *mut BNComponent) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNComponentSetName(component: *mut BNComponent, name: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn BNComponentGetView(component: *mut BNComponent) -> *mut BNBinaryView;
}
unsafe extern "C" {
#[doc = " LLVM Services APIs"]
pub fn BNLlvmServicesInit();
}
unsafe extern "C" {
pub fn BNLlvmServicesAssemble(
src: *const ::std::os::raw::c_char,
dialect: ::std::os::raw::c_int,
triplet: *const ::std::os::raw::c_char,
codeModel: ::std::os::raw::c_int,
relocMode: ::std::os::raw::c_int,
outBytes: *mut *mut ::std::os::raw::c_char,
outBytesLen: *mut ::std::os::raw::c_int,
err: *mut *mut ::std::os::raw::c_char,
errLen: *mut ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn BNLlvmServicesAssembleFree(
outBytes: *mut ::std::os::raw::c_char,
err: *mut ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNLlvmServicesDisasmInstruction(
triplet: *const ::std::os::raw::c_char,
src: *mut u8,
srcLen: ::std::os::raw::c_int,
addr: u64,
result: *mut ::std::os::raw::c_char,
resultMaxSize: usize,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
#[doc = " Filesystem functionality"]
pub fn BNDeleteFile(path: *const ::std::os::raw::c_char) -> bool;
}
unsafe extern "C" {
pub fn BNDeleteDirectory(path: *const ::std::os::raw::c_char) -> bool;
}
unsafe extern "C" {
pub fn BNCreateDirectory(
path: *const ::std::os::raw::c_char,
createSubdirectories: bool,
) -> bool;
}
unsafe extern "C" {
pub fn BNPathExists(path: *const ::std::os::raw::c_char) -> bool;
}
unsafe extern "C" {
pub fn BNGetParentPath(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNIsPathDirectory(path: *const ::std::os::raw::c_char) -> bool;
}
unsafe extern "C" {
pub fn BNIsPathRegularFile(path: *const ::std::os::raw::c_char) -> bool;
}
unsafe extern "C" {
pub fn BNFileSize(path: *const ::std::os::raw::c_char, size: *mut u64) -> bool;
}
unsafe extern "C" {
pub fn BNRenameFile(
source: *const ::std::os::raw::c_char,
dest: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNCopyFile(
source: *const ::std::os::raw::c_char,
dest: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetFileName(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetFileExtension(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetFilePathsInDirectory(
path: *const ::std::os::raw::c_char,
count: *mut usize,
) -> *mut *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNAppendPath(
path: *const ::std::os::raw::c_char,
part: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNFreePath(path: *mut ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn BNGetSystemCacheDirectory() -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
#[doc = " Settings APIs"]
pub fn BNCreateSettings(schemaId: *const ::std::os::raw::c_char) -> *mut BNSettings;
}
unsafe extern "C" {
pub fn BNNewSettingsReference(settings: *mut BNSettings) -> *mut BNSettings;
}
unsafe extern "C" {
pub fn BNFreeSettings(settings: *mut BNSettings);
}
unsafe extern "C" {
pub fn BNLoadSettingsFile(
settings: *mut BNSettings,
fileName: *const ::std::os::raw::c_char,
scope: BNSettingsScope,
view: *mut BNBinaryView,
) -> bool;
}
unsafe extern "C" {
pub fn BNSettingsSetResourceId(
settings: *mut BNSettings,
resourceId: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNSettingsRegisterGroup(
settings: *mut BNSettings,
group: *const ::std::os::raw::c_char,
title: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNSettingsRegisterSetting(
settings: *mut BNSettings,
key: *const ::std::os::raw::c_char,
properties: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNSettingsContains(
settings: *mut BNSettings,
key: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNSettingsIsEmpty(
settings: *mut BNSettings,
view: *mut BNBinaryView,
func: *mut BNFunction,
scope: BNSettingsScope,
) -> bool;
}
unsafe extern "C" {
pub fn BNSettingsKeysList(
settings: *mut BNSettings,
inoutSize: *mut usize,
) -> *mut *const ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNSettingsQueryPropertyString(
settings: *mut BNSettings,
key: *const ::std::os::raw::c_char,
property: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNSettingsQueryPropertyStringList(
settings: *mut BNSettings,
key: *const ::std::os::raw::c_char,
property: *const ::std::os::raw::c_char,
inoutSize: *mut usize,
) -> *mut *const ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNSettingsUpdateProperty(
settings: *mut BNSettings,
key: *const ::std::os::raw::c_char,
property: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNSettingsUpdateBoolProperty(
settings: *mut BNSettings,
key: *const ::std::os::raw::c_char,
property: *const ::std::os::raw::c_char,
value: bool,
) -> bool;
}
unsafe extern "C" {
pub fn BNSettingsUpdateDoubleProperty(
settings: *mut BNSettings,
key: *const ::std::os::raw::c_char,
property: *const ::std::os::raw::c_char,
value: f64,
) -> bool;
}
unsafe extern "C" {
pub fn BNSettingsUpdateInt64Property(
settings: *mut BNSettings,
key: *const ::std::os::raw::c_char,
property: *const ::std::os::raw::c_char,
value: i64,
) -> bool;
}
unsafe extern "C" {
pub fn BNSettingsUpdateUInt64Property(
settings: *mut BNSettings,
key: *const ::std::os::raw::c_char,
property: *const ::std::os::raw::c_char,
value: u64,
) -> bool;
}
unsafe extern "C" {
pub fn BNSettingsUpdateStringProperty(
settings: *mut BNSettings,
key: *const ::std::os::raw::c_char,
property: *const ::std::os::raw::c_char,
value: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNSettingsUpdateStringListProperty(
settings: *mut BNSettings,
key: *const ::std::os::raw::c_char,
property: *const ::std::os::raw::c_char,
value: *mut *const ::std::os::raw::c_char,
size: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNSettingsDeserializeSchema(
settings: *mut BNSettings,
schema: *const ::std::os::raw::c_char,
scope: BNSettingsScope,
merge: bool,
) -> bool;
}
unsafe extern "C" {
pub fn BNSettingsSerializeSchema(settings: *mut BNSettings) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNDeserializeSettings(
settings: *mut BNSettings,
contents: *const ::std::os::raw::c_char,
view: *mut BNBinaryView,
func: *mut BNFunction,
scope: BNSettingsScope,
) -> bool;
}
unsafe extern "C" {
pub fn BNSerializeSettings(
settings: *mut BNSettings,
view: *mut BNBinaryView,
func: *mut BNFunction,
scope: BNSettingsScope,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNSettingsReset(
settings: *mut BNSettings,
key: *const ::std::os::raw::c_char,
view: *mut BNBinaryView,
func: *mut BNFunction,
scope: BNSettingsScope,
) -> bool;
}
unsafe extern "C" {
pub fn BNSettingsResetAll(
settings: *mut BNSettings,
view: *mut BNBinaryView,
func: *mut BNFunction,
scope: BNSettingsScope,
schemaOnly: bool,
) -> bool;
}
unsafe extern "C" {
pub fn BNSettingsGetBool(
settings: *mut BNSettings,
key: *const ::std::os::raw::c_char,
view: *mut BNBinaryView,
func: *mut BNFunction,
scope: *mut BNSettingsScope,
) -> bool;
}
unsafe extern "C" {
pub fn BNSettingsGetDouble(
settings: *mut BNSettings,
key: *const ::std::os::raw::c_char,
view: *mut BNBinaryView,
func: *mut BNFunction,
scope: *mut BNSettingsScope,
) -> f64;
}
unsafe extern "C" {
pub fn BNSettingsGetInt64(
settings: *mut BNSettings,
key: *const ::std::os::raw::c_char,
view: *mut BNBinaryView,
func: *mut BNFunction,
scope: *mut BNSettingsScope,
) -> i64;
}
unsafe extern "C" {
pub fn BNSettingsGetUInt64(
settings: *mut BNSettings,
key: *const ::std::os::raw::c_char,
view: *mut BNBinaryView,
func: *mut BNFunction,
scope: *mut BNSettingsScope,
) -> u64;
}
unsafe extern "C" {
pub fn BNSettingsGetString(
settings: *mut BNSettings,
key: *const ::std::os::raw::c_char,
view: *mut BNBinaryView,
func: *mut BNFunction,
scope: *mut BNSettingsScope,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNSettingsGetStringList(
settings: *mut BNSettings,
key: *const ::std::os::raw::c_char,
view: *mut BNBinaryView,
func: *mut BNFunction,
scope: *mut BNSettingsScope,
inoutSize: *mut usize,
) -> *mut *const ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNSettingsGetJson(
settings: *mut BNSettings,
key: *const ::std::os::raw::c_char,
view: *mut BNBinaryView,
func: *mut BNFunction,
scope: *mut BNSettingsScope,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNSettingsSetBool(
settings: *mut BNSettings,
view: *mut BNBinaryView,
func: *mut BNFunction,
scope: BNSettingsScope,
key: *const ::std::os::raw::c_char,
value: bool,
) -> bool;
}
unsafe extern "C" {
pub fn BNSettingsSetDouble(
settings: *mut BNSettings,
view: *mut BNBinaryView,
func: *mut BNFunction,
scope: BNSettingsScope,
key: *const ::std::os::raw::c_char,
value: f64,
) -> bool;
}
unsafe extern "C" {
pub fn BNSettingsSetInt64(
settings: *mut BNSettings,
view: *mut BNBinaryView,
func: *mut BNFunction,
scope: BNSettingsScope,
key: *const ::std::os::raw::c_char,
value: i64,
) -> bool;
}
unsafe extern "C" {
pub fn BNSettingsSetUInt64(
settings: *mut BNSettings,
view: *mut BNBinaryView,
func: *mut BNFunction,
scope: BNSettingsScope,
key: *const ::std::os::raw::c_char,
value: u64,
) -> bool;
}
unsafe extern "C" {
pub fn BNSettingsSetString(
settings: *mut BNSettings,
view: *mut BNBinaryView,
func: *mut BNFunction,
scope: BNSettingsScope,
key: *const ::std::os::raw::c_char,
value: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNSettingsSetStringList(
settings: *mut BNSettings,
view: *mut BNBinaryView,
func: *mut BNFunction,
scope: BNSettingsScope,
key: *const ::std::os::raw::c_char,
value: *mut *const ::std::os::raw::c_char,
size: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNSettingsSetJson(
settings: *mut BNSettings,
view: *mut BNBinaryView,
func: *mut BNFunction,
scope: BNSettingsScope,
key: *const ::std::os::raw::c_char,
value: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
#[doc = " Create Metadata of various types"]
pub fn BNNewMetadataReference(data: *mut BNMetadata) -> *mut BNMetadata;
}
unsafe extern "C" {
pub fn BNCreateMetadataBooleanData(data: bool) -> *mut BNMetadata;
}
unsafe extern "C" {
pub fn BNCreateMetadataStringData(data: *const ::std::os::raw::c_char) -> *mut BNMetadata;
}
unsafe extern "C" {
pub fn BNCreateMetadataUnsignedIntegerData(data: u64) -> *mut BNMetadata;
}
unsafe extern "C" {
pub fn BNCreateMetadataSignedIntegerData(data: i64) -> *mut BNMetadata;
}
unsafe extern "C" {
pub fn BNCreateMetadataDoubleData(data: f64) -> *mut BNMetadata;
}
unsafe extern "C" {
pub fn BNCreateMetadataOfType(type_: BNMetadataType) -> *mut BNMetadata;
}
unsafe extern "C" {
pub fn BNCreateMetadataRawData(data: *const u8, size: usize) -> *mut BNMetadata;
}
unsafe extern "C" {
pub fn BNCreateMetadataArray(data: *mut *mut BNMetadata, size: usize) -> *mut BNMetadata;
}
unsafe extern "C" {
pub fn BNCreateMetadataValueStore(
keys: *mut *const ::std::os::raw::c_char,
values: *mut *mut BNMetadata,
size: usize,
) -> *mut BNMetadata;
}
unsafe extern "C" {
pub fn BNCreateMetadataBooleanListData(data: *mut bool, size: usize) -> *mut BNMetadata;
}
unsafe extern "C" {
pub fn BNCreateMetadataUnsignedIntegerListData(data: *mut u64, size: usize) -> *mut BNMetadata;
}
unsafe extern "C" {
pub fn BNCreateMetadataSignedIntegerListData(data: *mut i64, size: usize) -> *mut BNMetadata;
}
unsafe extern "C" {
pub fn BNCreateMetadataDoubleListData(data: *mut f64, size: usize) -> *mut BNMetadata;
}
unsafe extern "C" {
pub fn BNCreateMetadataStringListData(
data: *mut *const ::std::os::raw::c_char,
size: usize,
) -> *mut BNMetadata;
}
unsafe extern "C" {
pub fn BNMetadataIsEqual(lhs: *mut BNMetadata, rhs: *mut BNMetadata) -> bool;
}
unsafe extern "C" {
pub fn BNMetadataSetValueForKey(
data: *mut BNMetadata,
key: *const ::std::os::raw::c_char,
md: *mut BNMetadata,
) -> bool;
}
unsafe extern "C" {
pub fn BNMetadataGetForKey(
data: *mut BNMetadata,
key: *const ::std::os::raw::c_char,
) -> *mut BNMetadata;
}
unsafe extern "C" {
pub fn BNMetadataArrayAppend(data: *mut BNMetadata, md: *mut BNMetadata) -> bool;
}
unsafe extern "C" {
pub fn BNMetadataRemoveKey(data: *mut BNMetadata, key: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn BNMetadataSize(data: *mut BNMetadata) -> usize;
}
unsafe extern "C" {
pub fn BNMetadataGetForIndex(data: *mut BNMetadata, index: usize) -> *mut BNMetadata;
}
unsafe extern "C" {
pub fn BNMetadataRemoveIndex(data: *mut BNMetadata, index: usize);
}
unsafe extern "C" {
pub fn BNFreeMetadataArray(data: *mut *mut BNMetadata);
}
unsafe extern "C" {
pub fn BNFreeMetadataValueStore(data: *mut BNMetadataValueStore);
}
unsafe extern "C" {
pub fn BNFreeMetadata(data: *mut BNMetadata);
}
unsafe extern "C" {
pub fn BNFreeMetadataRaw(data: *mut u8);
}
unsafe extern "C" {
pub fn BNFreeMetadataBooleanList(arg1: *mut bool, arg2: usize);
}
unsafe extern "C" {
pub fn BNFreeMetadataUnsignedIntegerList(arg1: *mut u64, arg2: usize);
}
unsafe extern "C" {
pub fn BNFreeMetadataSignedIntegerList(arg1: *mut i64, arg2: usize);
}
unsafe extern "C" {
pub fn BNFreeMetadataDoubleList(arg1: *mut f64, arg2: usize);
}
unsafe extern "C" {
pub fn BNFreeMetadataStringList(arg1: *mut *mut ::std::os::raw::c_char, arg2: usize);
}
unsafe extern "C" {
#[doc = " Retrieve Structured Data"]
pub fn BNMetadataGetBoolean(data: *mut BNMetadata) -> bool;
}
unsafe extern "C" {
pub fn BNMetadataGetString(data: *mut BNMetadata) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNMetadataGetUnsignedInteger(data: *mut BNMetadata) -> u64;
}
unsafe extern "C" {
pub fn BNMetadataGetSignedInteger(data: *mut BNMetadata) -> i64;
}
unsafe extern "C" {
pub fn BNMetadataGetDouble(data: *mut BNMetadata) -> f64;
}
unsafe extern "C" {
pub fn BNMetadataGetBooleanList(data: *mut BNMetadata, arg1: *mut usize) -> *mut bool;
}
unsafe extern "C" {
pub fn BNMetadataGetStringList(
data: *mut BNMetadata,
arg1: *mut usize,
) -> *mut *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNMetadataGetUnsignedIntegerList(data: *mut BNMetadata, arg1: *mut usize) -> *mut u64;
}
unsafe extern "C" {
pub fn BNMetadataGetSignedIntegerList(data: *mut BNMetadata, arg1: *mut usize) -> *mut i64;
}
unsafe extern "C" {
pub fn BNMetadataGetDoubleList(data: *mut BNMetadata, arg1: *mut usize) -> *mut f64;
}
unsafe extern "C" {
pub fn BNMetadataGetRaw(data: *mut BNMetadata, size: *mut usize) -> *mut u8;
}
unsafe extern "C" {
pub fn BNMetadataGetArray(data: *mut BNMetadata, size: *mut usize) -> *mut *mut BNMetadata;
}
unsafe extern "C" {
pub fn BNMetadataGetValueStore(data: *mut BNMetadata) -> *mut BNMetadataValueStore;
}
unsafe extern "C" {
pub fn BNMetadataGetJsonString(data: *mut BNMetadata) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
#[doc = " Query type of Metadata"]
pub fn BNMetadataGetType(data: *mut BNMetadata) -> BNMetadataType;
}
unsafe extern "C" {
pub fn BNMetadataIsBoolean(data: *mut BNMetadata) -> bool;
}
unsafe extern "C" {
pub fn BNMetadataIsString(data: *mut BNMetadata) -> bool;
}
unsafe extern "C" {
pub fn BNMetadataIsUnsignedInteger(data: *mut BNMetadata) -> bool;
}
unsafe extern "C" {
pub fn BNMetadataIsSignedInteger(data: *mut BNMetadata) -> bool;
}
unsafe extern "C" {
pub fn BNMetadataIsDouble(data: *mut BNMetadata) -> bool;
}
unsafe extern "C" {
pub fn BNMetadataIsBooleanList(data: *mut BNMetadata) -> bool;
}
unsafe extern "C" {
pub fn BNMetadataIsStringList(data: *mut BNMetadata) -> bool;
}
unsafe extern "C" {
pub fn BNMetadataIsUnsignedIntegerList(data: *mut BNMetadata) -> bool;
}
unsafe extern "C" {
pub fn BNMetadataIsSignedIntegerList(data: *mut BNMetadata) -> bool;
}
unsafe extern "C" {
pub fn BNMetadataIsDoubleList(data: *mut BNMetadata) -> bool;
}
unsafe extern "C" {
pub fn BNMetadataIsRaw(data: *mut BNMetadata) -> bool;
}
unsafe extern "C" {
pub fn BNMetadataIsArray(data: *mut BNMetadata) -> bool;
}
unsafe extern "C" {
pub fn BNMetadataIsKeyValueStore(data: *mut BNMetadata) -> bool;
}
unsafe extern "C" {
#[doc = " Store/Query structured data to/from a BinaryView"]
pub fn BNBinaryViewStoreMetadata(
view: *mut BNBinaryView,
key: *const ::std::os::raw::c_char,
value: *mut BNMetadata,
isAuto: bool,
);
}
unsafe extern "C" {
pub fn BNBinaryViewQueryMetadata(
view: *mut BNBinaryView,
key: *const ::std::os::raw::c_char,
) -> *mut BNMetadata;
}
unsafe extern "C" {
pub fn BNBinaryViewRemoveMetadata(view: *mut BNBinaryView, key: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn BNBinaryViewGetMetadata(view: *mut BNBinaryView) -> *mut BNMetadata;
}
unsafe extern "C" {
pub fn BNBinaryViewGetAutoMetadata(view: *mut BNBinaryView) -> *mut BNMetadata;
}
unsafe extern "C" {
pub fn BNBinaryViewGetLoadSettingsTypeNames(
view: *mut BNBinaryView,
count: *mut usize,
) -> *mut *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNBinaryViewGetLoadSettings(
view: *mut BNBinaryView,
typeName: *const ::std::os::raw::c_char,
) -> *mut BNSettings;
}
unsafe extern "C" {
pub fn BNBinaryViewSetLoadSettings(
view: *mut BNBinaryView,
typeName: *const ::std::os::raw::c_char,
settings: *mut BNSettings,
);
}
unsafe extern "C" {
pub fn BNBinaryViewFinalizeNewSegments(view: *mut BNBinaryView) -> bool;
}
unsafe extern "C" {
#[doc = " Relocation object methods"]
pub fn BNNewRelocationReference(reloc: *mut BNRelocation) -> *mut BNRelocation;
}
unsafe extern "C" {
pub fn BNFreeRelocation(reloc: *mut BNRelocation);
}
unsafe extern "C" {
pub fn BNRelocationGetInfo(reloc: *mut BNRelocation) -> BNRelocationInfo;
}
unsafe extern "C" {
pub fn BNRelocationGetArchitecture(reloc: *mut BNRelocation) -> *mut BNArchitecture;
}
unsafe extern "C" {
pub fn BNRelocationGetTarget(reloc: *mut BNRelocation) -> u64;
}
unsafe extern "C" {
pub fn BNRelocationGetReloc(reloc: *mut BNRelocation) -> u64;
}
unsafe extern "C" {
pub fn BNRelocationGetSymbol(reloc: *mut BNRelocation) -> *mut BNSymbol;
}
unsafe extern "C" {
#[doc = " Segment object methods"]
pub fn BNCreateSegment(
start: u64,
length: u64,
dataOffset: u64,
dataLength: u64,
flags: u32,
autoDefined: bool,
) -> *mut BNSegment;
}
unsafe extern "C" {
pub fn BNNewSegmentReference(seg: *mut BNSegment) -> *mut BNSegment;
}
unsafe extern "C" {
pub fn BNFreeSegment(seg: *mut BNSegment);
}
unsafe extern "C" {
pub fn BNSegmentGetStart(segment: *mut BNSegment) -> u64;
}
unsafe extern "C" {
pub fn BNSegmentGetLength(segment: *mut BNSegment) -> u64;
}
unsafe extern "C" {
pub fn BNSegmentGetEnd(segment: *mut BNSegment) -> u64;
}
unsafe extern "C" {
pub fn BNSegmentGetDataEnd(segment: *mut BNSegment) -> u64;
}
unsafe extern "C" {
pub fn BNSegmentGetDataOffset(segment: *mut BNSegment) -> u64;
}
unsafe extern "C" {
pub fn BNSegmentGetDataLength(segment: *mut BNSegment) -> u64;
}
unsafe extern "C" {
pub fn BNSegmentGetFlags(segment: *mut BNSegment) -> u32;
}
unsafe extern "C" {
pub fn BNSegmentIsAutoDefined(segment: *mut BNSegment) -> bool;
}
unsafe extern "C" {
#[doc = " Section object methods"]
pub fn BNNewSectionReference(section: *mut BNSection) -> *mut BNSection;
}
unsafe extern "C" {
pub fn BNFreeSection(section: *mut BNSection);
}
unsafe extern "C" {
pub fn BNSectionGetName(section: *mut BNSection) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNSectionGetType(section: *mut BNSection) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNSectionGetStart(section: *mut BNSection) -> u64;
}
unsafe extern "C" {
pub fn BNSectionGetLength(section: *mut BNSection) -> u64;
}
unsafe extern "C" {
pub fn BNSectionGetEnd(section: *mut BNSection) -> u64;
}
unsafe extern "C" {
pub fn BNSectionGetLinkedSection(section: *mut BNSection) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNSectionGetInfoSection(section: *mut BNSection) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNSectionGetInfoData(section: *mut BNSection) -> u64;
}
unsafe extern "C" {
pub fn BNSectionGetAlign(section: *mut BNSection) -> u64;
}
unsafe extern "C" {
pub fn BNSectionGetEntrySize(section: *mut BNSection) -> u64;
}
unsafe extern "C" {
pub fn BNSectionGetSemantics(section: *mut BNSection) -> BNSectionSemantics;
}
unsafe extern "C" {
pub fn BNSectionIsAutoDefined(section: *mut BNSection) -> bool;
}
unsafe extern "C" {
#[doc = " Custom Data Render methods"]
pub fn BNCreateDataRenderer(renderer: *mut BNCustomDataRenderer) -> *mut BNDataRenderer;
}
unsafe extern "C" {
pub fn BNNewDataRendererReference(renderer: *mut BNDataRenderer) -> *mut BNDataRenderer;
}
unsafe extern "C" {
pub fn BNIsValidForData(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
addr: u64,
type_: *mut BNType,
typeCtx: *mut BNTypeContext,
ctxCount: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetLinesForData(
ctxt: *mut ::std::os::raw::c_void,
view: *mut BNBinaryView,
addr: u64,
type_: *mut BNType,
prefix: *const BNInstructionTextToken,
prefixCount: usize,
width: usize,
count: *mut usize,
typeCtx: *mut BNTypeContext,
ctxCount: usize,
language: *const ::std::os::raw::c_char,
) -> *mut BNDisassemblyTextLine;
}
unsafe extern "C" {
pub fn BNRenderLinesForData(
data: *mut BNBinaryView,
addr: u64,
type_: *mut BNType,
prefix: *const BNInstructionTextToken,
prefixCount: usize,
width: usize,
count: *mut usize,
typeCtx: *mut BNTypeContext,
ctxCount: usize,
language: *const ::std::os::raw::c_char,
) -> *mut BNDisassemblyTextLine;
}
unsafe extern "C" {
pub fn BNFreeDataRenderer(renderer: *mut BNDataRenderer);
}
unsafe extern "C" {
pub fn BNGetDataRendererContainer() -> *mut BNDataRendererContainer;
}
unsafe extern "C" {
pub fn BNRegisterGenericDataRenderer(
container: *mut BNDataRendererContainer,
renderer: *mut BNDataRenderer,
);
}
unsafe extern "C" {
pub fn BNRegisterTypeSpecificDataRenderer(
container: *mut BNDataRendererContainer,
renderer: *mut BNDataRenderer,
);
}
unsafe extern "C" {
pub fn BNParseExpression(
view: *mut BNBinaryView,
expression: *const ::std::os::raw::c_char,
offset: *mut u64,
here: u64,
errorString: *mut *mut ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNFreeParseError(errorString: *mut ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn BNGetCurrentStackTraceString() -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNRegisterObjectRefDebugTrace(
typeName: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_void;
}
unsafe extern "C" {
pub fn BNUnregisterObjectRefDebugTrace(
typeName: *const ::std::os::raw::c_char,
trace: *mut ::std::os::raw::c_void,
);
}
unsafe extern "C" {
pub fn BNGetMemoryUsageInfo(count: *mut usize) -> *mut BNMemoryUsageInfo;
}
unsafe extern "C" {
pub fn BNFreeMemoryUsageInfo(info: *mut BNMemoryUsageInfo, count: usize);
}
unsafe extern "C" {
pub fn BNGetAddressRenderedWidth(addr: u64) -> u32;
}
unsafe extern "C" {
pub fn BNRustSimplifyStrToFQN(
arg1: *const ::std::os::raw::c_char,
arg2: bool,
) -> BNQualifiedName;
}
unsafe extern "C" {
pub fn BNRustSimplifyStrToStr(
arg1: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNRegisterDebugInfoParser(
name: *const ::std::os::raw::c_char,
isValid: ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut ::std::os::raw::c_void,
arg2: *mut BNBinaryView,
) -> bool,
>,
parseInfo: ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut ::std::os::raw::c_void,
arg2: *mut BNDebugInfo,
arg3: *mut BNBinaryView,
arg4: *mut BNBinaryView,
arg5: BNProgressFunction,
arg6: *mut ::std::os::raw::c_void,
) -> bool,
>,
context: *mut ::std::os::raw::c_void,
) -> *mut BNDebugInfoParser;
}
unsafe extern "C" {
pub fn BNUnregisterDebugInfoParser(rawName: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn BNGetDebugInfoParserByName(
name: *const ::std::os::raw::c_char,
) -> *mut BNDebugInfoParser;
}
unsafe extern "C" {
pub fn BNGetDebugInfoParsers(count: *mut usize) -> *mut *mut BNDebugInfoParser;
}
unsafe extern "C" {
pub fn BNGetDebugInfoParsersForView(
view: *mut BNBinaryView,
count: *mut usize,
) -> *mut *mut BNDebugInfoParser;
}
unsafe extern "C" {
pub fn BNGetDebugInfoParserName(parser: *mut BNDebugInfoParser) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNIsDebugInfoParserValidForView(
parser: *mut BNDebugInfoParser,
view: *mut BNBinaryView,
) -> bool;
}
unsafe extern "C" {
pub fn BNParseDebugInfo(
parser: *mut BNDebugInfoParser,
view: *mut BNBinaryView,
debugFile: *mut BNBinaryView,
existingDebugInfo: *mut BNDebugInfo,
progress: BNProgressFunction,
progressCtxt: *mut ::std::os::raw::c_void,
) -> *mut BNDebugInfo;
}
unsafe extern "C" {
pub fn BNNewDebugInfoParserReference(parser: *mut BNDebugInfoParser) -> *mut BNDebugInfoParser;
}
unsafe extern "C" {
pub fn BNFreeDebugInfoParserReference(parser: *mut BNDebugInfoParser);
}
unsafe extern "C" {
pub fn BNFreeDebugInfoParserList(parsers: *mut *mut BNDebugInfoParser, count: usize);
}
unsafe extern "C" {
pub fn BNNewDebugInfoReference(debugInfo: *mut BNDebugInfo) -> *mut BNDebugInfo;
}
unsafe extern "C" {
pub fn BNFreeDebugInfoReference(debugInfo: *mut BNDebugInfo);
}
unsafe extern "C" {
pub fn BNGetDebugParserNames(
debugInfo: *mut BNDebugInfo,
count: *mut usize,
) -> *mut *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetDebugInfoTypeContainer(
debugInfo: *mut BNDebugInfo,
parserName: *const ::std::os::raw::c_char,
) -> *mut BNTypeContainer;
}
unsafe extern "C" {
pub fn BNRemoveDebugParserInfo(
debugInfo: *mut BNDebugInfo,
parserName: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNRemoveDebugParserTypes(
debugInfo: *mut BNDebugInfo,
parserName: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNRemoveDebugParserFunctions(
debugInfo: *mut BNDebugInfo,
parserName: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNRemoveDebugParserDataVariables(
debugInfo: *mut BNDebugInfo,
parserName: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNAddDebugType(
debugInfo: *mut BNDebugInfo,
name: *const ::std::os::raw::c_char,
type_: *const BNType,
components: *mut *const ::std::os::raw::c_char,
components_count: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetDebugTypes(
debugInfo: *mut BNDebugInfo,
name: *const ::std::os::raw::c_char,
count: *mut usize,
) -> *mut BNNameAndType;
}
unsafe extern "C" {
pub fn BNGetDebugTypeByName(
debugInfo: *mut BNDebugInfo,
parserName: *const ::std::os::raw::c_char,
typeName: *const ::std::os::raw::c_char,
) -> *mut BNType;
}
unsafe extern "C" {
pub fn BNGetDebugTypesByName(
debugInfo: *mut BNDebugInfo,
typeName: *const ::std::os::raw::c_char,
count: *mut usize,
) -> *mut BNNameAndType;
}
unsafe extern "C" {
pub fn BNRemoveDebugTypeByName(
debugInfo: *mut BNDebugInfo,
parserName: *const ::std::os::raw::c_char,
typeName: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNFreeDebugTypes(types: *mut BNNameAndType, count: usize);
}
unsafe extern "C" {
pub fn BNAddDebugFunction(debugInfo: *mut BNDebugInfo, func: *mut BNDebugFunctionInfo) -> bool;
}
unsafe extern "C" {
pub fn BNGetDebugFunctions(
debugInfo: *mut BNDebugInfo,
name: *const ::std::os::raw::c_char,
count: *mut usize,
) -> *mut BNDebugFunctionInfo;
}
unsafe extern "C" {
pub fn BNRemoveDebugFunctionByIndex(
debugInfo: *mut BNDebugInfo,
parserName: *const ::std::os::raw::c_char,
index: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNFreeDebugFunctions(functions: *mut BNDebugFunctionInfo, count: usize);
}
unsafe extern "C" {
pub fn BNAddDebugDataVariable(
debugInfo: *mut BNDebugInfo,
address: u64,
type_: *const BNType,
name: *const ::std::os::raw::c_char,
components: *mut *const ::std::os::raw::c_char,
components_count: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNAddDebugDataVariableInfo(
debugInfo: *mut BNDebugInfo,
var: *const BNDataVariableAndName,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetDebugDataVariables(
debugInfo: *mut BNDebugInfo,
name: *const ::std::os::raw::c_char,
count: *mut usize,
) -> *mut BNDataVariableAndName;
}
unsafe extern "C" {
pub fn BNGetDebugDataVariableByName(
debugInfo: *mut BNDebugInfo,
parserName: *const ::std::os::raw::c_char,
variableName: *const ::std::os::raw::c_char,
var: *mut BNDataVariableAndName,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetDebugDataVariableByAddress(
debugInfo: *mut BNDebugInfo,
parserName: *const ::std::os::raw::c_char,
address: u64,
var: *mut BNDataVariableAndName,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetDebugDataVariablesByName(
debugInfo: *mut BNDebugInfo,
variableName: *const ::std::os::raw::c_char,
count: *mut usize,
) -> *mut BNDataVariableAndName;
}
unsafe extern "C" {
pub fn BNGetDebugDataVariablesByAddress(
debugInfo: *mut BNDebugInfo,
address: u64,
count: *mut usize,
) -> *mut BNDataVariableAndNameAndDebugParser;
}
unsafe extern "C" {
pub fn BNRemoveDebugDataVariableByAddress(
debugInfo: *mut BNDebugInfo,
parserName: *const ::std::os::raw::c_char,
address: u64,
) -> bool;
}
unsafe extern "C" {
#[doc = " Secrets providers"]
pub fn BNRegisterSecretsProvider(
name: *const ::std::os::raw::c_char,
callbacks: *mut BNSecretsProviderCallbacks,
) -> *mut BNSecretsProvider;
}
unsafe extern "C" {
pub fn BNGetSecretsProviderList(count: *mut usize) -> *mut *mut BNSecretsProvider;
}
unsafe extern "C" {
pub fn BNFreeSecretsProviderList(providers: *mut *mut BNSecretsProvider);
}
unsafe extern "C" {
pub fn BNGetSecretsProviderByName(
name: *const ::std::os::raw::c_char,
) -> *mut BNSecretsProvider;
}
unsafe extern "C" {
pub fn BNGetSecretsProviderName(
provider: *mut BNSecretsProvider,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNSecretsProviderHasData(
provider: *mut BNSecretsProvider,
key: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetSecretsProviderData(
provider: *mut BNSecretsProvider,
key: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNStoreSecretsProviderData(
provider: *mut BNSecretsProvider,
key: *const ::std::os::raw::c_char,
data: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNDeleteSecretsProviderData(
provider: *mut BNSecretsProvider,
key: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNCreateSymbolQueue() -> *mut BNSymbolQueue;
}
unsafe extern "C" {
pub fn BNDestroySymbolQueue(queue: *mut BNSymbolQueue);
}
unsafe extern "C" {
pub fn BNAppendSymbolQueue(
queue: *mut BNSymbolQueue,
resolve: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
symbol: *mut *mut BNSymbol,
type_: *mut BNTypeWithConfidence,
),
>,
resolveContext: *mut ::std::os::raw::c_void,
add: ::std::option::Option<
unsafe extern "C" fn(
ctxt: *mut ::std::os::raw::c_void,
symbol: *mut BNSymbol,
type_: *mut BNTypeWithConfidence,
),
>,
addContext: *mut ::std::os::raw::c_void,
);
}
unsafe extern "C" {
pub fn BNProcessSymbolQueue(queue: *mut BNSymbolQueue);
}
unsafe extern "C" {
pub fn BNCoreEnumToString(
enumName: *const ::std::os::raw::c_char,
value: usize,
result: *mut *mut ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNCoreEnumFromString(
enumName: *const ::std::os::raw::c_char,
value: *const ::std::os::raw::c_char,
result: *mut usize,
) -> bool;
}
unsafe extern "C" {
#[doc = " Type Archives"]
pub fn BNNewTypeArchiveReference(archive: *mut BNTypeArchive) -> *mut BNTypeArchive;
}
unsafe extern "C" {
pub fn BNFreeTypeArchiveReference(archive: *mut BNTypeArchive);
}
unsafe extern "C" {
pub fn BNFreeTypeArchiveList(archives: *mut *mut BNTypeArchive, count: usize);
}
unsafe extern "C" {
pub fn BNOpenTypeArchive(path: *const ::std::os::raw::c_char) -> *mut BNTypeArchive;
}
unsafe extern "C" {
pub fn BNCreateTypeArchive(
path: *const ::std::os::raw::c_char,
platform: *mut BNPlatform,
) -> *mut BNTypeArchive;
}
unsafe extern "C" {
pub fn BNCreateTypeArchiveWithId(
path: *const ::std::os::raw::c_char,
platform: *mut BNPlatform,
id: *const ::std::os::raw::c_char,
) -> *mut BNTypeArchive;
}
unsafe extern "C" {
pub fn BNLookupTypeArchiveById(id: *const ::std::os::raw::c_char) -> *mut BNTypeArchive;
}
unsafe extern "C" {
pub fn BNCloseTypeArchive(archive: *mut BNTypeArchive);
}
unsafe extern "C" {
pub fn BNIsTypeArchive(path: *const ::std::os::raw::c_char) -> bool;
}
unsafe extern "C" {
pub fn BNGetTypeArchiveId(archive: *mut BNTypeArchive) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetTypeArchivePath(archive: *mut BNTypeArchive) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetTypeArchivePlatform(archive: *mut BNTypeArchive) -> *mut BNPlatform;
}
unsafe extern "C" {
pub fn BNGetTypeArchiveCurrentSnapshotId(
archive: *mut BNTypeArchive,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNSetTypeArchiveCurrentSnapshot(
archive: *mut BNTypeArchive,
id: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNGetTypeArchiveAllSnapshotIds(
archive: *mut BNTypeArchive,
count: *mut usize,
) -> *mut *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetTypeArchiveSnapshotParentIds(
archive: *mut BNTypeArchive,
id: *const ::std::os::raw::c_char,
count: *mut usize,
) -> *mut *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetTypeArchiveSnapshotChildIds(
archive: *mut BNTypeArchive,
id: *const ::std::os::raw::c_char,
count: *mut usize,
) -> *mut *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetTypeArchiveTypeContainer(archive: *mut BNTypeArchive) -> *mut BNTypeContainer;
}
unsafe extern "C" {
pub fn BNAddTypeArchiveTypes(
archive: *mut BNTypeArchive,
types: *const BNQualifiedNameAndType,
count: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNRenameTypeArchiveType(
archive: *mut BNTypeArchive,
id: *const ::std::os::raw::c_char,
newName: *const BNQualifiedName,
) -> bool;
}
unsafe extern "C" {
pub fn BNDeleteTypeArchiveType(
archive: *mut BNTypeArchive,
id: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetTypeArchiveTypeById(
archive: *mut BNTypeArchive,
id: *const ::std::os::raw::c_char,
snapshot: *const ::std::os::raw::c_char,
) -> *mut BNType;
}
unsafe extern "C" {
pub fn BNGetTypeArchiveTypeByName(
archive: *mut BNTypeArchive,
name: *const BNQualifiedName,
snapshot: *const ::std::os::raw::c_char,
) -> *mut BNType;
}
unsafe extern "C" {
pub fn BNGetTypeArchiveTypeId(
archive: *mut BNTypeArchive,
name: *const BNQualifiedName,
snapshot: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetTypeArchiveTypeName(
archive: *mut BNTypeArchive,
id: *const ::std::os::raw::c_char,
snapshot: *const ::std::os::raw::c_char,
) -> BNQualifiedName;
}
unsafe extern "C" {
pub fn BNGetTypeArchiveTypes(
archive: *mut BNTypeArchive,
snapshot: *const ::std::os::raw::c_char,
count: *mut usize,
) -> *mut BNQualifiedNameTypeAndId;
}
unsafe extern "C" {
pub fn BNGetTypeArchiveTypeIds(
archive: *mut BNTypeArchive,
snapshot: *const ::std::os::raw::c_char,
count: *mut usize,
) -> *mut *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetTypeArchiveTypeNames(
archive: *mut BNTypeArchive,
snapshot: *const ::std::os::raw::c_char,
count: *mut usize,
) -> *mut BNQualifiedName;
}
unsafe extern "C" {
pub fn BNGetTypeArchiveTypeNamesAndIds(
archive: *mut BNTypeArchive,
snapshot: *const ::std::os::raw::c_char,
names: *mut *mut BNQualifiedName,
ids: *mut *mut *mut ::std::os::raw::c_char,
count: *mut usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetTypeArchiveOutgoingDirectTypeReferences(
archive: *mut BNTypeArchive,
id: *const ::std::os::raw::c_char,
snapshot: *const ::std::os::raw::c_char,
count: *mut usize,
) -> *mut *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetTypeArchiveOutgoingRecursiveTypeReferences(
archive: *mut BNTypeArchive,
id: *const ::std::os::raw::c_char,
snapshot: *const ::std::os::raw::c_char,
count: *mut usize,
) -> *mut *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetTypeArchiveIncomingDirectTypeReferences(
archive: *mut BNTypeArchive,
id: *const ::std::os::raw::c_char,
snapshot: *const ::std::os::raw::c_char,
count: *mut usize,
) -> *mut *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetTypeArchiveIncomingRecursiveTypeReferences(
archive: *mut BNTypeArchive,
id: *const ::std::os::raw::c_char,
snapshot: *const ::std::os::raw::c_char,
count: *mut usize,
) -> *mut *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNTypeArchiveNewSnapshotTransaction(
archive: *mut BNTypeArchive,
func: ::std::option::Option<
unsafe extern "C" fn(
context: *mut ::std::os::raw::c_void,
id: *const ::std::os::raw::c_char,
) -> bool,
>,
context: *mut ::std::os::raw::c_void,
parents: *const *const ::std::os::raw::c_char,
parentCount: usize,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNRegisterTypeArchiveNotification(
archive: *mut BNTypeArchive,
notification: *mut BNTypeArchiveNotification,
);
}
unsafe extern "C" {
pub fn BNUnregisterTypeArchiveNotification(
archive: *mut BNTypeArchive,
notification: *mut BNTypeArchiveNotification,
);
}
unsafe extern "C" {
pub fn BNTypeArchiveStoreMetadata(
archive: *mut BNTypeArchive,
key: *const ::std::os::raw::c_char,
value: *mut BNMetadata,
) -> bool;
}
unsafe extern "C" {
pub fn BNTypeArchiveQueryMetadata(
archive: *mut BNTypeArchive,
key: *const ::std::os::raw::c_char,
) -> *mut BNMetadata;
}
unsafe extern "C" {
pub fn BNTypeArchiveRemoveMetadata(
archive: *mut BNTypeArchive,
key: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNTypeArchiveSerializeSnapshot(
archive: *mut BNTypeArchive,
snapshot: *const ::std::os::raw::c_char,
) -> *mut BNDataBuffer;
}
unsafe extern "C" {
pub fn BNTypeArchiveDeserializeSnapshot(
archive: *mut BNTypeArchive,
buffer: *mut BNDataBuffer,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNTypeArchiveMergeSnapshots(
archive: *mut BNTypeArchive,
baseSnapshot: *const ::std::os::raw::c_char,
firstSnapshot: *const ::std::os::raw::c_char,
secondSnapshot: *const ::std::os::raw::c_char,
mergeConflictKeysIn: *const *const ::std::os::raw::c_char,
mergeConflictValuesIn: *const *const ::std::os::raw::c_char,
mergeConflictCountIn: usize,
mergeConflictsOut: *mut *mut *mut ::std::os::raw::c_char,
mergeConflictCountOut: *mut usize,
result: *mut *mut ::std::os::raw::c_char,
progress: BNProgressFunction,
context: *mut ::std::os::raw::c_void,
) -> bool;
}
unsafe extern "C" {
pub fn BNBinaryViewAttachTypeArchive(
view: *mut BNBinaryView,
id: *const ::std::os::raw::c_char,
path: *const ::std::os::raw::c_char,
) -> *mut BNTypeArchive;
}
unsafe extern "C" {
pub fn BNBinaryViewDetachTypeArchive(
view: *mut BNBinaryView,
id: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNBinaryViewGetTypeArchive(
view: *mut BNBinaryView,
id: *const ::std::os::raw::c_char,
) -> *mut BNTypeArchive;
}
unsafe extern "C" {
pub fn BNBinaryViewGetTypeArchives(
view: *mut BNBinaryView,
ids: *mut *mut *mut ::std::os::raw::c_char,
paths: *mut *mut *mut ::std::os::raw::c_char,
) -> usize;
}
unsafe extern "C" {
pub fn BNBinaryViewGetTypeArchivePath(
view: *mut BNBinaryView,
id: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNBinaryViewGetTypeArchiveTypeNameList(
view: *mut BNBinaryView,
names: *mut *mut BNQualifiedName,
) -> usize;
}
unsafe extern "C" {
pub fn BNBinaryViewGetTypeArchiveTypeNames(
view: *mut BNBinaryView,
name: *mut BNQualifiedName,
archiveIds: *mut *mut *mut ::std::os::raw::c_char,
archiveTypeIds: *mut *mut *mut ::std::os::raw::c_char,
) -> usize;
}
unsafe extern "C" {
pub fn BNBinaryViewGetAssociatedTypeArchiveTypes(
view: *mut BNBinaryView,
typeIds: *mut *mut *mut ::std::os::raw::c_char,
archiveIds: *mut *mut *mut ::std::os::raw::c_char,
archiveTypeIds: *mut *mut *mut ::std::os::raw::c_char,
) -> usize;
}
unsafe extern "C" {
pub fn BNBinaryViewGetAssociatedTypesFromArchive(
view: *mut BNBinaryView,
archiveId: *const ::std::os::raw::c_char,
typeIds: *mut *mut *mut ::std::os::raw::c_char,
archiveTypeIds: *mut *mut *mut ::std::os::raw::c_char,
) -> usize;
}
unsafe extern "C" {
pub fn BNBinaryViewGetAssociatedTypeArchiveTypeTarget(
view: *mut BNBinaryView,
typeId: *const ::std::os::raw::c_char,
archiveId: *mut *mut ::std::os::raw::c_char,
archiveTypeId: *mut *mut ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNBinaryViewGetAssociatedTypeArchiveTypeSource(
view: *mut BNBinaryView,
archiveId: *const ::std::os::raw::c_char,
archiveTypeId: *const ::std::os::raw::c_char,
typeId: *mut *mut ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNBinaryViewGetTypeArchiveSyncStatus(
view: *mut BNBinaryView,
typeId: *const ::std::os::raw::c_char,
) -> BNSyncStatus;
}
unsafe extern "C" {
pub fn BNBinaryViewDisassociateTypeArchiveType(
view: *mut BNBinaryView,
typeId: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNBinaryViewPullTypeArchiveTypes(
view: *mut BNBinaryView,
archiveId: *const ::std::os::raw::c_char,
archiveTypeIds: *const *const ::std::os::raw::c_char,
archiveTypeIdCount: usize,
updatedArchiveTypeIds: *mut *mut *mut ::std::os::raw::c_char,
updatedAnalysisTypeIds: *mut *mut *mut ::std::os::raw::c_char,
updatedTypeCount: *mut usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNBinaryViewPushTypeArchiveTypes(
view: *mut BNBinaryView,
archiveId: *const ::std::os::raw::c_char,
typeIds: *const *const ::std::os::raw::c_char,
typeIdCount: usize,
updatedAnalysisTypeIds: *mut *mut *mut ::std::os::raw::c_char,
updatedArchiveTypeIds: *mut *mut *mut ::std::os::raw::c_char,
updatedTypeCount: *mut usize,
) -> bool;
}
unsafe extern "C" {
#[doc = " Base Address Detection"]
pub fn BNCreateBaseAddressDetection(view: *mut BNBinaryView) -> *mut BNBaseAddressDetection;
}
unsafe extern "C" {
pub fn BNDetectBaseAddress(
bad: *mut BNBaseAddressDetection,
settings: *mut BNBaseAddressDetectionSettings,
) -> bool;
}
unsafe extern "C" {
pub fn BNGetBaseAddressDetectionScores(
bad: *mut BNBaseAddressDetection,
scores: *mut BNBaseAddressDetectionScore,
count: usize,
confidence: *mut BNBaseAddressDetectionConfidence,
lastTestedBaseAddress: *mut u64,
) -> usize;
}
unsafe extern "C" {
pub fn BNGetBaseAddressDetectionReasons(
bad: *mut BNBaseAddressDetection,
baseAddress: u64,
count: *mut usize,
) -> *mut BNBaseAddressDetectionReason;
}
unsafe extern "C" {
pub fn BNFreeBaseAddressDetectionReasons(reasons: *mut BNBaseAddressDetectionReason);
}
unsafe extern "C" {
pub fn BNAbortBaseAddressDetection(bad: *mut BNBaseAddressDetection);
}
unsafe extern "C" {
pub fn BNIsBaseAddressDetectionAborted(bad: *mut BNBaseAddressDetection) -> bool;
}
unsafe extern "C" {
pub fn BNFreeBaseAddressDetection(bad: *mut BNBaseAddressDetection);
}
unsafe extern "C" {
#[doc = " Unicode"]
pub fn BNUnicodeUTF16ToUTF8(utf16: *const u8, len: usize) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNUnicodeUTF32ToUTF8(utf32: *const u8) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNUnicodeGetBlockRange(
name: *const ::std::os::raw::c_char,
rangeStart: *mut u32,
rangeEnd: *mut u32,
) -> bool;
}
unsafe extern "C" {
pub fn BNUnicodeGetBlocksForNames(
names: *const *const ::std::os::raw::c_char,
nameCount: usize,
starts: *mut *mut *mut u32,
ends: *mut *mut *mut u32,
blockListCounts: *mut *mut usize,
blockCount: *mut usize,
);
}
unsafe extern "C" {
pub fn BNFreeUnicodeBlockList(
starts: *mut *mut u32,
ends: *mut *mut u32,
blockCounts: *mut usize,
blockListCounts: usize,
);
}
unsafe extern "C" {
pub fn BNUnicodeGetBlockNames(names: *mut *mut *mut ::std::os::raw::c_char, count: *mut usize);
}
unsafe extern "C" {
pub fn BNUnicodeGetBlockRanges(
names: *mut *mut *mut ::std::os::raw::c_char,
rangeStarts: *mut *mut u32,
rangeEnds: *mut *mut u32,
count: *mut usize,
);
}
unsafe extern "C" {
pub fn BNFreeUnicodeRangeList(starts: *mut u32, ends: *mut u32);
}
unsafe extern "C" {
pub fn BNUnicodeGetUTF8String(
starts: *mut *mut u32,
ends: *mut *mut u32,
blockListCounts: *mut usize,
blockCount: usize,
data: *const u8,
offset: usize,
dataLen: usize,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNUnicodeToEscapedString(
starts: *mut *mut u32,
ends: *mut *mut u32,
blockListCounts: *mut usize,
blockCount: usize,
utf8Enabled: bool,
data: *const ::std::os::raw::c_void,
dataLen: usize,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
#[doc = " Collaboration"]
pub fn BNCollaborationGetActiveRemote() -> *mut BNRemote;
}
unsafe extern "C" {
pub fn BNCollaborationSetActiveRemote(remote: *mut BNRemote);
}
unsafe extern "C" {
pub fn BNCollaborationStoreDataInKeychain(
key: *const ::std::os::raw::c_char,
dataKeys: *mut *const ::std::os::raw::c_char,
dataValues: *mut *const ::std::os::raw::c_char,
dataCount: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationHasDataInKeychain(key: *const ::std::os::raw::c_char) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationGetDataFromKeychain(
key: *const ::std::os::raw::c_char,
foundKeys: *mut *mut *mut ::std::os::raw::c_char,
foundValues: *mut *mut *mut ::std::os::raw::c_char,
) -> usize;
}
unsafe extern "C" {
pub fn BNCollaborationDeleteDataFromKeychain(key: *const ::std::os::raw::c_char) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationLoadRemotes() -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationGetRemotes(count: *mut usize) -> *mut *mut BNRemote;
}
unsafe extern "C" {
pub fn BNCollaborationGetRemoteById(remoteId: *const ::std::os::raw::c_char) -> *mut BNRemote;
}
unsafe extern "C" {
pub fn BNCollaborationGetRemoteByAddress(
remoteAddress: *const ::std::os::raw::c_char,
) -> *mut BNRemote;
}
unsafe extern "C" {
pub fn BNCollaborationGetRemoteByName(name: *const ::std::os::raw::c_char) -> *mut BNRemote;
}
unsafe extern "C" {
pub fn BNCollaborationCreateRemote(
name: *const ::std::os::raw::c_char,
address: *const ::std::os::raw::c_char,
) -> *mut BNRemote;
}
unsafe extern "C" {
pub fn BNCollaborationRemoveRemote(remote: *mut BNRemote);
}
unsafe extern "C" {
pub fn BNCollaborationSaveRemotes();
}
unsafe extern "C" {
pub fn BNCollaborationSyncDatabase(
database: *mut BNDatabase,
file: *mut BNRemoteFile,
conflictHandler: BNCollaborationAnalysisConflictHandler,
conflictHandlerCtxt: *mut ::std::os::raw::c_void,
progress: BNProgressFunction,
progressCtxt: *mut ::std::os::raw::c_void,
nameChangeset: BNCollaborationNameChangesetFunction,
nameChangesetCtxt: *mut ::std::os::raw::c_void,
) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationSyncTypeArchive(
archive: *mut BNTypeArchive,
file: *mut BNRemoteFile,
conflictHandler: ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut ::std::os::raw::c_void,
conflicts: *mut *mut BNTypeArchiveMergeConflict,
conflictCount: usize,
) -> bool,
>,
conflictHandlerCtxt: *mut ::std::os::raw::c_void,
progress: BNProgressFunction,
progressCtxt: *mut ::std::os::raw::c_void,
) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationPushTypeArchive(
archive: *mut BNTypeArchive,
file: *mut BNRemoteFile,
count: *mut usize,
progress: BNProgressFunction,
progressCtxt: *mut ::std::os::raw::c_void,
) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationPullTypeArchive(
archive: *mut BNTypeArchive,
file: *mut BNRemoteFile,
count: *mut usize,
conflictHandler: ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut ::std::os::raw::c_void,
conflicts: *mut *mut BNTypeArchiveMergeConflict,
conflictCount: usize,
) -> bool,
>,
conflictHandlerCtxt: *mut ::std::os::raw::c_void,
progress: BNProgressFunction,
progressCtxt: *mut ::std::os::raw::c_void,
) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationIsCollaborationTypeArchive(archive: *mut BNTypeArchive) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationGetRemoteForLocalTypeArchive(
archive: *mut BNTypeArchive,
) -> *mut BNRemote;
}
unsafe extern "C" {
pub fn BNCollaborationGetRemoteProjectForLocalTypeArchive(
archive: *mut BNTypeArchive,
) -> *mut BNRemoteProject;
}
unsafe extern "C" {
pub fn BNCollaborationGetRemoteFileForLocalTypeArchive(
archive: *mut BNTypeArchive,
) -> *mut BNRemoteFile;
}
unsafe extern "C" {
pub fn BNCollaborationGetRemoteSnapshotFromLocalTypeArchive(
archive: *mut BNTypeArchive,
snapshotId: *const ::std::os::raw::c_char,
) -> *mut BNCollaborationSnapshot;
}
unsafe extern "C" {
pub fn BNCollaborationGetLocalSnapshotFromRemoteTypeArchive(
snapshot: *mut BNCollaborationSnapshot,
archive: *mut BNTypeArchive,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNCollaborationIsTypeArchiveSnapshotIgnored(
archive: *mut BNTypeArchive,
snapshot: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationSetSnapshotAuthor(
database: *mut BNDatabase,
snapshot: *mut BNSnapshot,
author: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationDefaultProjectPath(
project: *mut BNRemoteProject,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNCollaborationDefaultFilePath(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNCollaborationDownloadFile(
file: *mut BNRemoteFile,
dbPath: *const ::std::os::raw::c_char,
progress: BNProgressFunction,
progressContext: *mut ::std::os::raw::c_void,
) -> *mut BNFileMetadata;
}
unsafe extern "C" {
pub fn BNCollaborationUploadDatabase(
metadata: *mut BNFileMetadata,
project: *mut BNRemoteProject,
folder: *mut BNRemoteFolder,
progress: BNProgressFunction,
progressContext: *mut ::std::os::raw::c_void,
nameChangeset: BNCollaborationNameChangesetFunction,
nameChangesetContext: *mut ::std::os::raw::c_void,
) -> *mut BNRemoteFile;
}
unsafe extern "C" {
pub fn BNCollaborationIsCollaborationDatabase(database: *mut BNDatabase) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationGetRemoteForLocalDatabase(
database: *mut BNDatabase,
result: *mut *mut BNRemote,
) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationGetRemoteProjectForLocalDatabase(
database: *mut BNDatabase,
result: *mut *mut BNRemoteProject,
) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationGetRemoteFileForLocalDatabase(
database: *mut BNDatabase,
result: *mut *mut BNRemoteFile,
) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationAssignSnapshotMap(
localSnapshot: *mut BNSnapshot,
remoteSnapshot: *mut BNCollaborationSnapshot,
) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationGetRemoteSnapshotFromLocal(
snapshot: *mut BNSnapshot,
result: *mut *mut BNCollaborationSnapshot,
) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationGetLocalSnapshotFromRemote(
snapshot: *mut BNCollaborationSnapshot,
database: *mut BNDatabase,
result: *mut *mut BNSnapshot,
) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationDownloadTypeArchive(
file: *mut BNRemoteFile,
dbPath: *const ::std::os::raw::c_char,
progress: BNProgressFunction,
progressContext: *mut ::std::os::raw::c_void,
result: *mut *mut BNTypeArchive,
) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationUploadTypeArchive(
archive: *mut BNTypeArchive,
project: *mut BNRemoteProject,
folder: *mut BNRemoteFolder,
progress: BNProgressFunction,
progressContext: *mut ::std::os::raw::c_void,
coreFile: *mut BNProjectFile,
result: *mut *mut BNRemoteFile,
) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationDownloadDatabaseForFile(
file: *mut BNRemoteFile,
dbPath: *const ::std::os::raw::c_char,
force: bool,
progress: BNProgressFunction,
progressContext: *mut ::std::os::raw::c_void,
) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationMergeSnapshots(
first: *mut BNSnapshot,
second: *mut BNSnapshot,
conflictHandler: BNCollaborationAnalysisConflictHandler,
conflictHandlerCtxt: *mut ::std::os::raw::c_void,
progress: BNProgressFunction,
progressContext: *mut ::std::os::raw::c_void,
) -> *mut BNSnapshot;
}
unsafe extern "C" {
pub fn BNCollaborationPullDatabase(
database: *mut BNDatabase,
file: *mut BNRemoteFile,
count: *mut usize,
conflictHandler: BNCollaborationAnalysisConflictHandler,
conflictHandlerCtxt: *mut ::std::os::raw::c_void,
progress: BNProgressFunction,
progressContext: *mut ::std::os::raw::c_void,
nameChangeset: BNCollaborationNameChangesetFunction,
nameChangesetContext: *mut ::std::os::raw::c_void,
) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationMergeDatabase(
database: *mut BNDatabase,
conflictHandler: BNCollaborationAnalysisConflictHandler,
conflictHandlerCtxt: *mut ::std::os::raw::c_void,
progress: BNProgressFunction,
progressContext: *mut ::std::os::raw::c_void,
) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationPushDatabase(
database: *mut BNDatabase,
file: *mut BNRemoteFile,
count: *mut usize,
progress: BNProgressFunction,
progressContext: *mut ::std::os::raw::c_void,
) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationDumpDatabase(database: *mut BNDatabase) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationIgnoreSnapshot(
database: *mut BNDatabase,
snapshot: *mut BNSnapshot,
) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationIsSnapshotIgnored(
database: *mut BNDatabase,
snapshot: *mut BNSnapshot,
) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationGetSnapshotAuthor(
database: *mut BNDatabase,
snapshot: *mut BNSnapshot,
result: *mut *mut ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationFreeIdList(ids: *mut u64, size: usize);
}
unsafe extern "C" {
pub fn BNCollaborationFreeSnapshotIdList(ids: *mut i64, size: usize);
}
unsafe extern "C" {
#[doc = " LazyT"]
pub fn BNCollaborationLazyTCreate(
ctor: ::std::option::Option<
unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void,
>,
context: *mut ::std::os::raw::c_void,
) -> *mut BNCollaborationLazyT;
}
unsafe extern "C" {
pub fn BNCollaborationLazyTDereference(
lazyT: *mut BNCollaborationLazyT,
) -> *mut ::std::os::raw::c_void;
}
unsafe extern "C" {
pub fn BNCollaborationFreeLazyT(lazyT: *mut BNCollaborationLazyT);
}
unsafe extern "C" {
#[doc = " Remote"]
pub fn BNNewRemoteReference(remote: *mut BNRemote) -> *mut BNRemote;
}
unsafe extern "C" {
pub fn BNFreeRemote(remote: *mut BNRemote);
}
unsafe extern "C" {
pub fn BNFreeRemoteList(remotes: *mut *mut BNRemote, count: usize);
}
unsafe extern "C" {
pub fn BNRemoteGetUniqueId(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNRemoteGetName(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNRemoteGetAddress(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNRemoteHasLoadedMetadata(remote: *mut BNRemote) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteIsConnected(remote: *mut BNRemote) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteGetUsername(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNRemoteGetToken(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNRemoteGetServerVersion(remote: *mut BNRemote) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn BNRemoteGetServerBuildVersion(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNRemoteGetServerBuildId(remote: *mut BNRemote) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNRemoteGetAuthBackends(
remote: *mut BNRemote,
backendIds: *mut *mut *mut ::std::os::raw::c_char,
backendNames: *mut *mut *mut ::std::os::raw::c_char,
count: *mut usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteHasPulledProjects(remote: *mut BNRemote) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteHasPulledUsers(remote: *mut BNRemote) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteHasPulledGroups(remote: *mut BNRemote) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteIsAdmin(remote: *mut BNRemote) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteIsEnterprise(remote: *mut BNRemote) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteLoadMetadata(remote: *mut BNRemote) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteRequestAuthenticationToken(
remote: *mut BNRemote,
username: *const ::std::os::raw::c_char,
password: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNRemoteConnect(
remote: *mut BNRemote,
username: *const ::std::os::raw::c_char,
token: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteDisconnect(remote: *mut BNRemote) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteGetProjects(
remote: *mut BNRemote,
count: *mut usize,
) -> *mut *mut BNRemoteProject;
}
unsafe extern "C" {
pub fn BNRemoteGetProjectById(
remote: *mut BNRemote,
id: *const ::std::os::raw::c_char,
) -> *mut BNRemoteProject;
}
unsafe extern "C" {
pub fn BNRemoteGetProjectByName(
remote: *mut BNRemote,
name: *const ::std::os::raw::c_char,
) -> *mut BNRemoteProject;
}
unsafe extern "C" {
pub fn BNRemotePullProjects(
remote: *mut BNRemote,
progress: BNProgressFunction,
progressContext: *mut ::std::os::raw::c_void,
) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteCreateProject(
remote: *mut BNRemote,
name: *const ::std::os::raw::c_char,
description: *const ::std::os::raw::c_char,
) -> *mut BNRemoteProject;
}
unsafe extern "C" {
pub fn BNRemoteImportLocalProject(
remote: *mut BNRemote,
localProject: *mut BNProject,
progress: BNProgressFunction,
progressCtxt: *mut ::std::os::raw::c_void,
) -> *mut BNRemoteProject;
}
unsafe extern "C" {
pub fn BNRemotePushProject(
remote: *mut BNRemote,
project: *mut BNRemoteProject,
extraFieldKeys: *mut *const ::std::os::raw::c_char,
extraFieldValues: *mut *const ::std::os::raw::c_char,
extraFieldCount: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteDeleteProject(remote: *mut BNRemote, project: *mut BNRemoteProject) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteGetGroups(
remote: *mut BNRemote,
count: *mut usize,
) -> *mut *mut BNCollaborationGroup;
}
unsafe extern "C" {
pub fn BNRemoteGetGroupById(remote: *mut BNRemote, id: u64) -> *mut BNCollaborationGroup;
}
unsafe extern "C" {
pub fn BNRemoteGetGroupByName(
remote: *mut BNRemote,
name: *const ::std::os::raw::c_char,
) -> *mut BNCollaborationGroup;
}
unsafe extern "C" {
pub fn BNRemoteSearchGroups(
remote: *mut BNRemote,
prefix: *const ::std::os::raw::c_char,
groupIds: *mut *mut u64,
groupNames: *mut *mut *mut ::std::os::raw::c_char,
count: *mut usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNRemotePullGroups(
remote: *mut BNRemote,
progress: BNProgressFunction,
progressContext: *mut ::std::os::raw::c_void,
) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteCreateGroup(
remote: *mut BNRemote,
name: *const ::std::os::raw::c_char,
usernames: *mut *const ::std::os::raw::c_char,
usernameCount: usize,
) -> *mut BNCollaborationGroup;
}
unsafe extern "C" {
pub fn BNRemotePushGroup(
remote: *mut BNRemote,
group: *mut BNCollaborationGroup,
extraFieldKeys: *mut *const ::std::os::raw::c_char,
extraFieldValues: *mut *const ::std::os::raw::c_char,
extraFieldCount: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteDeleteGroup(remote: *mut BNRemote, group: *mut BNCollaborationGroup) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteGetUsers(
remote: *mut BNRemote,
count: *mut usize,
) -> *mut *mut BNCollaborationUser;
}
unsafe extern "C" {
pub fn BNRemoteGetUserById(
remote: *mut BNRemote,
id: *const ::std::os::raw::c_char,
) -> *mut BNCollaborationUser;
}
unsafe extern "C" {
pub fn BNRemoteGetUserByUsername(
remote: *mut BNRemote,
username: *const ::std::os::raw::c_char,
) -> *mut BNCollaborationUser;
}
unsafe extern "C" {
pub fn BNRemoteGetCurrentUser(remote: *mut BNRemote) -> *mut BNCollaborationUser;
}
unsafe extern "C" {
pub fn BNRemoteSearchUsers(
remote: *mut BNRemote,
prefix: *const ::std::os::raw::c_char,
userIds: *mut *mut *mut ::std::os::raw::c_char,
usernames: *mut *mut *mut ::std::os::raw::c_char,
count: *mut usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteFindFiles(
remote: *mut BNRemote,
name: *const ::std::os::raw::c_char,
count: *mut usize,
) -> *mut BNRemoteFileSearchMatch;
}
unsafe extern "C" {
pub fn BNFreeRemoteFileSearchMatchList(matches: *mut BNRemoteFileSearchMatch, count: usize);
}
unsafe extern "C" {
pub fn BNRemotePullUsers(
remote: *mut BNRemote,
progress: BNProgressFunction,
progressContext: *mut ::std::os::raw::c_void,
) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteCreateUser(
remote: *mut BNRemote,
username: *const ::std::os::raw::c_char,
email: *const ::std::os::raw::c_char,
isActive: bool,
password: *const ::std::os::raw::c_char,
groupIds: *const u64,
groupIdCount: usize,
userPermissionIds: *const u64,
userPermissionIdCount: usize,
) -> *mut BNCollaborationUser;
}
unsafe extern "C" {
pub fn BNRemotePushUser(
remote: *mut BNRemote,
user: *mut BNCollaborationUser,
extraFieldKeys: *mut *const ::std::os::raw::c_char,
extraFieldValues: *mut *const ::std::os::raw::c_char,
extraFieldCount: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteRequest(
remote: *mut BNRemote,
request: *mut ::std::os::raw::c_void,
ret: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
#[doc = " CollabGroup"]
pub fn BNNewCollaborationGroupReference(
group: *mut BNCollaborationGroup,
) -> *mut BNCollaborationGroup;
}
unsafe extern "C" {
pub fn BNFreeCollaborationGroup(group: *mut BNCollaborationGroup);
}
unsafe extern "C" {
pub fn BNFreeCollaborationGroupList(group: *mut *mut BNCollaborationGroup, count: usize);
}
unsafe extern "C" {
pub fn BNCollaborationGroupGetRemote(group: *mut BNCollaborationGroup) -> *mut BNRemote;
}
unsafe extern "C" {
pub fn BNCollaborationGroupGetUrl(
group: *mut BNCollaborationGroup,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNCollaborationGroupGetId(group: *mut BNCollaborationGroup) -> u64;
}
unsafe extern "C" {
pub fn BNCollaborationGroupGetName(
group: *mut BNCollaborationGroup,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNCollaborationGroupSetName(
group: *mut BNCollaborationGroup,
name: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNCollaborationGroupGetUsers(
group: *mut BNCollaborationGroup,
userIds: *mut *mut *mut ::std::os::raw::c_char,
usernames: *mut *mut *mut ::std::os::raw::c_char,
count: *mut usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationGroupSetUsernames(
group: *mut BNCollaborationGroup,
names: *mut *const ::std::os::raw::c_char,
count: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationGroupContainsUser(
group: *mut BNCollaborationGroup,
username: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
#[doc = " CollabUser"]
pub fn BNNewCollaborationUserReference(
user: *mut BNCollaborationUser,
) -> *mut BNCollaborationUser;
}
unsafe extern "C" {
pub fn BNFreeCollaborationUser(user: *mut BNCollaborationUser);
}
unsafe extern "C" {
pub fn BNFreeCollaborationUserList(users: *mut *mut BNCollaborationUser, count: usize);
}
unsafe extern "C" {
pub fn BNCollaborationUserGetRemote(user: *mut BNCollaborationUser) -> *mut BNRemote;
}
unsafe extern "C" {
pub fn BNCollaborationUserGetUrl(user: *mut BNCollaborationUser)
-> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNCollaborationUserGetId(user: *mut BNCollaborationUser) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNCollaborationUserGetUsername(
user: *mut BNCollaborationUser,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNCollaborationUserGetEmail(
user: *mut BNCollaborationUser,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNCollaborationUserGetLastLogin(
user: *mut BNCollaborationUser,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNCollaborationUserIsActive(user: *mut BNCollaborationUser) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationUserSetUsername(
user: *mut BNCollaborationUser,
username: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationUserSetEmail(
user: *mut BNCollaborationUser,
email: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationUserSetIsActive(user: *mut BNCollaborationUser, isActive: bool) -> bool;
}
unsafe extern "C" {
#[doc = " RemoteProject"]
pub fn BNNewRemoteProjectReference(project: *mut BNRemoteProject) -> *mut BNRemoteProject;
}
unsafe extern "C" {
pub fn BNFreeRemoteProject(project: *mut BNRemoteProject);
}
unsafe extern "C" {
pub fn BNFreeRemoteProjectList(projects: *mut *mut BNRemoteProject, count: usize);
}
unsafe extern "C" {
pub fn BNRemoteProjectGetCoreProject(project: *mut BNRemoteProject) -> *mut BNProject;
}
unsafe extern "C" {
pub fn BNRemoteProjectIsOpen(project: *mut BNRemoteProject) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteProjectOpen(
project: *mut BNRemoteProject,
progress: BNProgressFunction,
progressCtxt: *mut ::std::os::raw::c_void,
) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteProjectClose(project: *mut BNRemoteProject);
}
unsafe extern "C" {
pub fn BNRemoteProjectGetRemote(project: *mut BNRemoteProject) -> *mut BNRemote;
}
unsafe extern "C" {
pub fn BNRemoteProjectGetUrl(project: *mut BNRemoteProject) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNRemoteProjectGetCreated(project: *mut BNRemoteProject) -> i64;
}
unsafe extern "C" {
pub fn BNRemoteProjectGetLastModified(project: *mut BNRemoteProject) -> i64;
}
unsafe extern "C" {
pub fn BNRemoteProjectGetId(project: *mut BNRemoteProject) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNRemoteProjectGetName(project: *mut BNRemoteProject) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNRemoteProjectSetName(
project: *mut BNRemoteProject,
name: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteProjectGetDescription(
project: *mut BNRemoteProject,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNRemoteProjectSetDescription(
project: *mut BNRemoteProject,
description: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteProjectGetReceivedFileCount(project: *mut BNRemoteProject) -> u64;
}
unsafe extern "C" {
pub fn BNRemoteProjectGetReceivedFolderCount(project: *mut BNRemoteProject) -> u64;
}
unsafe extern "C" {
pub fn BNRemoteProjectHasPulledFiles(project: *mut BNRemoteProject) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteProjectHasPulledFolders(project: *mut BNRemoteProject) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteProjectHasPulledGroupPermissions(project: *mut BNRemoteProject) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteProjectHasPulledUserPermissions(project: *mut BNRemoteProject) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteProjectIsAdmin(project: *mut BNRemoteProject) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteProjectGetFiles(
project: *mut BNRemoteProject,
count: *mut usize,
) -> *mut *mut BNRemoteFile;
}
unsafe extern "C" {
pub fn BNRemoteProjectGetFileById(
project: *mut BNRemoteProject,
id: *const ::std::os::raw::c_char,
) -> *mut BNRemoteFile;
}
unsafe extern "C" {
pub fn BNRemoteProjectGetFileByName(
project: *mut BNRemoteProject,
name: *const ::std::os::raw::c_char,
) -> *mut BNRemoteFile;
}
unsafe extern "C" {
pub fn BNRemoteProjectPullFiles(
project: *mut BNRemoteProject,
progress: BNProgressFunction,
progressContext: *mut ::std::os::raw::c_void,
) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteProjectCreateFile(
project: *mut BNRemoteProject,
filename: *const ::std::os::raw::c_char,
contents: *mut u8,
contentsSize: usize,
name: *const ::std::os::raw::c_char,
description: *const ::std::os::raw::c_char,
folder: *mut BNRemoteFolder,
type_: BNRemoteFileType,
progress: BNProgressFunction,
progressContext: *mut ::std::os::raw::c_void,
) -> *mut BNRemoteFile;
}
unsafe extern "C" {
pub fn BNRemoteProjectPushFile(
project: *mut BNRemoteProject,
file: *mut BNRemoteFile,
extraFieldKeys: *mut *const ::std::os::raw::c_char,
extraFieldValues: *mut *const ::std::os::raw::c_char,
extraFieldCount: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteProjectDeleteFile(
project: *mut BNRemoteProject,
file: *mut BNRemoteFile,
) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteProjectGetFolders(
project: *mut BNRemoteProject,
count: *mut usize,
) -> *mut *mut BNRemoteFolder;
}
unsafe extern "C" {
pub fn BNRemoteProjectGetFolderById(
project: *mut BNRemoteProject,
id: *const ::std::os::raw::c_char,
) -> *mut BNRemoteFolder;
}
unsafe extern "C" {
pub fn BNRemoteProjectPullFolders(
project: *mut BNRemoteProject,
progress: BNProgressFunction,
progressContext: *mut ::std::os::raw::c_void,
) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteProjectCreateFolder(
project: *mut BNRemoteProject,
name: *const ::std::os::raw::c_char,
description: *const ::std::os::raw::c_char,
parent: *mut BNRemoteFolder,
progress: BNProgressFunction,
progressContext: *mut ::std::os::raw::c_void,
) -> *mut BNRemoteFolder;
}
unsafe extern "C" {
pub fn BNRemoteProjectPushFolder(
project: *mut BNRemoteProject,
folder: *mut BNRemoteFolder,
extraFieldKeys: *mut *const ::std::os::raw::c_char,
extraFieldValues: *mut *const ::std::os::raw::c_char,
extraFieldCount: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteProjectDeleteFolder(
project: *mut BNRemoteProject,
folder: *mut BNRemoteFolder,
) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteProjectGetGroupPermissions(
project: *mut BNRemoteProject,
count: *mut usize,
) -> *mut *mut BNCollaborationPermission;
}
unsafe extern "C" {
pub fn BNRemoteProjectGetUserPermissions(
project: *mut BNRemoteProject,
count: *mut usize,
) -> *mut *mut BNCollaborationPermission;
}
unsafe extern "C" {
pub fn BNRemoteProjectGetPermissionById(
project: *mut BNRemoteProject,
id: *const ::std::os::raw::c_char,
) -> *mut BNCollaborationPermission;
}
unsafe extern "C" {
pub fn BNRemoteProjectPullGroupPermissions(
project: *mut BNRemoteProject,
progress: BNProgressFunction,
progressContext: *mut ::std::os::raw::c_void,
) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteProjectPullUserPermissions(
project: *mut BNRemoteProject,
progress: BNProgressFunction,
progressContext: *mut ::std::os::raw::c_void,
) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteProjectCreateGroupPermission(
project: *mut BNRemoteProject,
groupId: i64,
level: BNCollaborationPermissionLevel,
progress: BNProgressFunction,
progressContext: *mut ::std::os::raw::c_void,
) -> *mut BNCollaborationPermission;
}
unsafe extern "C" {
pub fn BNRemoteProjectCreateUserPermission(
project: *mut BNRemoteProject,
userId: *const ::std::os::raw::c_char,
level: BNCollaborationPermissionLevel,
progress: BNProgressFunction,
progressContext: *mut ::std::os::raw::c_void,
) -> *mut BNCollaborationPermission;
}
unsafe extern "C" {
pub fn BNRemoteProjectPushPermission(
project: *mut BNRemoteProject,
permission: *mut BNCollaborationPermission,
extraFieldKeys: *mut *const ::std::os::raw::c_char,
extraFieldValues: *mut *const ::std::os::raw::c_char,
extraFieldCount: usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteProjectDeletePermission(
project: *mut BNRemoteProject,
permission: *mut BNCollaborationPermission,
) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteProjectCanUserView(
project: *mut BNRemoteProject,
username: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteProjectCanUserEdit(
project: *mut BNRemoteProject,
username: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteProjectCanUserAdmin(
project: *mut BNRemoteProject,
username: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
#[doc = " RemoteFile"]
pub fn BNNewRemoteFileReference(file: *mut BNRemoteFile) -> *mut BNRemoteFile;
}
unsafe extern "C" {
pub fn BNFreeRemoteFile(file: *mut BNRemoteFile);
}
unsafe extern "C" {
pub fn BNFreeRemoteFileList(files: *mut *mut BNRemoteFile, count: usize);
}
unsafe extern "C" {
pub fn BNRemoteFileGetCoreFile(file: *mut BNRemoteFile) -> *mut BNProjectFile;
}
unsafe extern "C" {
pub fn BNRemoteFileGetProject(file: *mut BNRemoteFile) -> *mut BNRemoteProject;
}
unsafe extern "C" {
pub fn BNRemoteFileGetFolder(file: *mut BNRemoteFile) -> *mut BNRemoteFolder;
}
unsafe extern "C" {
pub fn BNRemoteFileGetRemote(file: *mut BNRemoteFile) -> *mut BNRemote;
}
unsafe extern "C" {
pub fn BNRemoteFileGetUrl(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNRemoteFileGetChatLogUrl(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNRemoteFileGetUserPositionsUrl(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNRemoteFileGetId(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNRemoteFileGetType(file: *mut BNRemoteFile) -> BNRemoteFileType;
}
unsafe extern "C" {
pub fn BNRemoteFileGetCreated(file: *mut BNRemoteFile) -> i64;
}
unsafe extern "C" {
pub fn BNRemoteFileGetCreatedBy(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNRemoteFileGetLastModified(file: *mut BNRemoteFile) -> i64;
}
unsafe extern "C" {
pub fn BNRemoteFileGetLastSnapshot(file: *mut BNRemoteFile) -> i64;
}
unsafe extern "C" {
pub fn BNRemoteFileGetLastSnapshotBy(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNRemoteFileGetLastSnapshotName(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNRemoteFileGetHash(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNRemoteFileGetName(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNRemoteFileGetDescription(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNRemoteFileGetMetadata(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNRemoteFileGetSize(file: *mut BNRemoteFile) -> u64;
}
unsafe extern "C" {
pub fn BNRemoteFileHasPulledSnapshots(file: *mut BNRemoteFile) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteFileSetName(
file: *mut BNRemoteFile,
name: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteFileSetDescription(
file: *mut BNRemoteFile,
description: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteFileSetFolder(file: *mut BNRemoteFile, folder: *mut BNRemoteFolder) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteFileSetMetadata(
file: *mut BNRemoteFile,
metadata: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteFileGetSnapshots(
file: *mut BNRemoteFile,
count: *mut usize,
) -> *mut *mut BNCollaborationSnapshot;
}
unsafe extern "C" {
pub fn BNRemoteFileGetSnapshotById(
file: *mut BNRemoteFile,
id: *const ::std::os::raw::c_char,
) -> *mut BNCollaborationSnapshot;
}
unsafe extern "C" {
pub fn BNRemoteFilePullSnapshots(
file: *mut BNRemoteFile,
progress: BNProgressFunction,
progressContext: *mut ::std::os::raw::c_void,
) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteFileCreateSnapshot(
file: *mut BNRemoteFile,
name: *const ::std::os::raw::c_char,
contents: *mut u8,
contentsSize: usize,
analysisCacheContents: *mut u8,
analysisCacheContentsSize: usize,
fileContents: *mut u8,
fileContentsSize: usize,
parentIds: *mut *const ::std::os::raw::c_char,
parentIdCount: usize,
progress: BNProgressFunction,
progressContext: *mut ::std::os::raw::c_void,
) -> *mut BNCollaborationSnapshot;
}
unsafe extern "C" {
pub fn BNRemoteFileDeleteSnapshot(
file: *mut BNRemoteFile,
snapshot: *mut BNCollaborationSnapshot,
) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteFileDownload(
file: *mut BNRemoteFile,
progress: BNProgressFunction,
progressCtxt: *mut ::std::os::raw::c_void,
) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteFileDownloadContents(
file: *mut BNRemoteFile,
progress: BNProgressFunction,
progressCtxt: *mut ::std::os::raw::c_void,
data: *mut *mut u8,
size: *mut usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteFileRequestUserPositions(file: *mut BNRemoteFile)
-> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNRemoteFileRequestChatLog(file: *mut BNRemoteFile) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
#[doc = " RemoteFolder"]
pub fn BNNewRemoteFolderReference(folder: *mut BNRemoteFolder) -> *mut BNRemoteFolder;
}
unsafe extern "C" {
pub fn BNFreeRemoteFolder(folder: *mut BNRemoteFolder);
}
unsafe extern "C" {
pub fn BNFreeRemoteFolderList(folders: *mut *mut BNRemoteFolder, count: usize);
}
unsafe extern "C" {
pub fn BNRemoteFolderGetCoreFolder(folder: *mut BNRemoteFolder) -> *mut BNProjectFolder;
}
unsafe extern "C" {
pub fn BNRemoteFolderGetProject(folder: *mut BNRemoteFolder) -> *mut BNRemoteProject;
}
unsafe extern "C" {
pub fn BNRemoteFolderGetRemote(folder: *mut BNRemoteFolder) -> *mut BNRemote;
}
unsafe extern "C" {
pub fn BNRemoteFolderGetParent(
folder: *mut BNRemoteFolder,
parent: *mut *mut BNRemoteFolder,
) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteFolderGetUrl(folder: *mut BNRemoteFolder) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNRemoteFolderGetId(folder: *mut BNRemoteFolder) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNRemoteFolderGetParentId(
folder: *mut BNRemoteFolder,
result: *mut *mut ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteFolderGetName(folder: *mut BNRemoteFolder) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNRemoteFolderGetDescription(folder: *mut BNRemoteFolder)
-> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNRemoteFolderSetName(
folder: *mut BNRemoteFolder,
name: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteFolderSetDescription(
folder: *mut BNRemoteFolder,
description: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNRemoteFolderSetParent(
folder: *mut BNRemoteFolder,
parent: *mut BNRemoteFolder,
) -> bool;
}
unsafe extern "C" {
#[doc = " CollabPermission"]
pub fn BNNewCollaborationPermissionReference(
permission: *mut BNCollaborationPermission,
) -> *mut BNCollaborationPermission;
}
unsafe extern "C" {
pub fn BNFreeCollaborationPermission(permission: *mut BNCollaborationPermission);
}
unsafe extern "C" {
pub fn BNFreeCollaborationPermissionList(
permissions: *mut *mut BNCollaborationPermission,
count: usize,
);
}
unsafe extern "C" {
pub fn BNCollaborationPermissionGetProject(
permission: *mut BNCollaborationPermission,
) -> *mut BNRemoteProject;
}
unsafe extern "C" {
pub fn BNCollaborationPermissionGetRemote(
permission: *mut BNCollaborationPermission,
) -> *mut BNRemote;
}
unsafe extern "C" {
pub fn BNCollaborationPermissionGetId(
permission: *mut BNCollaborationPermission,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNCollaborationPermissionGetUrl(
permission: *mut BNCollaborationPermission,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNCollaborationPermissionGetGroupId(permission: *mut BNCollaborationPermission) -> u64;
}
unsafe extern "C" {
pub fn BNCollaborationPermissionGetGroupName(
permission: *mut BNCollaborationPermission,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNCollaborationPermissionGetUserId(
permission: *mut BNCollaborationPermission,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNCollaborationPermissionGetUsername(
permission: *mut BNCollaborationPermission,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNCollaborationPermissionGetLevel(
permission: *mut BNCollaborationPermission,
) -> BNCollaborationPermissionLevel;
}
unsafe extern "C" {
pub fn BNCollaborationPermissionSetLevel(
permission: *mut BNCollaborationPermission,
level: BNCollaborationPermissionLevel,
);
}
unsafe extern "C" {
pub fn BNCollaborationPermissionCanView(permission: *mut BNCollaborationPermission) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationPermissionCanEdit(permission: *mut BNCollaborationPermission) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationPermissionCanAdmin(permission: *mut BNCollaborationPermission) -> bool;
}
unsafe extern "C" {
#[doc = " AnalysisMergeConflict"]
pub fn BNNewAnalysisMergeConflictReference(
conflict: *mut BNAnalysisMergeConflict,
) -> *mut BNAnalysisMergeConflict;
}
unsafe extern "C" {
pub fn BNFreeAnalysisMergeConflict(conflict: *mut BNAnalysisMergeConflict);
}
unsafe extern "C" {
pub fn BNFreeAnalysisMergeConflictList(
conflicts: *mut *mut BNAnalysisMergeConflict,
count: usize,
);
}
unsafe extern "C" {
pub fn BNAnalysisMergeConflictGetDatabase(
conflict: *mut BNAnalysisMergeConflict,
) -> *mut BNDatabase;
}
unsafe extern "C" {
pub fn BNAnalysisMergeConflictGetType(
conflict: *mut BNAnalysisMergeConflict,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNAnalysisMergeConflictGetKey(
conflict: *mut BNAnalysisMergeConflict,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNAnalysisMergeConflictGetDataType(
conflict: *mut BNAnalysisMergeConflict,
) -> BNMergeConflictDataType;
}
unsafe extern "C" {
pub fn BNAnalysisMergeConflictGetBase(
conflict: *mut BNAnalysisMergeConflict,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNAnalysisMergeConflictGetFirst(
conflict: *mut BNAnalysisMergeConflict,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNAnalysisMergeConflictGetSecond(
conflict: *mut BNAnalysisMergeConflict,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNAnalysisMergeConflictGetBaseFile(
conflict: *mut BNAnalysisMergeConflict,
) -> *mut BNFileMetadata;
}
unsafe extern "C" {
pub fn BNAnalysisMergeConflictGetFirstFile(
conflict: *mut BNAnalysisMergeConflict,
) -> *mut BNFileMetadata;
}
unsafe extern "C" {
pub fn BNAnalysisMergeConflictGetSecondFile(
conflict: *mut BNAnalysisMergeConflict,
) -> *mut BNFileMetadata;
}
unsafe extern "C" {
pub fn BNAnalysisMergeConflictGetBaseSnapshot(
conflict: *mut BNAnalysisMergeConflict,
) -> *mut BNSnapshot;
}
unsafe extern "C" {
pub fn BNAnalysisMergeConflictGetFirstSnapshot(
conflict: *mut BNAnalysisMergeConflict,
) -> *mut BNSnapshot;
}
unsafe extern "C" {
pub fn BNAnalysisMergeConflictGetSecondSnapshot(
conflict: *mut BNAnalysisMergeConflict,
) -> *mut BNSnapshot;
}
unsafe extern "C" {
pub fn BNAnalysisMergeConflictGetPathItemString(
conflict: *mut BNAnalysisMergeConflict,
path: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNAnalysisMergeConflictGetPathItemSerialized(
conflict: *mut BNAnalysisMergeConflict,
path: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNAnalysisMergeConflictGetPathItem(
conflict: *mut BNAnalysisMergeConflict,
path: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_void;
}
unsafe extern "C" {
pub fn BNAnalysisMergeConflictSuccess(
conflict: *mut BNAnalysisMergeConflict,
value: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
#[doc = " TypeArchiveMergeConflict"]
pub fn BNNewTypeArchiveMergeConflictReference(
conflict: *mut BNTypeArchiveMergeConflict,
) -> *mut BNTypeArchiveMergeConflict;
}
unsafe extern "C" {
pub fn BNFreeTypeArchiveMergeConflict(conflict: *mut BNTypeArchiveMergeConflict);
}
unsafe extern "C" {
pub fn BNFreeTypeArchiveMergeConflictList(
conflicts: *mut *mut BNTypeArchiveMergeConflict,
count: usize,
);
}
unsafe extern "C" {
pub fn BNTypeArchiveMergeConflictGetTypeArchive(
conflict: *mut BNTypeArchiveMergeConflict,
) -> *mut BNTypeArchive;
}
unsafe extern "C" {
pub fn BNTypeArchiveMergeConflictGetTypeId(
conflict: *mut BNTypeArchiveMergeConflict,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNTypeArchiveMergeConflictGetBaseSnapshotId(
conflict: *mut BNTypeArchiveMergeConflict,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNTypeArchiveMergeConflictGetFirstSnapshotId(
conflict: *mut BNTypeArchiveMergeConflict,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNTypeArchiveMergeConflictGetSecondSnapshotId(
conflict: *mut BNTypeArchiveMergeConflict,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNTypeArchiveMergeConflictSuccess(
conflict: *mut BNTypeArchiveMergeConflict,
value: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
#[doc = " CollabSnapshot"]
pub fn BNNewCollaborationSnapshotReference(
snapshot: *mut BNCollaborationSnapshot,
) -> *mut BNCollaborationSnapshot;
}
unsafe extern "C" {
pub fn BNFreeCollaborationSnapshot(snapshot: *mut BNCollaborationSnapshot);
}
unsafe extern "C" {
pub fn BNFreeCollaborationSnapshotList(
snapshots: *mut *mut BNCollaborationSnapshot,
count: usize,
);
}
unsafe extern "C" {
pub fn BNCollaborationSnapshotGetFile(
snapshot: *mut BNCollaborationSnapshot,
) -> *mut BNRemoteFile;
}
unsafe extern "C" {
pub fn BNCollaborationSnapshotGetProject(
snapshot: *mut BNCollaborationSnapshot,
) -> *mut BNRemoteProject;
}
unsafe extern "C" {
pub fn BNCollaborationSnapshotGetRemote(
snapshot: *mut BNCollaborationSnapshot,
) -> *mut BNRemote;
}
unsafe extern "C" {
pub fn BNCollaborationSnapshotGetUrl(
snapshot: *mut BNCollaborationSnapshot,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNCollaborationSnapshotGetId(
snapshot: *mut BNCollaborationSnapshot,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNCollaborationSnapshotGetName(
snapshot: *mut BNCollaborationSnapshot,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNCollaborationSnapshotGetAuthor(
snapshot: *mut BNCollaborationSnapshot,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNCollaborationSnapshotGetCreated(snapshot: *mut BNCollaborationSnapshot) -> i64;
}
unsafe extern "C" {
pub fn BNCollaborationSnapshotGetLastModified(snapshot: *mut BNCollaborationSnapshot) -> i64;
}
unsafe extern "C" {
pub fn BNCollaborationSnapshotGetHash(
snapshot: *mut BNCollaborationSnapshot,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNCollaborationSnapshotGetSnapshotFileHash(
snapshot: *mut BNCollaborationSnapshot,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNCollaborationSnapshotHasPulledUndoEntries(
snapshot: *mut BNCollaborationSnapshot,
) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationSnapshotIsFinalized(snapshot: *mut BNCollaborationSnapshot) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationSnapshotGetParentIds(
snapshot: *mut BNCollaborationSnapshot,
count: *mut usize,
) -> *mut *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNCollaborationSnapshotGetChildIds(
snapshot: *mut BNCollaborationSnapshot,
count: *mut usize,
) -> *mut *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNCollaborationSnapshotGetAnalysisCacheBuildId(
snapshot: *mut BNCollaborationSnapshot,
) -> u64;
}
unsafe extern "C" {
pub fn BNCollaborationSnapshotGetTitle(
snapshot: *mut BNCollaborationSnapshot,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNCollaborationSnapshotGetDescription(
snapshot: *mut BNCollaborationSnapshot,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNCollaborationSnapshotGetAuthorUsername(
snapshot: *mut BNCollaborationSnapshot,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNCollaborationSnapshotGetParents(
snapshot: *mut BNCollaborationSnapshot,
count: *mut usize,
) -> *mut *mut BNCollaborationSnapshot;
}
unsafe extern "C" {
pub fn BNCollaborationSnapshotGetChildren(
snapshot: *mut BNCollaborationSnapshot,
count: *mut usize,
) -> *mut *mut BNCollaborationSnapshot;
}
unsafe extern "C" {
pub fn BNCollaborationSnapshotGetUndoEntries(
snapshot: *mut BNCollaborationSnapshot,
count: *mut usize,
) -> *mut *mut BNCollaborationUndoEntry;
}
unsafe extern "C" {
pub fn BNCollaborationSnapshotGetUndoEntryById(
snapshot: *mut BNCollaborationSnapshot,
id: u64,
) -> *mut BNCollaborationUndoEntry;
}
unsafe extern "C" {
pub fn BNCollaborationSnapshotPullUndoEntries(
snapshot: *mut BNCollaborationSnapshot,
progress: BNProgressFunction,
progressContext: *mut ::std::os::raw::c_void,
) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationSnapshotCreateUndoEntry(
snapshot: *mut BNCollaborationSnapshot,
hasParent: bool,
parent: u64,
data: *const ::std::os::raw::c_char,
) -> *mut BNCollaborationUndoEntry;
}
unsafe extern "C" {
pub fn BNCollaborationSnapshotFinalize(snapshot: *mut BNCollaborationSnapshot) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationSnapshotDownloadSnapshotFile(
snapshot: *mut BNCollaborationSnapshot,
progress: BNProgressFunction,
progressContext: *mut ::std::os::raw::c_void,
data: *mut *mut u8,
size: *mut usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationSnapshotDownload(
snapshot: *mut BNCollaborationSnapshot,
progress: BNProgressFunction,
progressContext: *mut ::std::os::raw::c_void,
data: *mut *mut u8,
size: *mut usize,
) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationSnapshotDownloadAnalysisCache(
snapshot: *mut BNCollaborationSnapshot,
progress: BNProgressFunction,
progressContext: *mut ::std::os::raw::c_void,
data: *mut *mut u8,
size: *mut usize,
) -> bool;
}
unsafe extern "C" {
#[doc = " CollabUndoEntry"]
pub fn BNNewCollaborationUndoEntryReference(
entry: *mut BNCollaborationUndoEntry,
) -> *mut BNCollaborationUndoEntry;
}
unsafe extern "C" {
pub fn BNFreeCollaborationUndoEntry(entry: *mut BNCollaborationUndoEntry);
}
unsafe extern "C" {
pub fn BNFreeCollaborationUndoEntryList(
entries: *mut *mut BNCollaborationUndoEntry,
count: usize,
);
}
unsafe extern "C" {
pub fn BNCollaborationUndoEntryGetSnapshot(
undoEntry: *mut BNCollaborationUndoEntry,
) -> *mut BNCollaborationSnapshot;
}
unsafe extern "C" {
pub fn BNCollaborationUndoEntryGetFile(
undoEntry: *mut BNCollaborationUndoEntry,
) -> *mut BNRemoteFile;
}
unsafe extern "C" {
pub fn BNCollaborationUndoEntryGetProject(
undoEntry: *mut BNCollaborationUndoEntry,
) -> *mut BNRemoteProject;
}
unsafe extern "C" {
pub fn BNCollaborationUndoEntryGetRemote(
undoEntry: *mut BNCollaborationUndoEntry,
) -> *mut BNRemote;
}
unsafe extern "C" {
pub fn BNCollaborationUndoEntryGetUrl(
undoEntry: *mut BNCollaborationUndoEntry,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNCollaborationUndoEntryGetId(undoEntry: *mut BNCollaborationUndoEntry) -> u64;
}
unsafe extern "C" {
pub fn BNCollaborationUndoEntryGetParentId(
undoEntry: *mut BNCollaborationUndoEntry,
parentId: *mut u64,
) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationUndoEntryGetData(
undoEntry: *mut BNCollaborationUndoEntry,
data: *mut *mut ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNCollaborationUndoEntryGetParent(
undoEntry: *mut BNCollaborationUndoEntry,
) -> *mut BNCollaborationUndoEntry;
}
unsafe extern "C" {
#[doc = " CollabChangeset"]
pub fn BNNewCollaborationChangesetReference(
changeset: *mut BNCollaborationChangeset,
) -> *mut BNCollaborationChangeset;
}
unsafe extern "C" {
pub fn BNFreeCollaborationChangeset(changeset: *mut BNCollaborationChangeset);
}
unsafe extern "C" {
pub fn BNFreeCollaborationChangesetList(
changesets: *mut *mut BNCollaborationChangeset,
count: usize,
);
}
unsafe extern "C" {
pub fn BNCollaborationChangesetGetDatabase(
changeset: *mut BNCollaborationChangeset,
) -> *mut BNDatabase;
}
unsafe extern "C" {
pub fn BNCollaborationChangesetGetFile(
changeset: *mut BNCollaborationChangeset,
) -> *mut BNRemoteFile;
}
unsafe extern "C" {
pub fn BNCollaborationChangesetGetSnapshotIds(
changeset: *mut BNCollaborationChangeset,
count: *mut usize,
) -> *mut i64;
}
unsafe extern "C" {
pub fn BNCollaborationChangesetGetAuthor(
changeset: *mut BNCollaborationChangeset,
) -> *mut BNCollaborationUser;
}
unsafe extern "C" {
pub fn BNCollaborationChangesetGetName(
changeset: *mut BNCollaborationChangeset,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNCollaborationChangesetSetName(
changeset: *mut BNCollaborationChangeset,
name: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
#[doc = " AnalysisMergeConflictSplitter"]
pub fn BNRegisterAnalysisMergeConflictSplitter(
callbacks: *mut BNAnalysisMergeConflictSplitterCallbacks,
) -> *mut BNAnalysisMergeConflictSplitter;
}
unsafe extern "C" {
pub fn BNGetAnalysisMergeConflictSplitterList(
count: *mut usize,
) -> *mut *mut BNAnalysisMergeConflictSplitter;
}
unsafe extern "C" {
pub fn BNFreeAnalysisMergeConflictSplitterList(
splitters: *mut *mut BNAnalysisMergeConflictSplitter,
count: usize,
);
}
unsafe extern "C" {
pub fn BNAnalysisMergeConflictSplitterGetName(
splitter: *mut BNAnalysisMergeConflictSplitter,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNAnalysisMergeConflictSplitterCanSplit(
splitter: *mut BNAnalysisMergeConflictSplitter,
key: *const ::std::os::raw::c_char,
conflict: *mut BNAnalysisMergeConflict,
) -> bool;
}
unsafe extern "C" {
pub fn BNAnalysisMergeConflictSplitterSplit(
splitter: *mut BNAnalysisMergeConflictSplitter,
originalKey: *const ::std::os::raw::c_char,
originalConflict: *mut BNAnalysisMergeConflict,
result: *mut BNKeyValueStore,
newKeys: *mut *mut *mut ::std::os::raw::c_char,
newConflicts: *mut *mut *mut BNAnalysisMergeConflict,
newCount: *mut usize,
) -> bool;
}
unsafe extern "C" {
#[doc = " High level token emitter"]
pub fn BNNewHighLevelILTokenEmitterReference(
emitter: *mut BNHighLevelILTokenEmitter,
) -> *mut BNHighLevelILTokenEmitter;
}
unsafe extern "C" {
pub fn BNHighLevelILTokenPrependCollapseBlankIndicator(emitter: *mut BNHighLevelILTokenEmitter);
}
unsafe extern "C" {
pub fn BNHighLevelILTokenPrependCollapseIndicator(
emitter: *mut BNHighLevelILTokenEmitter,
context: BNInstructionTextTokenContext,
hash: u64,
);
}
unsafe extern "C" {
pub fn BNHighLevelILTokenEmitterHasCollapsableRegions(
emitter: *mut BNHighLevelILTokenEmitter,
) -> bool;
}
unsafe extern "C" {
pub fn BNHighLevelILTokenEmitterSetHasCollapsableRegions(
emitter: *mut BNHighLevelILTokenEmitter,
state: bool,
);
}
unsafe extern "C" {
pub fn BNFreeHighLevelILTokenEmitter(emitter: *mut BNHighLevelILTokenEmitter);
}
unsafe extern "C" {
pub fn BNHighLevelILTokenEmitterAppend(
emitter: *mut BNHighLevelILTokenEmitter,
token: *mut BNInstructionTextToken,
);
}
unsafe extern "C" {
pub fn BNHighLevelILTokenEmitterInitLine(emitter: *mut BNHighLevelILTokenEmitter);
}
unsafe extern "C" {
pub fn BNHighLevelILTokenEmitterNewLine(emitter: *mut BNHighLevelILTokenEmitter);
}
unsafe extern "C" {
pub fn BNHighLevelILTokenEmitterIncreaseIndent(emitter: *mut BNHighLevelILTokenEmitter);
}
unsafe extern "C" {
pub fn BNHighLevelILTokenEmitterDecreaseIndent(emitter: *mut BNHighLevelILTokenEmitter);
}
unsafe extern "C" {
pub fn BNHighLevelILTokenEmitterScopeSeparator(emitter: *mut BNHighLevelILTokenEmitter);
}
unsafe extern "C" {
pub fn BNHighLevelILTokenEmitterBeginScope(
emitter: *mut BNHighLevelILTokenEmitter,
type_: BNScopeType,
);
}
unsafe extern "C" {
pub fn BNHighLevelILTokenEmitterEndScope(
emitter: *mut BNHighLevelILTokenEmitter,
type_: BNScopeType,
);
}
unsafe extern "C" {
pub fn BNHighLevelILTokenEmitterScopeContinuation(
emitter: *mut BNHighLevelILTokenEmitter,
forceSameLine: bool,
);
}
unsafe extern "C" {
pub fn BNHighLevelILTokenEmitterFinalizeScope(emitter: *mut BNHighLevelILTokenEmitter);
}
unsafe extern "C" {
pub fn BNHighLevelILTokenEmitterNoIndentForThisLine(emitter: *mut BNHighLevelILTokenEmitter);
}
unsafe extern "C" {
pub fn BNHighLevelILTokenEmitterBeginForceZeroConfidence(
emitter: *mut BNHighLevelILTokenEmitter,
);
}
unsafe extern "C" {
pub fn BNHighLevelILTokenEmitterEndForceZeroConfidence(emitter: *mut BNHighLevelILTokenEmitter);
}
unsafe extern "C" {
pub fn BNHighLevelILTokenEmitterSetCurrentExpr(
emitter: *mut BNHighLevelILTokenEmitter,
expr: BNTokenEmitterExpr,
) -> BNTokenEmitterExpr;
}
unsafe extern "C" {
pub fn BNHighLevelILTokenEmitterRestoreCurrentExpr(
emitter: *mut BNHighLevelILTokenEmitter,
expr: BNTokenEmitterExpr,
);
}
unsafe extern "C" {
pub fn BNHighLevelILTokenEmitterFinalize(emitter: *mut BNHighLevelILTokenEmitter);
}
unsafe extern "C" {
pub fn BNHighLevelILTokenEmitterAppendOpenParen(emitter: *mut BNHighLevelILTokenEmitter);
}
unsafe extern "C" {
pub fn BNHighLevelILTokenEmitterAppendCloseParen(emitter: *mut BNHighLevelILTokenEmitter);
}
unsafe extern "C" {
pub fn BNHighLevelILTokenEmitterAppendOpenBracket(emitter: *mut BNHighLevelILTokenEmitter);
}
unsafe extern "C" {
pub fn BNHighLevelILTokenEmitterAppendCloseBracket(emitter: *mut BNHighLevelILTokenEmitter);
}
unsafe extern "C" {
pub fn BNHighLevelILTokenEmitterAppendOpenBrace(emitter: *mut BNHighLevelILTokenEmitter);
}
unsafe extern "C" {
pub fn BNHighLevelILTokenEmitterAppendCloseBrace(emitter: *mut BNHighLevelILTokenEmitter);
}
unsafe extern "C" {
pub fn BNHighLevelILTokenEmitterAppendSemicolon(emitter: *mut BNHighLevelILTokenEmitter);
}
unsafe extern "C" {
pub fn BNHighLevelILTokenEmitterSetBraceRequirement(
emitter: *mut BNHighLevelILTokenEmitter,
required: BNBraceRequirement,
);
}
unsafe extern "C" {
pub fn BNHighLevelILTokenEmitterSetBracesAroundSwitchCases(
emitter: *mut BNHighLevelILTokenEmitter,
braces: bool,
);
}
unsafe extern "C" {
pub fn BNHighLevelILTokenEmitterSetDefaultBracesOnSameLine(
emitter: *mut BNHighLevelILTokenEmitter,
sameLine: bool,
);
}
unsafe extern "C" {
pub fn BNHighLevelILTokenEmitterSetSimpleScopeAllowed(
emitter: *mut BNHighLevelILTokenEmitter,
allowed: bool,
);
}
unsafe extern "C" {
pub fn BNHighLevelILTokenEmitterGetBraceRequirement(
emitter: *mut BNHighLevelILTokenEmitter,
) -> BNBraceRequirement;
}
unsafe extern "C" {
pub fn BNHighLevelILTokenEmitterHasBracesAroundSwitchCases(
emitter: *mut BNHighLevelILTokenEmitter,
) -> bool;
}
unsafe extern "C" {
pub fn BNHighLevelILTokenEmitterGetDefaultBracesOnSameLine(
emitter: *mut BNHighLevelILTokenEmitter,
) -> bool;
}
unsafe extern "C" {
pub fn BNHighLevelILTokenEmitterGetMaxTernarySimplficationTokens(
emitter: *mut BNHighLevelILTokenEmitter,
) -> usize;
}
unsafe extern "C" {
pub fn BNHighLevelILTokenEmitterIsSimpleScopeAllowed(
emitter: *mut BNHighLevelILTokenEmitter,
) -> bool;
}
unsafe extern "C" {
pub fn BNHighLevelILTokenEmitterGetCurrentTokens(
emitter: *mut BNHighLevelILTokenEmitter,
tokenCount: *mut usize,
) -> *mut BNInstructionTextToken;
}
unsafe extern "C" {
pub fn BNHighLevelILTokenEmitterSetCurrentTokens(
emitter: *mut BNHighLevelILTokenEmitter,
tokens: *mut BNInstructionTextToken,
tokenCount: usize,
);
}
unsafe extern "C" {
pub fn BNHighLevelILTokenEmitterGetLines(
emitter: *mut BNHighLevelILTokenEmitter,
count: *mut usize,
) -> *mut BNDisassemblyTextLine;
}
unsafe extern "C" {
pub fn BNAddHighLevelILSizeToken(
size: usize,
type_: BNInstructionTextTokenType,
tokens: *mut BNHighLevelILTokenEmitter,
);
}
unsafe extern "C" {
pub fn BNAddHighLevelILFloatSizeToken(
size: usize,
type_: BNInstructionTextTokenType,
tokens: *mut BNHighLevelILTokenEmitter,
);
}
unsafe extern "C" {
pub fn BNAddHighLevelILVarTextToken(
func: *mut BNHighLevelILFunction,
var: *const BNVariable,
tokens: *mut BNHighLevelILTokenEmitter,
exprIndex: usize,
size: usize,
);
}
unsafe extern "C" {
pub fn BNAddHighLevelILIntegerTextToken(
func: *mut BNHighLevelILFunction,
exprIndex: usize,
val: i64,
size: usize,
tokens: *mut BNHighLevelILTokenEmitter,
);
}
unsafe extern "C" {
pub fn BNAddHighLevelILArrayIndexToken(
func: *mut BNHighLevelILFunction,
exprIndex: usize,
val: i64,
size: usize,
tokens: *mut BNHighLevelILTokenEmitter,
address: u64,
);
}
unsafe extern "C" {
pub fn BNAddHighLevelILPointerTextToken(
func: *mut BNHighLevelILFunction,
exprIndex: usize,
val: i64,
tokens: *mut BNHighLevelILTokenEmitter,
settings: *mut BNDisassemblySettings,
symbolDisplay: BNSymbolDisplayType,
precedence: BNOperatorPrecedence,
allowShortString: bool,
) -> BNSymbolDisplayResult;
}
unsafe extern "C" {
pub fn BNAddHighLevelILConstantTextToken(
func: *mut BNHighLevelILFunction,
exprIndex: usize,
val: i64,
size: usize,
tokens: *mut BNHighLevelILTokenEmitter,
settings: *mut BNDisassemblySettings,
precedence: BNOperatorPrecedence,
);
}
unsafe extern "C" {
pub fn BNAddNamesForOuterStructureMembers(
data: *mut BNBinaryView,
type_: *mut BNType,
hlil: *mut BNHighLevelILFunction,
varExpr: usize,
nameCount: *mut usize,
) -> *mut *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNZeroExtend(value: i64, sourceSize: usize, destSize: usize) -> i64;
}
unsafe extern "C" {
pub fn BNSignExtend(value: i64, sourceSize: usize, destSize: usize) -> i64;
}
unsafe extern "C" {
pub fn BNMaskToSize(value: i64, size: usize) -> i64;
}
unsafe extern "C" {
pub fn BNGetMaskForSize(size: usize) -> i64;
}
unsafe extern "C" {
#[doc = " FirmwareNinja"]
pub fn BNCreateFirmwareNinja(view: *mut BNBinaryView) -> *mut BNFirmwareNinja;
}
unsafe extern "C" {
pub fn BNFreeFirmwareNinja(fn_: *mut BNFirmwareNinja);
}
unsafe extern "C" {
pub fn BNFirmwareNinjaStoreCustomDevice(
fn_: *mut BNFirmwareNinja,
name: *const ::std::os::raw::c_char,
start: u64,
end: u64,
info: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNFirmwareNinjaRemoveCustomDevice(
fn_: *mut BNFirmwareNinja,
name: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn BNFirmwareNinjaQueryCustomDevices(
fn_: *mut BNFirmwareNinja,
devices: *mut *mut BNFirmwareNinjaDevice,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn BNFirmwareNinjaFreeDevices(
devices: *mut BNFirmwareNinjaDevice,
size: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn BNFirmwareNinjaQueryBoardNamesForArchitecture(
fn_: *mut BNFirmwareNinja,
arch: *mut BNArchitecture,
boards: *mut *mut *mut ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn BNFirmwareNinjaFreeBoardNames(
boards: *mut *mut ::std::os::raw::c_char,
size: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn BNFirmwareNinjaQueryBoardDevices(
fn_: *mut BNFirmwareNinja,
arch: *mut BNArchitecture,
board: *const ::std::os::raw::c_char,
devices: *mut *mut BNFirmwareNinjaDevice,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn BNFirmwareNinjaFindSectionsWithEntropy(
fn_: *mut BNFirmwareNinja,
sections: *mut *mut BNFirmwareNinjaSection,
highCodeEntropyThreshold: f32,
lowCodeEntropyThreshold: f32,
blockSize: usize,
mode: BNFirmwareNinjaSectionAnalysisMode,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn BNFirmwareNinjaFreeSections(
sections: *mut BNFirmwareNinjaSection,
size: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn BNFirmwareNinjaGetFunctionMemoryAccesses(
fn_: *mut BNFirmwareNinja,
fma: *mut *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
progress: BNProgressFunction,
progressContext: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn BNFirmwareNinjaFreeFunctionMemoryAccesses(
fma: *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
size: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn BNFirmwareNinjaStoreFunctionMemoryAccessesToMetadata(
fn_: *mut BNFirmwareNinja,
fma: *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
size: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn BNFirmwareNinjaQueryFunctionMemoryAccessesFromMetadata(
fn_: *mut BNFirmwareNinja,
fma: *mut *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn BNFirmwareNinjaGetBoardDeviceAccesses(
fn_: *mut BNFirmwareNinja,
fma: *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
size: ::std::os::raw::c_int,
accesses: *mut *mut BNFirmwareNinjaDeviceAccesses,
arch: *mut BNArchitecture,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn BNFirmwareNinjaFreeBoardDeviceAccesses(
accesses: *mut BNFirmwareNinjaDeviceAccesses,
size: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn BNFirmwareNinjaGetMemoryRegionReferenceTree(
fn_: *mut BNFirmwareNinja,
start: u64,
end: u64,
fma: *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
size: ::std::os::raw::c_int,
value: *mut u64,
) -> *mut BNFirmwareNinjaReferenceNode;
}
unsafe extern "C" {
pub fn BNFirmwareNinjaGetAddressReferenceTree(
fn_: *mut BNFirmwareNinja,
address: u64,
fma: *mut *mut BNFirmwareNinjaFunctionMemoryAccesses,
size: ::std::os::raw::c_int,
value: *mut u64,
) -> *mut BNFirmwareNinjaReferenceNode;
}
unsafe extern "C" {
pub fn BNFirmwareNinjaQueryRelationships(
fn_: *mut BNFirmwareNinja,
count: *mut usize,
) -> *mut *mut BNFirmwareNinjaRelationship;
}
unsafe extern "C" {
pub fn BNFirmwareNinjaFreeRelationships(
relationships: *mut *mut BNFirmwareNinjaRelationship,
count: usize,
);
}
unsafe extern "C" {
pub fn BNFirmwareNinjaAddRelationship(
fn_: *mut BNFirmwareNinja,
rel: *mut BNFirmwareNinjaRelationship,
);
}
unsafe extern "C" {
pub fn BNFirmwareNinjaGetRelationshipByGuid(
fn_: *mut BNFirmwareNinja,
guid: *const ::std::os::raw::c_char,
) -> *mut BNFirmwareNinjaRelationship;
}
unsafe extern "C" {
pub fn BNFirmwareNinjaRemoveRelationshipByGuid(
fn_: *mut BNFirmwareNinja,
guid: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNFirmwareNinjaReferenceNodeIsFunction(node: *mut BNFirmwareNinjaReferenceNode) -> bool;
}
unsafe extern "C" {
pub fn BNFirmwareNinjaReferenceNodeIsDataVariable(
node: *mut BNFirmwareNinjaReferenceNode,
) -> bool;
}
unsafe extern "C" {
pub fn BNFirmwareNinjaReferenceNodeHasChildren(node: *mut BNFirmwareNinjaReferenceNode)
-> bool;
}
unsafe extern "C" {
pub fn BNFirmwareNinjaReferenceNodeGetFunction(
node: *mut BNFirmwareNinjaReferenceNode,
) -> *mut BNFunction;
}
unsafe extern "C" {
pub fn BNFirmwareNinjaReferenceNodeGetDataVariable(
node: *mut BNFirmwareNinjaReferenceNode,
dataVariable: *mut BNDataVariable,
) -> bool;
}
unsafe extern "C" {
pub fn BNFirmwareNinjaReferenceNodeGetChildren(
parent: *mut BNFirmwareNinjaReferenceNode,
count: *mut usize,
) -> *mut *mut BNFirmwareNinjaReferenceNode;
}
unsafe extern "C" {
pub fn BNFreeFirmwareNinjaReferenceNode(node: *mut BNFirmwareNinjaReferenceNode);
}
unsafe extern "C" {
pub fn BNNewFirmwareNinjaReferenceNodeReference(
node: *mut BNFirmwareNinjaReferenceNode,
) -> *mut BNFirmwareNinjaReferenceNode;
}
unsafe extern "C" {
pub fn BNFreeFirmwareNinjaReferenceNodes(
nodes: *mut *mut BNFirmwareNinjaReferenceNode,
count: usize,
);
}
unsafe extern "C" {
pub fn BNCreateFirmwareNinjaRelationship(
view: *mut BNBinaryView,
) -> *mut BNFirmwareNinjaRelationship;
}
unsafe extern "C" {
pub fn BNFreeFirmwareNinjaRelationship(rel: *mut BNFirmwareNinjaRelationship);
}
unsafe extern "C" {
pub fn BNNewFirmwareNinjaRelationshipReference(
rel: *mut BNFirmwareNinjaRelationship,
) -> *mut BNFirmwareNinjaRelationship;
}
unsafe extern "C" {
pub fn BNFirmwareNinjaRelationshipSetPrimaryAddress(
rel: *mut BNFirmwareNinjaRelationship,
address: u64,
);
}
unsafe extern "C" {
pub fn BNFirmwareNinjaRelationshipSetPrimaryDataVariable(
rel: *mut BNFirmwareNinjaRelationship,
dataVariableAddress: u64,
);
}
unsafe extern "C" {
pub fn BNFirmwareNinjaRelationshipSetPrimaryFunction(
rel: *mut BNFirmwareNinjaRelationship,
function: *mut BNFunction,
);
}
unsafe extern "C" {
pub fn BNFirmwareNinjaRelationshipPrimaryIsDataVariable(
rel: *mut BNFirmwareNinjaRelationship,
) -> bool;
}
unsafe extern "C" {
pub fn BNFirmwareNinjaRelationshipPrimaryIsFunction(
rel: *mut BNFirmwareNinjaRelationship,
) -> bool;
}
unsafe extern "C" {
pub fn BNFirmwareNinjaRelationshipPrimaryIsAddress(
rel: *mut BNFirmwareNinjaRelationship,
) -> bool;
}
unsafe extern "C" {
pub fn BNFirmwareNinjaRelationshipGetPrimaryDataVariable(
rel: *mut BNFirmwareNinjaRelationship,
dataVariable: *mut BNDataVariable,
) -> bool;
}
unsafe extern "C" {
pub fn BNFirmwareNinjaRelationshipGetPrimaryFunction(
rel: *mut BNFirmwareNinjaRelationship,
) -> *mut BNFunction;
}
unsafe extern "C" {
pub fn BNFirmwareNinjaRelationshipGetPrimaryAddress(
rel: *mut BNFirmwareNinjaRelationship,
result: *mut u64,
) -> bool;
}
unsafe extern "C" {
pub fn BNFirmwareNinjaRelationshipSetSecondaryExternalAddress(
rel: *mut BNFirmwareNinjaRelationship,
projectFile: *mut BNProjectFile,
address: u64,
);
}
unsafe extern "C" {
pub fn BNFirmwareNinjaRelationshipSetSecondaryExternalSymbol(
rel: *mut BNFirmwareNinjaRelationship,
projectFile: *mut BNProjectFile,
symbol: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNFirmwareNinjaRelationshipSetSecondaryAddress(
rel: *mut BNFirmwareNinjaRelationship,
address: u64,
);
}
unsafe extern "C" {
pub fn BNFirmwareNinjaRelationshipSetSecondaryDataVariable(
rel: *mut BNFirmwareNinjaRelationship,
dataVariableAddress: u64,
);
}
unsafe extern "C" {
pub fn BNFirmwareNinjaRelationshipSetSecondaryFunction(
rel: *mut BNFirmwareNinjaRelationship,
function: *mut BNFunction,
);
}
unsafe extern "C" {
pub fn BNFirmwareNinjaRelationshipSecondaryIsDataVariable(
rel: *mut BNFirmwareNinjaRelationship,
) -> bool;
}
unsafe extern "C" {
pub fn BNFirmwareNinjaRelationshipSecondaryIsFunction(
rel: *mut BNFirmwareNinjaRelationship,
) -> bool;
}
unsafe extern "C" {
pub fn BNFirmwareNinjaRelationshipSecondaryIsAddress(
rel: *mut BNFirmwareNinjaRelationship,
) -> bool;
}
unsafe extern "C" {
pub fn BNFirmwareNinjaRelationshipSecondaryIsExternalAddress(
rel: *mut BNFirmwareNinjaRelationship,
) -> bool;
}
unsafe extern "C" {
pub fn BNFirmwareNinjaRelationshipSecondaryIsExternalSymbol(
rel: *mut BNFirmwareNinjaRelationship,
) -> bool;
}
unsafe extern "C" {
pub fn BNFirmwareNinjaRelationshipGetSecondaryExternalProjectFile(
rel: *mut BNFirmwareNinjaRelationship,
) -> *mut BNProjectFile;
}
unsafe extern "C" {
pub fn BNFirmwareNinjaRelationshipGetSecondaryAddress(
rel: *mut BNFirmwareNinjaRelationship,
result: *mut u64,
) -> bool;
}
unsafe extern "C" {
pub fn BNFirmwareNinjaRelationshipGetSecondaryDataVariable(
rel: *mut BNFirmwareNinjaRelationship,
dataVariable: *mut BNDataVariable,
) -> bool;
}
unsafe extern "C" {
pub fn BNFirmwareNinjaRelationshipGetSecondaryFunction(
rel: *mut BNFirmwareNinjaRelationship,
) -> *mut BNFunction;
}
unsafe extern "C" {
pub fn BNFirmwareNinjaRelationshipGetSecondaryExternalSymbol(
rel: *mut BNFirmwareNinjaRelationship,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNFirmwareNinjaRelationshipSetDescription(
rel: *mut BNFirmwareNinjaRelationship,
description: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNFirmwareNinjaRelationshipGetDescription(
rel: *mut BNFirmwareNinjaRelationship,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNFirmwareNinjaRelationshipSetProvenance(
rel: *mut BNFirmwareNinjaRelationship,
provenance: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn BNFirmwareNinjaRelationshipGetProvenance(
rel: *mut BNFirmwareNinjaRelationship,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNFirmwareNinjaRelationshipGetGuid(
rel: *mut BNFirmwareNinjaRelationship,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
#[doc = " Line formatters"]
pub fn BNRegisterLineFormatter(
name: *const ::std::os::raw::c_char,
callbacks: *mut BNCustomLineFormatter,
) -> *mut BNLineFormatter;
}
unsafe extern "C" {
pub fn BNGetLineFormatterList(count: *mut usize) -> *mut *mut BNLineFormatter;
}
unsafe extern "C" {
pub fn BNFreeLineFormatterList(formatters: *mut *mut BNLineFormatter);
}
unsafe extern "C" {
pub fn BNGetLineFormatterByName(name: *const ::std::os::raw::c_char) -> *mut BNLineFormatter;
}
unsafe extern "C" {
pub fn BNGetDefaultLineFormatter() -> *mut BNLineFormatter;
}
unsafe extern "C" {
pub fn BNGetLineFormatterName(formatter: *mut BNLineFormatter) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNFormatLines(
formatter: *mut BNLineFormatter,
inLines: *mut BNDisassemblyTextLine,
inCount: usize,
settings: *const BNLineFormatterSettings,
outCount: *mut usize,
) -> *mut BNDisassemblyTextLine;
}
unsafe extern "C" {
pub fn BNGetDefaultLineFormatterSettings(
settings: *mut BNDisassemblySettings,
func: *mut BNHighLevelILFunction,
) -> *mut BNLineFormatterSettings;
}
unsafe extern "C" {
pub fn BNGetLanguageRepresentationLineFormatterSettings(
settings: *mut BNDisassemblySettings,
func: *mut BNLanguageRepresentationFunction,
) -> *mut BNLineFormatterSettings;
}
unsafe extern "C" {
pub fn BNFreeLineFormatterSettings(settings: *mut BNLineFormatterSettings);
}
unsafe extern "C" {
#[doc = " Render Layers"]
pub fn BNRegisterRenderLayer(
name: *const ::std::os::raw::c_char,
callbacks: *mut BNRenderLayerCallbacks,
enableState: BNRenderLayerDefaultEnableState,
) -> *mut BNRenderLayer;
}
unsafe extern "C" {
pub fn BNGetRenderLayerList(count: *mut usize) -> *mut *mut BNRenderLayer;
}
unsafe extern "C" {
pub fn BNFreeRenderLayerList(renderLayers: *mut *mut BNRenderLayer);
}
unsafe extern "C" {
pub fn BNGetRenderLayerByName(name: *const ::std::os::raw::c_char) -> *mut BNRenderLayer;
}
unsafe extern "C" {
pub fn BNGetRenderLayerName(renderLayer: *mut BNRenderLayer) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetRenderLayerDefaultEnableState(
renderLayer: *mut BNRenderLayer,
) -> BNRenderLayerDefaultEnableState;
}
unsafe extern "C" {
pub fn BNApplyRenderLayerToFlowGraph(renderLayer: *mut BNRenderLayer, graph: *mut BNFlowGraph);
}
unsafe extern "C" {
pub fn BNApplyRenderLayerToLinearViewObject(
renderLayer: *mut BNRenderLayer,
obj: *mut BNLinearViewObject,
prev: *mut BNLinearViewObject,
next: *mut BNLinearViewObject,
inLines: *mut BNLinearDisassemblyLine,
inLineCount: usize,
outLines: *mut *mut BNLinearDisassemblyLine,
outLineCount: *mut usize,
);
}
unsafe extern "C" {
pub fn BNFreeStringRef(ref_: *mut BNStringRef);
}
unsafe extern "C" {
pub fn BNDuplicateStringRef(ref_: *mut BNStringRef) -> *mut BNStringRef;
}
unsafe extern "C" {
pub fn BNGetStringRefContents(ref_: *mut BNStringRef) -> *const ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetStringRefSize(ref_: *mut BNStringRef) -> usize;
}
unsafe extern "C" {
pub fn BNCreateStringRef(str_: *const ::std::os::raw::c_char) -> *mut BNStringRef;
}
unsafe extern "C" {
pub fn BNCreateStringRefOfLength(
str_: *const ::std::os::raw::c_char,
len: usize,
) -> *mut BNStringRef;
}
unsafe extern "C" {
#[doc = " Constant Renderers"]
pub fn BNRegisterConstantRenderer(
name: *const ::std::os::raw::c_char,
renderer: *mut BNCustomConstantRenderer,
) -> *mut BNConstantRenderer;
}
unsafe extern "C" {
pub fn BNGetConstantRendererByName(
name: *const ::std::os::raw::c_char,
) -> *mut BNConstantRenderer;
}
unsafe extern "C" {
pub fn BNGetConstantRendererList(count: *mut usize) -> *mut *mut BNConstantRenderer;
}
unsafe extern "C" {
pub fn BNFreeConstantRendererList(renderers: *mut *mut BNConstantRenderer);
}
unsafe extern "C" {
pub fn BNGetConstantRendererName(
renderer: *mut BNConstantRenderer,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNIsConstantRendererValidForType(
renderer: *mut BNConstantRenderer,
il: *mut BNHighLevelILFunction,
type_: *mut BNType,
) -> bool;
}
unsafe extern "C" {
pub fn BNConstantRendererRenderConstant(
renderer: *mut BNConstantRenderer,
il: *mut BNHighLevelILFunction,
exprIndex: usize,
type_: *mut BNType,
val: i64,
tokens: *mut BNHighLevelILTokenEmitter,
settings: *mut BNDisassemblySettings,
precedence: BNOperatorPrecedence,
) -> bool;
}
unsafe extern "C" {
pub fn BNConstantRendererRenderConstantPointer(
renderer: *mut BNConstantRenderer,
il: *mut BNHighLevelILFunction,
exprIndex: usize,
type_: *mut BNType,
val: i64,
tokens: *mut BNHighLevelILTokenEmitter,
settings: *mut BNDisassemblySettings,
symbolDisplay: BNSymbolDisplayType,
precedence: BNOperatorPrecedence,
) -> bool;
}
unsafe extern "C" {
#[doc = " String recognizers"]
pub fn BNRegisterCustomStringType(info: *mut BNCustomStringTypeInfo)
-> *mut BNCustomStringType;
}
unsafe extern "C" {
pub fn BNGetCustomStringTypeByName(
name: *const ::std::os::raw::c_char,
) -> *mut BNCustomStringType;
}
unsafe extern "C" {
pub fn BNGetCustomStringTypeByID(id: u32) -> *mut BNCustomStringType;
}
unsafe extern "C" {
pub fn BNGetCustomStringTypeList(count: *mut usize) -> *mut *mut BNCustomStringType;
}
unsafe extern "C" {
pub fn BNFreeCustomStringTypeList(types: *mut *mut BNCustomStringType);
}
unsafe extern "C" {
pub fn BNGetCustomStringTypeName(type_: *mut BNCustomStringType)
-> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetCustomStringTypePrefix(
type_: *mut BNCustomStringType,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNGetCustomStringTypePostfix(
type_: *mut BNCustomStringType,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNRegisterStringRecognizer(
name: *const ::std::os::raw::c_char,
recognizer: *mut BNCustomStringRecognizer,
) -> *mut BNStringRecognizer;
}
unsafe extern "C" {
pub fn BNGetStringRecognizerByName(
name: *const ::std::os::raw::c_char,
) -> *mut BNStringRecognizer;
}
unsafe extern "C" {
pub fn BNGetStringRecognizerList(count: *mut usize) -> *mut *mut BNStringRecognizer;
}
unsafe extern "C" {
pub fn BNFreeStringRecognizerList(recognizers: *mut *mut BNStringRecognizer);
}
unsafe extern "C" {
pub fn BNGetStringRecognizerName(
recognizer: *mut BNStringRecognizer,
) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn BNIsStringRecognizerValidForType(
recognizer: *mut BNStringRecognizer,
il: *mut BNHighLevelILFunction,
type_: *mut BNType,
) -> bool;
}
unsafe extern "C" {
pub fn BNStringRecognizerRecognizeConstant(
recognizer: *mut BNStringRecognizer,
il: *mut BNHighLevelILFunction,
exprIndex: usize,
type_: *mut BNType,
val: i64,
out: *mut BNDerivedString,
) -> bool;
}
unsafe extern "C" {
pub fn BNStringRecognizerRecognizeConstantPointer(
recognizer: *mut BNStringRecognizer,
il: *mut BNHighLevelILFunction,
exprIndex: usize,
type_: *mut BNType,
val: i64,
out: *mut BNDerivedString,
) -> bool;
}
unsafe extern "C" {
pub fn BNStringRecognizerRecognizeExternPointer(
recognizer: *mut BNStringRecognizer,
il: *mut BNHighLevelILFunction,
exprIndex: usize,
type_: *mut BNType,
val: i64,
offset: u64,
out: *mut BNDerivedString,
) -> bool;
}
unsafe extern "C" {
pub fn BNStringRecognizerRecognizeImport(
recognizer: *mut BNStringRecognizer,
il: *mut BNHighLevelILFunction,
exprIndex: usize,
type_: *mut BNType,
val: i64,
out: *mut BNDerivedString,
) -> bool;
}
unsafe extern "C" {
#[doc = " PossibleValueSet operations"]
pub fn BNFreePossibleValueSet(object: *mut BNPossibleValueSet);
}
unsafe extern "C" {
pub fn BNPossibleValueSetUnion(
object: *const BNPossibleValueSet,
other: *const BNPossibleValueSet,
size: usize,
) -> BNPossibleValueSet;
}
unsafe extern "C" {
pub fn BNPossibleValueSetIntersection(
object: *const BNPossibleValueSet,
other: *const BNPossibleValueSet,
size: usize,
) -> BNPossibleValueSet;
}
unsafe extern "C" {
pub fn BNPossibleValueSetAdd(
object: *const BNPossibleValueSet,
other: *const BNPossibleValueSet,
size: usize,
) -> BNPossibleValueSet;
}
unsafe extern "C" {
pub fn BNPossibleValueSetSubtract(
object: *const BNPossibleValueSet,
other: *const BNPossibleValueSet,
size: usize,
) -> BNPossibleValueSet;
}
unsafe extern "C" {
pub fn BNPossibleValueSetMultiply(
object: *const BNPossibleValueSet,
other: *const BNPossibleValueSet,
size: usize,
) -> BNPossibleValueSet;
}
unsafe extern "C" {
pub fn BNPossibleValueSetSignedDivide(
object: *const BNPossibleValueSet,
other: *const BNPossibleValueSet,
size: usize,
) -> BNPossibleValueSet;
}
unsafe extern "C" {
pub fn BNPossibleValueSetUnsignedDivide(
object: *const BNPossibleValueSet,
other: *const BNPossibleValueSet,
size: usize,
) -> BNPossibleValueSet;
}
unsafe extern "C" {
pub fn BNPossibleValueSetSignedMod(
object: *const BNPossibleValueSet,
other: *const BNPossibleValueSet,
size: usize,
) -> BNPossibleValueSet;
}
unsafe extern "C" {
pub fn BNPossibleValueSetUnsignedMod(
object: *const BNPossibleValueSet,
other: *const BNPossibleValueSet,
size: usize,
) -> BNPossibleValueSet;
}
unsafe extern "C" {
pub fn BNPossibleValueSetAnd(
object: *const BNPossibleValueSet,
other: *const BNPossibleValueSet,
size: usize,
) -> BNPossibleValueSet;
}
unsafe extern "C" {
pub fn BNPossibleValueSetOr(
object: *const BNPossibleValueSet,
other: *const BNPossibleValueSet,
size: usize,
) -> BNPossibleValueSet;
}
unsafe extern "C" {
pub fn BNPossibleValueSetXor(
object: *const BNPossibleValueSet,
other: *const BNPossibleValueSet,
size: usize,
) -> BNPossibleValueSet;
}
unsafe extern "C" {
pub fn BNPossibleValueSetShiftLeft(
object: *const BNPossibleValueSet,
other: *const BNPossibleValueSet,
size: usize,
) -> BNPossibleValueSet;
}
unsafe extern "C" {
pub fn BNPossibleValueSetLogicalShiftRight(
object: *const BNPossibleValueSet,
other: *const BNPossibleValueSet,
size: usize,
) -> BNPossibleValueSet;
}
unsafe extern "C" {
pub fn BNPossibleValueSetArithShiftRight(
object: *const BNPossibleValueSet,
other: *const BNPossibleValueSet,
size: usize,
) -> BNPossibleValueSet;
}
unsafe extern "C" {
pub fn BNPossibleValueSetRotateLeft(
object: *const BNPossibleValueSet,
other: *const BNPossibleValueSet,
size: usize,
) -> BNPossibleValueSet;
}
unsafe extern "C" {
pub fn BNPossibleValueSetRotateRight(
object: *const BNPossibleValueSet,
other: *const BNPossibleValueSet,
size: usize,
) -> BNPossibleValueSet;
}
unsafe extern "C" {
pub fn BNPossibleValueSetNegate(
object: *const BNPossibleValueSet,
size: usize,
) -> BNPossibleValueSet;
}
unsafe extern "C" {
pub fn BNPossibleValueSetNot(
object: *const BNPossibleValueSet,
size: usize,
) -> BNPossibleValueSet;
}