system_configuration_sys/
network_reachability.rs

1/* automatically generated by rust-bindgen 0.66.1 */
2
3// Generated using:
4// bindgen 0.66.1
5// macOS SDK 13.3.
6
7#![cfg_attr(feature = "cargo-clippy", allow(clippy::unreadable_literal))]
8use crate::dispatch_queue_t;
9use core_foundation_sys::base::{Boolean, CFAllocatorRef, CFIndex, CFTypeID};
10use core_foundation_sys::runloop::CFRunLoopRef;
11use core_foundation_sys::string::CFStringRef;
12use libc::sockaddr;
13pub type __SCNetworkReachability = ::core::ffi::c_void;
14
15pub type SCNetworkReachabilityRef = *const __SCNetworkReachability;
16#[repr(C)]
17pub struct SCNetworkReachabilityContext {
18    pub version: CFIndex,
19    pub info: *mut ::core::ffi::c_void,
20    pub retain: Option<
21        unsafe extern "C" fn(info: *const ::core::ffi::c_void) -> *const ::core::ffi::c_void,
22    >,
23    pub release: Option<unsafe extern "C" fn(info: *const ::core::ffi::c_void)>,
24    pub copyDescription:
25        Option<unsafe extern "C" fn(info: *const ::core::ffi::c_void) -> CFStringRef>,
26}
27pub type SCNetworkReachabilityFlags = u32;
28pub const kSCNetworkReachabilityFlagsTransientConnection: _bindgen_ty_65 = 1;
29pub const kSCNetworkReachabilityFlagsReachable: _bindgen_ty_65 = 2;
30pub const kSCNetworkReachabilityFlagsConnectionRequired: _bindgen_ty_65 = 4;
31pub const kSCNetworkReachabilityFlagsConnectionOnTraffic: _bindgen_ty_65 = 8;
32pub const kSCNetworkReachabilityFlagsInterventionRequired: _bindgen_ty_65 = 16;
33pub const kSCNetworkReachabilityFlagsConnectionOnDemand: _bindgen_ty_65 = 32;
34pub const kSCNetworkReachabilityFlagsIsLocalAddress: _bindgen_ty_65 = 65536;
35pub const kSCNetworkReachabilityFlagsIsDirect: _bindgen_ty_65 = 131072;
36pub const kSCNetworkReachabilityFlagsIsWWAN: _bindgen_ty_65 = 262144;
37pub const kSCNetworkReachabilityFlagsConnectionAutomatic: _bindgen_ty_65 = 8;
38pub type _bindgen_ty_65 = ::core::ffi::c_uint;
39pub type SCNetworkReachabilityCallBack = Option<
40    unsafe extern "C" fn(
41        target: SCNetworkReachabilityRef,
42        flags: SCNetworkReachabilityFlags,
43        info: *mut ::core::ffi::c_void,
44    ),
45>;
46extern "C" {
47    pub fn SCNetworkReachabilityCreateWithAddress(
48        allocator: CFAllocatorRef,
49        address: *const sockaddr,
50    ) -> SCNetworkReachabilityRef;
51
52    pub fn SCNetworkReachabilityCreateWithAddressPair(
53        allocator: CFAllocatorRef,
54        localAddress: *const sockaddr,
55        remoteAddress: *const sockaddr,
56    ) -> SCNetworkReachabilityRef;
57
58    pub fn SCNetworkReachabilityCreateWithName(
59        allocator: CFAllocatorRef,
60        nodename: *const ::core::ffi::c_char,
61    ) -> SCNetworkReachabilityRef;
62
63    pub fn SCNetworkReachabilityGetTypeID() -> CFTypeID;
64
65    pub fn SCNetworkReachabilityGetFlags(
66        target: SCNetworkReachabilityRef,
67        flags: *mut SCNetworkReachabilityFlags,
68    ) -> Boolean;
69
70    pub fn SCNetworkReachabilitySetCallback(
71        target: SCNetworkReachabilityRef,
72        callout: SCNetworkReachabilityCallBack,
73        context: *mut SCNetworkReachabilityContext,
74    ) -> Boolean;
75
76    pub fn SCNetworkReachabilityScheduleWithRunLoop(
77        target: SCNetworkReachabilityRef,
78        runLoop: CFRunLoopRef,
79        runLoopMode: CFStringRef,
80    ) -> Boolean;
81
82    pub fn SCNetworkReachabilityUnscheduleFromRunLoop(
83        target: SCNetworkReachabilityRef,
84        runLoop: CFRunLoopRef,
85        runLoopMode: CFStringRef,
86    ) -> Boolean;
87
88    pub fn SCNetworkReachabilitySetDispatchQueue(
89        target: SCNetworkReachabilityRef,
90        queue: dispatch_queue_t,
91    ) -> Boolean;
92}