@@ -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) ]
348353enum SanitizeState {
349354 #[ default]
350355 Idle = 0x00 ,
@@ -358,16 +363,13 @@ enum SanitizeState {
358363unsafe 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" ) ]
362368pub 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}
389391impl Encode < 512 > for SanitizeStatusLogPageResponse { }
390392
0 commit comments