Skip to content

Commit 964c327

Browse files
committed
nvme: Convert SanitizeStateInformation to deku bits
Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
1 parent 15fcafc commit 964c327

2 files changed

Lines changed: 14 additions & 12 deletions

File tree

src/nvme.rs

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -342,9 +342,14 @@ pub struct SanitizeStatus {
342342
}
343343

344344
// Base v2.1, 5.12.1.33, Fgure 291, SSI, SANS
345-
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
345+
#[derive(Clone, Copy, Debug, Default, DekuRead, DekuWrite, Eq, PartialEq)]
346+
#[deku(
347+
bits = "bits.0",
348+
ctx = "endian: Endian, bits: BitSize",
349+
endian = "endian",
350+
id_type = "u8"
351+
)]
346352
#[repr(u8)]
347-
#[expect(dead_code)]
348353
enum SanitizeState {
349354
#[default]
350355
Idle = 0x00,
@@ -358,16 +363,13 @@ enum SanitizeState {
358363
unsafe impl crate::Discriminant<u8> for SanitizeState {}
359364

360365
// Base v2.1, 5.1.12.1.33, Figure 291, SSI
361-
#[derive(Clone, Copy, Debug, Default)]
366+
#[derive(Clone, Copy, Debug, Default, DekuRead, DekuWrite)]
367+
#[deku(ctx = "endian: Endian", endian = "endian")]
362368
pub struct SanitizeStateInformation {
363-
sans: SanitizeState,
369+
#[deku(bits = "4")]
364370
fails: u8,
365-
}
366-
367-
impl From<SanitizeStateInformation> for u8 {
368-
fn from(value: SanitizeStateInformation) -> Self {
369-
(value.fails << 4) | (value.sans.id())
370-
}
371+
#[deku(bits = "4")]
372+
sans: SanitizeState,
371373
}
372374

373375
// Base v2.1, 5.1.12.1.33, Figure 291
@@ -384,7 +386,7 @@ struct SanitizeStatusLogPageResponse {
384386
etbenmm: u32,
385387
etcenmm: u32,
386388
etpvds: u32,
387-
ssi: u8,
389+
ssi: SanitizeStateInformation,
388390
}
389391
impl Encode<512> for SanitizeStatusLogPageResponse {}
390392

src/nvme/mi/dev.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1291,7 +1291,7 @@ impl RequestHandler for AdminGetLogPageRequest {
12911291
etbenmm: u32::MAX,
12921292
etcenmm: u32::MAX,
12931293
etpvds: u32::MAX,
1294-
ssi: subsys.ssi.into(),
1294+
ssi: subsys.ssi,
12951295
}
12961296
.encode()?;
12971297

0 commit comments

Comments
 (0)