objc2_io_kit/
lib.rs

1//! # Bindings to the `IOKit` framework
2//!
3//! See [Apple's docs][apple-doc] and [the general docs on framework crates][framework-crates] for more information.
4//!
5//! [apple-doc]: https://developer.apple.com/documentation/iokit/
6//! [framework-crates]: https://docs.rs/objc2/latest/objc2/topics/about_generated/index.html
7#![no_std]
8#![cfg_attr(docsrs, feature(doc_auto_cfg))]
9// Update in Cargo.toml as well.
10#![doc(html_root_url = "https://docs.rs/objc2-io-kit/0.3.1")]
11
12#[cfg(feature = "alloc")]
13extern crate alloc;
14
15#[cfg(feature = "std")]
16extern crate std;
17
18#[cfg(feature = "libc")]
19mod consumes_argument;
20mod generated;
21mod macros;
22
23#[cfg(feature = "libc")]
24#[allow(unused_imports, unreachable_pub)]
25pub use self::consumes_argument::*;
26#[allow(unused_imports, unreachable_pub)]
27pub use self::generated::*;
28#[allow(unused_imports, unreachable_pub)]
29pub use self::macros::*;
30
31// IOKit/IOReturn.h
32/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioreturn?language=objc)
33pub type IOReturn = core::ffi::c_int; // kern_return_t
34
35/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioreturnsuccess?language=objc)
36#[allow(non_upper_case_globals)]
37pub const kIOReturnSuccess: IOReturn = 0;
38
39// MacTypes.h
40#[allow(dead_code)]
41pub(crate) type Boolean = u8;
42#[allow(dead_code)]
43pub(crate) type AbsoluteTime = i32;
44#[allow(dead_code)]
45pub(crate) type NumVersion = u32; // Actually a struct with 4 u8s
46#[allow(dead_code)]
47pub(crate) type FourCharCode = u32;
48
49// device/device_types.h
50#[allow(dead_code, non_camel_case_types)]
51pub(crate) type io_name_t = *mut [core::ffi::c_char; 128];
52#[allow(dead_code, non_camel_case_types)]
53pub(crate) type io_string_t = *mut [core::ffi::c_char; 512];
54#[allow(dead_code, non_camel_case_types)]
55pub(crate) type io_struct_inband_t = *mut [core::ffi::c_char; 4096];
56
57// uuid/uuid_t.h
58#[allow(dead_code, non_camel_case_types)]
59pub(crate) type uuid_t = [u8; 16]; // Usage sites are all in structs
60
61// mach/mach_types.h
62#[allow(dead_code, non_camel_case_types)]
63#[cfg(feature = "libc")]
64pub(crate) type task_port_t = libc::task_t;