use crate::address::Address;
use crate::error::{self, Status};
pub fn is_enabled() -> bool {
unsafe { idax_sys::idax_analysis_is_enabled() != 0 }
}
pub fn set_enabled(enabled: bool) -> Status {
let ret = unsafe { idax_sys::idax_analysis_set_enabled(enabled as i32) };
error::int_to_status(ret, "analysis::set_enabled failed")
}
pub fn is_idle() -> bool {
unsafe { idax_sys::idax_analysis_is_idle() != 0 }
}
pub fn wait() -> Status {
let ret = unsafe { idax_sys::idax_analysis_wait() };
error::int_to_status(ret, "analysis::wait failed")
}
pub fn wait_range(start: Address, end: Address) -> Status {
let ret = unsafe { idax_sys::idax_analysis_wait_range(start, end) };
error::int_to_status(ret, "analysis::wait_range failed")
}
pub fn schedule(address: Address) -> Status {
let ret = unsafe { idax_sys::idax_analysis_schedule(address) };
error::int_to_status(ret, "analysis::schedule failed")
}
pub fn schedule_range(start: Address, end: Address) -> Status {
let ret = unsafe { idax_sys::idax_analysis_schedule_range(start, end) };
error::int_to_status(ret, "analysis::schedule_range failed")
}
pub fn schedule_code(address: Address) -> Status {
let ret = unsafe { idax_sys::idax_analysis_schedule_code(address) };
error::int_to_status(ret, "analysis::schedule_code failed")
}
pub fn schedule_function(address: Address) -> Status {
let ret = unsafe { idax_sys::idax_analysis_schedule_function(address) };
error::int_to_status(ret, "analysis::schedule_function failed")
}
pub fn schedule_reanalysis(address: Address) -> Status {
let ret = unsafe { idax_sys::idax_analysis_schedule_reanalysis(address) };
error::int_to_status(ret, "analysis::schedule_reanalysis failed")
}
pub fn schedule_reanalysis_range(start: Address, end: Address) -> Status {
let ret = unsafe { idax_sys::idax_analysis_schedule_reanalysis_range(start, end) };
error::int_to_status(ret, "analysis::schedule_reanalysis_range failed")
}
pub fn cancel(start: Address, end: Address) -> Status {
let ret = unsafe { idax_sys::idax_analysis_cancel(start, end) };
error::int_to_status(ret, "analysis::cancel failed")
}
pub fn revert_decisions(start: Address, end: Address) -> Status {
let ret = unsafe { idax_sys::idax_analysis_revert_decisions(start, end) };
error::int_to_status(ret, "analysis::revert_decisions failed")
}