use libc::{c_char, size_t, timeval};
use super::scamper_addr::ScamperAddrT;
use super::scamper_list::{ScamperListT, ScamperCycleT};
#[repr(C)]
pub struct ScamperSniffT {
_opaque: [u8; 0],
}
#[repr(C)]
pub struct ScamperSniffPktT {
_opaque: [u8; 0],
}
pub const SCAMPER_SNIFF_STOP_NONE: u8 = 0;
pub const SCAMPER_SNIFF_STOP_ERROR: u8 = 1;
pub const SCAMPER_SNIFF_STOP_LIMIT_TIME: u8 = 2;
pub const SCAMPER_SNIFF_STOP_LIMIT_PKTC: u8 = 3;
pub const SCAMPER_SNIFF_STOP_HALTED: u8 = 4;
unsafe extern "C" {
pub fn scamper_sniff_free(sniff: *mut ScamperSniffT);
pub fn scamper_sniff_list_get(sniff: *const ScamperSniffT) -> *mut ScamperListT;
pub fn scamper_sniff_cycle_get(sniff: *const ScamperSniffT) -> *mut ScamperCycleT;
pub fn scamper_sniff_userid_get(sniff: *const ScamperSniffT) -> u32;
pub fn scamper_sniff_start_get(sniff: *const ScamperSniffT) -> *const timeval;
pub fn scamper_sniff_finish_get(sniff: *const ScamperSniffT) -> *const timeval;
pub fn scamper_sniff_stop_reason_get(sniff: *const ScamperSniffT) -> u8;
pub fn scamper_sniff_stop_tostr(
sniff: *const ScamperSniffT,
buf: *mut c_char,
len: size_t,
) -> *mut c_char;
pub fn scamper_sniff_limit_pktc_get(sniff: *const ScamperSniffT) -> u32;
pub fn scamper_sniff_limit_time_get(sniff: *const ScamperSniffT) -> *const timeval;
pub fn scamper_sniff_src_get(sniff: *const ScamperSniffT) -> *mut ScamperAddrT;
pub fn scamper_sniff_icmpid_get(sniff: *const ScamperSniffT) -> u16;
pub fn scamper_sniff_errmsg_get(sniff: *const ScamperSniffT) -> *const c_char;
pub fn scamper_sniff_pkt_get(sniff: *const ScamperSniffT, i: u32) -> *mut ScamperSniffPktT;
pub fn scamper_sniff_pktc_get(sniff: *const ScamperSniffT) -> u32;
pub fn scamper_sniff_pkt_use(pkt: *mut ScamperSniffPktT) -> *mut ScamperSniffPktT;
pub fn scamper_sniff_pkt_free(pkt: *mut ScamperSniffPktT);
pub fn scamper_sniff_pkt_tv_get(pkt: *const ScamperSniffPktT) -> *const timeval;
pub fn scamper_sniff_pkt_data_get(pkt: *const ScamperSniffPktT) -> *const u8;
pub fn scamper_sniff_pkt_len_get(pkt: *const ScamperSniffPktT) -> u16;
}