@@ -309,7 +309,13 @@ flags! {
309309}
310310
311311// Base v2.1, 5.1.12.1.33, Figure 291, SSTAT, SOS
312- #[ derive( Clone , Copy , Debug , Default , Eq , PartialEq ) ]
312+ #[ derive( Clone , Copy , Debug , Default , DekuRead , DekuWrite , Eq , PartialEq ) ]
313+ #[ deku(
314+ bits = "bits.0" ,
315+ ctx = "endian: Endian, bits: BitSize" ,
316+ endian = "endian" ,
317+ id_type = "u8"
318+ ) ]
313319#[ repr( u8 ) ]
314320pub enum SanitizeOperationStatus {
315321 #[ default]
@@ -322,21 +328,17 @@ pub enum SanitizeOperationStatus {
322328unsafe impl crate :: Discriminant < u8 > for SanitizeOperationStatus { }
323329
324330// Base v2.1, 5.1.12.1.33, Figure 291, SSTAT
325- #[ derive( Clone , Copy , Debug , Default ) ]
331+ #[ derive( Clone , Copy , Debug , Default , DekuRead , DekuWrite ) ]
332+ #[ deku( ctx = "endian: Endian" , endian = "endian" ) ]
326333pub struct SanitizeStatus {
327- sos : SanitizeOperationStatus ,
334+ # [ deku ( bits = "5" ) ]
328335 opc : u8 ,
329- gde : bool ,
336+ #[ deku( bits = "3" ) ]
337+ sos : SanitizeOperationStatus ,
338+ #[ deku( bits = "1" , pad_bits_before = "6" ) ]
330339 mvcncled : bool ,
331- }
332-
333- impl From < SanitizeStatus > for u16 {
334- fn from ( value : SanitizeStatus ) -> Self {
335- ( ( value. mvcncled as u16 ) << 9 )
336- | ( ( value. gde as u16 ) << 8 )
337- | ( ( value. opc & ( ( 1 << 6 ) - 1 ) ) << 3 ) as u16
338- | value. sos . id ( ) as u16
339- }
340+ #[ deku( bits = "1" ) ]
341+ gde : bool ,
340342}
341343
342344// Base v2.1, 5.12.1.33, Fgure 291, SSI, SANS
@@ -373,7 +375,7 @@ impl From<SanitizeStateInformation> for u8 {
373375#[ deku( endian = "little" ) ]
374376struct SanitizeStatusLogPageResponse {
375377 sprog : u16 ,
376- sstat : u16 ,
378+ sstat : SanitizeStatus ,
377379 scdw10 : u32 ,
378380 eto : u32 ,
379381 etbe : u32 ,
0 commit comments