Skip to content

Commit a7d7294

Browse files
authored
Merge pull request #7 from Gelbpunkt/pci-endianess
fix(pci): capabilities are always little-endian
2 parents 3e5b576 + ddee0b6 commit a7d7294

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

src/pci.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ pub struct Cap {
119119
impl Cap {
120120
pub fn read(addr: PciCapabilityAddress, access: impl ConfigRegionAccess) -> Option<Self> {
121121
let data = unsafe { access.read(addr.address, addr.offset) };
122-
let [cap_vndr, _cap_next, cap_len, _cfg_type] = data.to_ne_bytes();
122+
let [cap_vndr, _cap_next, cap_len, _cfg_type] = data.to_le_bytes();
123123

124124
if cap_vndr != 0x09 {
125125
return None;
@@ -136,6 +136,8 @@ impl Cap {
136136
unsafe { access.read(addr.address, addr.offset + 12) },
137137
];
138138

139+
let data: [u32; 4] = data.map(u32::from_le);
140+
139141
let this = unsafe { mem::transmute::<[u32; 4], Self>(data) };
140142

141143
Some(this)

0 commit comments

Comments
 (0)