///|
extern "c" fn npcap_probe_implemented_ffi() -> Int = "lockwire_native_npcap_probe_implemented"
///|
extern "c" fn npcap_runtime_available_ffi() -> Int = "lockwire_native_npcap_runtime_available"
///|
extern "c" fn npcap_list_interfaces_text_ffi() -> Bytes = "lockwire_native_npcap_list_interfaces_text"
///|
extern "c" fn npcap_live_adapter_implemented_ffi() -> Int = "lockwire_native_npcap_live_adapter_implemented"
///|
#borrow(name)
extern "c" fn npcap_open_live_ffi(
name : Bytes,
snaplen : Int,
promiscuous : Int,
timeout_ms : Int,
) -> Int = "lockwire_native_npcap_open_live"
///|
#borrow(frame)
extern "c" fn npcap_send_packet_ffi(fd : Int, frame : Bytes) -> Int = "lockwire_native_npcap_send_packet"
///|
#borrow(expression)
extern "c" fn npcap_set_filter_ffi(
fd : Int,
expression : Bytes,
optimize : Int,
netmask : Int,
) -> Int = "lockwire_native_npcap_set_filter"
///|
extern "c" fn npcap_capture_one_ffi(fd : Int, timeout_ms : Int) -> Bytes = "lockwire_native_npcap_capture_one"
///|
extern "c" fn npcap_close_live_ffi(fd : Int) -> Int = "lockwire_native_npcap_close_live"
///|
fn ffi_npcap_probe_implemented() -> Int {
npcap_probe_implemented_ffi()
}
///|
fn ffi_npcap_runtime_available() -> Int {
npcap_runtime_available_ffi()
}
///|
fn ffi_npcap_list_interfaces_text() -> Bytes {
npcap_list_interfaces_text_ffi()
}
///|
fn ffi_npcap_live_adapter_implemented() -> Int {
npcap_live_adapter_implemented_ffi()
}
///|
fn ffi_npcap_open_live(
name : Bytes,
snaplen : Int,
promiscuous : Int,
timeout_ms : Int,
) -> Int {
npcap_open_live_ffi(name, snaplen, promiscuous, timeout_ms)
}
///|
fn ffi_npcap_send_packet(fd : Int, frame : Bytes) -> Int {
npcap_send_packet_ffi(fd, frame)
}
///|
fn ffi_npcap_set_filter(
fd : Int,
expression : Bytes,
optimize : Int,
netmask : Int,
) -> Int {
npcap_set_filter_ffi(fd, expression, optimize, netmask)
}
///|
fn ffi_npcap_capture_one(fd : Int, timeout_ms : Int) -> Bytes {
npcap_capture_one_ffi(fd, timeout_ms)
}
///|
fn ffi_npcap_close_live(fd : Int) -> Int {
npcap_close_live_ffi(fd)
}
///|
#borrow(name)
extern "c" fn npcap_local_mac_ffi(name : Bytes) -> Bytes = "lockwire_native_npcap_local_mac"
///|
extern "c" fn npcap_last_capture_micros_ffi() -> Int64 = "lockwire_native_npcap_last_capture_micros"
///|
extern "c" fn npcap_set_nonblock_ffi(fd : Int, enable : Int) -> Int = "lockwire_native_npcap_set_nonblock"
///|
fn ffi_npcap_local_mac(name : Bytes) -> Bytes {
npcap_local_mac_ffi(name)
}
///|
fn ffi_npcap_last_capture_micros() -> Int64 {
npcap_last_capture_micros_ffi()
}
///|
fn ffi_npcap_set_nonblock(fd : Int, enable : Int) -> Int {
npcap_set_nonblock_ffi(fd, enable)
}