/* * The Discovery 0 Header. As defined in * Opal SSC Documentation * Section: 3.3.5 Capability Discovery
*/ struct d0_header {
__be32 length; /* the length of the header 48 in 2.00.100 */
__be32 revision; /**< revision of the header 1 in 2.00.100 */
__be32 reserved01;
__be32 reserved02; /* * the remainder of the structure is vendor specific and will not be * addressed now
*/
u8 ignored[32];
};
/* * TPer Feature Descriptor. Contains flags indicating support for the * TPer features described in the OPAL specification. The names match the * OPAL terminology * * code == 0x001 in 2.00.100
*/ struct d0_tper_features { /* * supported_features bits: * bit 7: reserved * bit 6: com ID management * bit 5: reserved * bit 4: streaming support * bit 3: buffer management * bit 2: ACK/NACK * bit 1: async * bit 0: sync
*/
u8 supported_features; /* * bytes 5 through 15 are reserved, but we represent the first 3 as * u8 to keep the other two 32bits integers aligned.
*/
u8 reserved01[3];
__be32 reserved02;
__be32 reserved03;
};
/* * Locking Feature Descriptor. Contains flags indicating support for the * locking features described in the OPAL specification. The names match the * OPAL terminology * * code == 0x0002 in 2.00.100
*/ struct d0_locking_features { /* * supported_features bits: * bits 6-7: reserved * bit 5: MBR done * bit 4: MBR enabled * bit 3: media encryption * bit 2: locked * bit 1: locking enabled * bit 0: locking supported
*/
u8 supported_features; /* * bytes 5 through 15 are reserved, but we represent the first 3 as * u8 to keep the other two 32bits integers aligned.
*/
u8 reserved01[3];
__be32 reserved02;
__be32 reserved03;
};
/* * Geometry Feature Descriptor. Contains flags indicating support for the * geometry features described in the OPAL specification. The names match the * OPAL terminology * * code == 0x0003 in 2.00.100
*/ struct d0_geometry_features { /* * skip 32 bits from header, needed to align the struct to 64 bits.
*/
u8 header[4]; /* * reserved01: * bits 1-6: reserved * bit 0: align
*/
u8 reserved01;
u8 reserved02[7];
__be32 logical_block_size;
__be64 alignment_granularity;
__be64 lowest_aligned_lba;
};
/* * OPAL 2.0 feature * * code == 0x0203
*/ struct d0_opal_v200 {
__be16 baseComID;
__be16 numComIDs; /* range_crossing: * bits 1-6: reserved * bit 0: range crossing
*/
u8 range_crossing; /* num_locking_admin_auth: * not aligned to 16 bits, so use two u8. * stored in big endian: * 0: MSB * 1: LSB
*/
u8 num_locking_admin_auth[2]; /* num_locking_user_auth: * not aligned to 16 bits, so use two u8. * stored in big endian: * 0: MSB * 1: LSB
*/
u8 num_locking_user_auth[2];
u8 initialPIN;
u8 revertedPIN;
u8 reserved01;
__be32 reserved02;
};
/* Union of features used to parse the discovery 0 response */ struct d0_features {
__be16 code; /* * r_version bits: * bits 4-7: version * bits 0-3: reserved
*/
u8 r_version;
u8 length;
u8 features[];
};
#endif/* _OPAL_PROTO_H */
Messung V0.5
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.52Bemerkung:
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.