ip_discovery/
ip_discovery.rs1use libdrm_amdgpu_sys::LibDrmAmdgpu;
2use libdrm_amdgpu_sys::AMDGPU::{self, IpDieEntry};
3use std::fs::File;
4
5fn main() {
6 let libdrm_amdgpu = LibDrmAmdgpu::new().unwrap();
7 let device_path = std::env::var("AMDGPU_PATH").unwrap_or("/dev/dri/renderD128".to_string());
8 let (amdgpu_dev, _, _) = {
9 use std::os::fd::IntoRawFd;
10
11 let f = File::open(device_path).unwrap();
12
13 libdrm_amdgpu.init_device_handle(f.into_raw_fd()).unwrap()
14 };
15
16 let path = amdgpu_dev.get_sysfs_path().unwrap();
17
18 let ip_die_entries = IpDieEntry::get_all_entries_from_sysfs(&path);
19
20 for entry in &ip_die_entries {
21 println!("\ndie_id: {:>2}", entry.die_id);
22
23 for ip_hw_id in &entry.ip_hw_ids {
24 println!("{ip_hw_id:#?}");
25 }
26 }
27}