#macos #system-info #sys

mac_expert_device

Get MacOS hardware information through ioreg

1 unstable release

0.1.8 May 9, 2022
0.1.7 May 9, 2022

#891 in Hardware support

MIT/Apache

22KB
366 lines

GET Mac Hardware overview

  • IOPlatformUUID

Usage

To use this library, add the following to your Cargo.toml:


[dependencies]
mac_expert_device = "0.1"

Check out our documentation for more details on how to use this library.

Simple

fn main() {
   let platform_expert_device =  mac_expert_device::os::IOPlatformExpertDevice::new().unwrap();
   //
   println!("name:{}",platform_expert_device.name());
   println!("version:{}",platform_expert_device.version());
   println!("SerialNumber:{}",platform_expert_device.serial_number());
   println!("Manufacturer:{}",platform_expert_device.manufacturer());
   println!("IOBusyInterest:{}",platform_expert_device.io_busy_interest());
   println!("IOInterruptControllers:{}",platform_expert_device.io_interrupt_controllers());
   // println!("IOPlatformSystemSleepPolicy:{}",platform_expert_device.io_platform_system_sleep_policy());
   println!("IOPolledInterface:{}",platform_expert_device.io_polled_interface());
   println!("IOPlatformUuid:{}",platform_expert_device.io_platform_uuid());
}


IOPlatformExpertDevice

     +-o Root  <class IORegistryEntry, id xxxxxx, retain 17>
     +-o xxxxxx  <class IOPlatformExpertDevice, id xxxxxx, registered, matched, active, busy 0 (13368 ms), retain 44>
         {
           "IOInterruptSpecifiers" = (<xxxxx>)
           "IOPolledInterface" = "SMCPolledInterface is not serializable"
           "IOPlatformUUID" = "xxxxxx"
           "serial-number" = <xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
           "platform-feature" = <xxxxxx>
           "IOPlatformSystemSleepPolicy" = <xxxxxx>
           "IOBusyInterest" = "IOCommand is not serializable"
           "target-type" = <"Mac">
           "IOInterruptControllers" = ("xxxxxx")
           "name" = <"/">
           "version" = <"xxxxxx">
           "manufacturer" = <"Apple Inc.">
           "compatible" = <"xxxxxx">
           "product-name" = <"xxxxxx">
           "IOPlatformSerialNumber" = "xxxxxx"
           "IOConsoleSecurityInterest" = "IOCommand is not serializable"
           "clock-frequency" = <xxxxx>
           "model" = <"xx">
           "board-id" = <"xxxxxx">
           "system-type" = <02>
         }

No runtime deps